

 **Contribuisci a migliorare questa pagina** 

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Per contribuire a questa guida per l'utente, scegli il GitHub link **Modifica questa pagina** nel riquadro destro di ogni pagina.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Implementa il driver FSx for Lustre
<a name="fsx-csi-create"></a>

Questo argomento mostra come distribuire il [driver CSI FSx for Lustre](fsx-csi.md) nel cluster Amazon EKS e verificarne il funzionamento. Ti consigliamo di utilizzare sempre la versione più recente del driver. Per le versioni disponibili, consulta la matrice di compatibilità delle [specifiche CSI su](https://github.com/kubernetes-sigs/aws-fsx-csi-driver/blob/master/docs/README.md#csi-specification-compatibility-matrix). GitHub

**Nota**  
Il driver non è supportato su Fargate o Amazon EKS Hybrid Nodes.

Per descrizioni dettagliate dei parametri disponibili ed esempi completi che dimostrano le caratteristiche del driver, consultate il progetto [driver FSx for Lustre Container Storage Interface (CSI)](https://github.com/kubernetes-sigs/aws-fsx-csi-driver) su. GitHub

## Prerequisiti
<a name="fsx-csi-prereqs"></a>
+ Un cluster esistente.
+ Il componente aggiuntivo Amazon FSx CSI Driver EKS richiede l'agente EKS Pod Identity per l'autenticazione. Senza questo componente, il componente aggiuntivo fallirà con l’errore `Amazon EKS Pod Identity agent is not installed in the cluster`, impedendo le operazioni di volume. Installa l'agente Pod Identity prima o dopo la distribuzione del componente aggiuntivo FSx CSI Driver. Per ulteriori informazioni, consulta [Configurazione dell’agente Amazon EKS Pod Identity](pod-id-agent-setup.md).
+ Versione `2.12.3` o successiva o versione `1.27.160` o successiva dell'interfaccia a riga di AWS comando (AWS CLI) installata e configurata sul dispositivo o. AWS CloudShell Per verificare la versione attuale, usa `aws --version | cut -d / -f2 | cut -d ' ' -f1`. I gestori di pacchetti come `yum` Homebrew per macOS sono spesso diverse versioni dell'ultima versione della CLI AWS . `apt-get` Per installare la versione più recente, consulta [Installazione](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-install.html) e [configurazione rapida con aws configure](https://docs.aws.amazon.com/cli/latest/userguide/cli-configure-quickstart.html#cli-configure-quickstart-config) nella Guida per l'utente dell'*interfaccia a riga di AWS comando*. La versione AWS CLI installata in AWS CloudShell potrebbe anche contenere diverse versioni precedenti alla versione più recente. Per aggiornarlo, consulta [Installazione della AWS CLI nella tua home directory nella Guida per](https://docs.aws.amazon.com/cloudshell/latest/userguide/vm-specs.html#install-cli-software) l'* AWS CloudShell utente*.
+ La versione `0.215.0` o quelle successive dello strumento a riga di comando `eksctl` deve essere installata sul dispositivo o nella AWS CloudShell. Per l’installazione o l’aggiornamento di `eksctl`, consulta la sezione [Installation](https://eksctl.io/installation) nella documentazione di `eksctl`.
+ Lo strumento a riga di comando `kubectl` è installato sul dispositivo o AWS CloudShell. La versione può essere uguale oppure immediatamente precedente o successiva alla versione di Kubernetes del cluster. Ad esempio, se la versione del cluster è `1.29`, puoi usare `kubectl` versione `1.28`, `1.29` o `1.30`. Per installare o aggiornare `kubectl`, consulta [Impostazione di `kubectl` e `eksctl`](install-kubectl.md):

## Passaggio 1: Creazione di un ruolo IAM
<a name="fsx-create-iam-role"></a>

Il plug-in Amazon FSx CSI richiede le autorizzazioni IAM per effettuare chiamate per tuo AWS APIs conto.

**Nota**  
I pod avranno accesso alle autorizzazioni assegnate al ruolo IAM, a meno che non si blocchi l’accesso a IMDS. Per ulteriori informazioni, consulta [Protezione dei cluster Amazon EKS con le best practice](security-best-practices.md).

La procedura seguente mostra come creare un ruolo IAM e allegare ad esso la policy AWS gestita.

1. Crea un ruolo IAM e collega la policy AWS gestita con il seguente comando. Sostituisci `my-cluster` con il nome del cluster che desideri utilizzare. Il comando distribuisce uno AWS CloudFormation stack che crea un ruolo IAM e vi allega la policy IAM.

   ```
   eksctl create iamserviceaccount \
       --name fsx-csi-controller-sa \
       --namespace kube-system \
       --cluster my-cluster \
       --role-name AmazonEKS_FSx_CSI_DriverRole \
       --role-only \
       --attach-policy-arn arn:aws: iam::aws:policy/AmazonFSxFullAccess \
       --approve
   ```

   Visualizzerai diverse righe di output quando l’account del servizio viene creato. Le ultime righe dell’output sono simili a quelle riportate di seguito.

   ```
   [ℹ]  1 task: {
       2 sequential sub-tasks: {
           create IAM role for serviceaccount "kube-system/fsx-csi-controller-sa",
           create serviceaccount "kube-system/fsx-csi-controller-sa",
       } }
   [ℹ]  building iamserviceaccount stack "eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa"
   [ℹ]  deploying stack "eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa"
   [ℹ]  waiting for CloudFormation stack "eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa"
   [ℹ]  created serviceaccount "kube-system/fsx-csi-controller-sa"
   ```

   Annota il nome dello AWS CloudFormation stack che è stato distribuito. Nell’output di esempio precedente, lo stack è denominato `eksctl-my-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa`.

Ora che hai creato il ruolo IAM del driver Amazon FSx CSI, puoi passare alla sezione successiva. Quando si implementa il componente aggiuntivo con il ruolo IAM, questo crea e viene configurato per utilizzare un account di servizio denominato `fsx-csi-controller-sa`. L’account di servizio è associato a un `clusterrole` Kubernetes a cui sono assegnate le autorizzazioni Kubernetes richieste.

## Fase 2: Installare il driver Amazon FSx CSI
<a name="fsx-csi-deploy-driver"></a>

Ti consigliamo di installare il driver Amazon FSx CSI tramite il componente aggiuntivo Amazon EKS per migliorare la sicurezza e ridurre la quantità di lavoro. Per aggiungere un componente aggiuntivo di Amazon EKS al cluster, consulta [Creare un componente aggiuntivo Amazon EKS](creating-an-add-on.md). Per ulteriori informazioni sui componenti aggiuntivi, consulta [Componenti aggiuntivi Amazon EKS](eks-add-ons.md).

**Importante**  
Le installazioni preesistenti di driver Amazon FSx CSI nel cluster possono causare errori di installazione dei componenti aggiuntivi. Quando tenti di installare la versione del componente aggiuntivo Amazon EKS mentre esiste un driver FSx CSI non EKS, l'installazione avrà esito negativo a causa di conflitti di risorse. Usa il flag `OVERWRITE` durante l’installazione per risolvere il problema.  

```
aws eks create-addon --addon-name aws-fsx-csi-driver --cluster-name my-cluster --resolve-conflicts OVERWRITE
```

In alternativa, se desideri un'installazione autogestita del driver Amazon FSx CSI, consulta [Installation](https://github.com/kubernetes-sigs/aws-fsx-csi-driver/blob/master/docs/install.md) on. GitHub

## Passaggio 3: implementazione di una classe di archiviazione, una dichiarazione di volume persistente e un’app di esempio
<a name="fsx-csi-deploy-storage-class"></a>

Questa procedura utilizza il GitHub repository di [driver FSx for Lustre Container Storage Interface (CSI)](https://github.com/kubernetes-sigs/aws-fsx-csi-driver) per utilizzare un volume Lustre con provisioning dinamico. FSx 

1. Annota il gruppo di sicurezza per il cluster. Puoi vederlo nella Console di gestione AWS sezione **Rete** o utilizzando il seguente comando AWS CLI. Sostituisci `my-cluster` con il nome del cluster che desideri utilizzare.

   ```
   aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId
   ```

1. Crea un gruppo di sicurezza per il tuo FSx file system Amazon in base ai criteri indicati in [Amazon VPC Security Groups](https://docs.aws.amazon.com/fsx/latest/LustreGuide/limit-access-security-groups.html#fsx-vpc-security-groups) nella Amazon FSx for Lustre User Guide. Per il **VPC**, seleziona il VPC del cluster come mostrato nella sezione **Reti**. Per i "gruppi di sicurezza associati ai client Lustre", usa il gruppo di sicurezza del cluster. Non specificare alcun valore nelle regole in uscita per consentire **Tutto il traffico**.

1. Scarica il manifesto della classe di storage con il comando seguente.

   ```
   curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/storageclass.yaml
   ```

1. Modifica la sezione dei parametri del file `storageclass.yaml`. Sostituisci ogni valore esemplificativo con i tuoi valori.

   ```
   parameters:
     subnetId: subnet-0eabfaa81fb22bcaf
     securityGroupIds: sg-068000ccf82dfba88
     deploymentType: PERSISTENT_1
     automaticBackupRetentionDays: "1"
     dailyAutomaticBackupStartTime: "00:00"
     copyTagsToBackups: "true"
     perUnitStorageThroughput: "200"
     dataCompressionType: "NONE"
     weeklyMaintenanceStartTime: "7:09:00"
     fileSystemTypeVersion: "2.12"
   ```
   +  **`subnetId`**— L'ID di sottorete in cui deve essere creato il file system Amazon FSx for Lustre. Amazon FSx for Lustre non è supportato in tutte le zone di disponibilità. Apri la console Amazon FSx for Lustre all'indirizzo per https://console.aws.amazon.com/fsx/ confermare che la sottorete che desideri utilizzare si trova in una zona di disponibilità supportata. La sottorete può includere i nodi oppure può essere una sottorete o un VPC differente:
     + **Puoi verificare la presenza di sottoreti di nodi in Console di gestione AWS selezionando il gruppo di nodi nella sezione Elaborazione.**
     + Se la sottorete specificata non è la stessa sottorete in cui sono presenti i nodi, è VPCs necessario essere [connessi](https://docs.aws.amazon.com/whitepapers/latest/aws-vpc-connectivity-options/amazon-vpc-to-amazon-vpc-connectivity-options.html) e assicurarsi di avere le porte necessarie aperte nei gruppi di sicurezza.
   +  ** `securityGroupIds` ** – l’ID del gruppo di sicurezza creato per il file system.
   +  **`deploymentType` (facoltativo)**: il tipo di implementazione del file system. I valori validi sono `SCRATCH_1`, `SCRATCH_2`, `PERSISTENT_1` e `PERSISTENT_2`. Per ulteriori informazioni sui tipi di distribuzione, consulta [Create your Amazon FSx for Lustre file system](https://docs.aws.amazon.com/fsx/latest/LustreGuide/getting-started-step1.html).
   +  **altri parametri (facoltativo)**: per informazioni sugli altri parametri, consulta [Modifica StorageClass](https://github.com/kubernetes-sigs/aws-fsx-csi-driver/tree/master/examples/kubernetes/dynamic_provisioning#edit-storageclass) su GitHub.

1. Crea il manifesto della classe di storage.

   ```
   kubectl apply -f storageclass.yaml
   ```

   Di seguito viene riportato un output di esempio:

   ```
   storageclass.storage.k8s.io/fsx-sc created
   ```

1. Scaricare il manifesto della dichiarazione di volume persistente.

   ```
   curl -O https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/claim.yaml
   ```

1. (Facoltativo) Modificare il file `claim.yaml`. Cambia `1200Gi` in uno dei valori di incremento riportati di seguito in base ai tuoi requisiti di archiviazione e al `deploymentType` selezionato in un passaggio precedente.

   ```
   storage: 1200Gi
   ```
   +  `SCRATCH_2` e `PERSISTENT` – `1.2 TiB`, `2.4 TiB` o incrementi di 2,4 TiB su 2,4 TiB.
   +  `SCRATCH_1` – `1.2 TiB`, `2.4 TiB`, `3.6 TiB` o incrementi di 3,6 TiB su 3,6 TiB.

1. Creare la dichiarazione di volume persistente.

   ```
   kubectl apply -f claim.yaml
   ```

   Di seguito viene riportato un output di esempio:

   ```
   persistentvolumeclaim/fsx-claim created
   ```

1. Verificare che il file system sia stato sottoposto a provisioning.

   ```
   kubectl describe pvc
   ```

   Di seguito viene riportato un output di esempio:

   ```
   Name:          fsx-claim
   Namespace:     default
   StorageClass:  fsx-sc
   Status:        Bound
   [...]
   ```
**Nota**  
`Status` può apparire `Pending` per 5-10 minuti, prima di passare a `Bound`. Non continuare con il passo successivo fino a quando `Status` non è `Bound`. Se nel campo `Status` viene visualizzato `Pending` per più di 10 minuti, utilizza i messaggi di avviso negli `Events` come riferimento per risolvere eventuali problemi.

1. Implementare un’applicazione di esempio.

   ```
   kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/aws-fsx-csi-driver/master/examples/kubernetes/dynamic_provisioning/specs/pod.yaml
   ```

1. Verificare che l’applicazione di esempio sia in esecuzione.

   ```
   kubectl get pods
   ```

   Di seguito viene riportato un output di esempio:

   ```
   NAME      READY   STATUS              RESTARTS   AGE
   fsx-app   1/1     Running             0          8s
   ```

1. Verifica che l’applicazione abbia montato correttamente il file system.

   ```
   kubectl exec -ti fsx-app -- df -h
   ```

   Di seguito viene riportato un output di esempio.

   ```
   Filesystem                   Size  Used Avail Use% Mounted on
   overlay                       80G  4.0G   77G   5% /
   tmpfs                         64M     0   64M   0% /dev
   tmpfs                        3.8G     0  3.8G   0% /sys/fs/cgroup
   192.0.2.0@tcp:/abcdef01      1.1T  7.8M  1.1T   1% /data
   /dev/nvme0n1p1                80G  4.0G   77G   5% /etc/hosts
   shm                           64M     0   64M   0% /dev/shm
   tmpfs                        6.9G   12K  6.9G   1% /run/secrets/kubernetes.io/serviceaccount
   tmpfs                        3.8G     0  3.8G   0% /proc/acpi
   tmpfs                        3.8G     0  3.8G   0% /sys/firmware
   ```

1. Verifica che i dati siano stati scritti nel file system FSx for Lustre dall'app di esempio.

   ```
   kubectl exec -it fsx-app -- ls /data
   ```

   Di seguito viene riportato un output di esempio.

   ```
   out.txt
   ```

   Questo output esemplificativo mostra che l’app di esempio ha eseguito correttamente la scrittura del file `out.txt` nel file system.

**Nota**  
Prima di eliminare il cluster, assicuratevi di eliminare il file system FSx for Lustre. Per ulteriori informazioni, consultate [Clean up resources nella Guida FSx ](https://docs.aws.amazon.com/fsx/latest/LustreGuide/getting-started-step4.html) *per l'utente di for Lustre*.

## Ottimizzazione delle prestazioni per for FSx Lustre
<a name="_performance_tuning_for_fsx_for_lustre"></a>

Quando si utilizza FSx per Lustre con Amazon EKS, è possibile ottimizzare le prestazioni applicando le ottimizzazioni Lustre durante l'inizializzazione del nodo. L’approccio consigliato consiste nell’utilizzare i dati utente del modello di avvio per garantire una configurazione coerente su tutti i nodi.

Queste ottimizzazioni includono:
+ Ottimizzazioni di rete e RPC
+ Gestione del modulo Lustre
+ Ottimizzazioni LRU (Lock Resource Unit)
+ Impostazioni di controllo della cache del client
+ Controlli RPC per OST e MDC

Per istruzioni dettagliate sull’implementazione di queste ottimizzazioni delle prestazioni:
+ Per ottimizzare le prestazioni per i nodi standard (non EFA), consulta [Ottimizza le prestazioni di Amazon FSx for Lustre sui nodi (non EFA)](fsx-csi-tuning-non-efa.md) per uno script completo che può essere aggiunto ai dati utente del modello di avvio.
+ Per ottimizzare le prestazioni per i nodi abilitati all’EFA, consulta [Ottimizza le prestazioni di Amazon FSx for Lustre sui nodi (EFA)](fsx-csi-tuning-efa.md).