Aiutaci 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
Questo argomento mostra come distribuire il driver CSI FSx for Lustre 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
Nota
Il driver non è supportato sui nodi ibridi Fargate o Amazon EKS.
Per descrizioni dettagliate dei parametri disponibili ed esempi completi che dimostrano le caratteristiche del driver, consulta il progetto driver FSx for Lustre Container Storage Interface (CSI)
Prerequisiti
-
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 di Amazon EKS Pod Identity Agent. -
Versione
2.12.3
o successiva o versione1.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, usaaws --version | cut -d / -f2 | cut -d ' ' -f1
. I gestori di pacchetti comeyum
Homebrew per macOS sono spesso diverse versioni dell'ultima versione della CLI AWS .apt-get
Per installare la versione più recente, consulta Installazione e configurazione rapida con aws configure 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 l' AWS CloudShell utente. -
La versione
0.210.0
o quelle successive dello strumento a riga di comandoeksctl
deve essere installata sul dispositivo o nella AWS CloudShell. Per l'installazione o l'aggiornamento dieksctl
, consulta la sezione Installationnella documentazione di eksctl
. -
Lo strumento a riga di comando
kubectl
è installato sul dispositivo o AWS CloudShell. La versione può essere la stessa o fino a una versione secondaria precedente o successiva alla versione Kubernetes del cluster. Ad esempio, se la versione del cluster è1.29
, puoi usarekubectl
versione1.28
,1.29
o1.30
. Per installare o aggiornarekubectl
, consulta Configurazione kubectl e eksctl:
Fase 1: Creazione di un ruolo IAM
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 tu non blocchi l'accesso a IMDS. Per ulteriori informazioni, consulta Proteggi i cluster Amazon EKS con le migliori pratiche.
La procedura seguente mostra come creare un ruolo IAM e allegare ad esso la policy AWS gestita.
-
Crea un ruolo IAM e collega la policy AWS gestita con il seguente comando. Sostituiscilo
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
Vedrai diverse righe di output man mano che l'account di 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 distribuisci il componente aggiuntivo con questo 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 Kubernetes a cui sono assegnate le autorizzazioni Kubernetes clusterrole
richieste.
Fase 2: Installare il driver Amazon FSx CSI
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 Crea un componente aggiuntivo Amazon EKS. Per ulteriori informazioni sui componenti aggiuntivi, consulta Componenti aggiuntivi Amazon EKS.
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 OVERWRITE
flag durante l'installazione per risolvere questo 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
Passaggio 3: distribuisci una classe di archiviazione, una dichiarazione di volume persistente e un'app di esempio
Questa procedura utilizza il GitHub repository di driver FSx for Lustre Container Storage Interface (CSI)
-
Annota il gruppo di sicurezza per il cluster. Puoi vederlo nella AWS Management Console sezione Rete o utilizzando il seguente comando AWS CLI. Sostituiscilo
my-cluster
con il nome del cluster che desideri utilizzare.aws eks describe-cluster --name my-cluster --query cluster.resourcesVpcConfig.clusterSecurityGroupId
-
Crea un gruppo di sicurezza per il tuo FSx file system Amazon in base ai criteri indicati in Amazon 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.
-
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
-
Modifica la sezione dei parametri del file
storageclass.yaml
. Sostituisci ogni valore di esempio 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 AWS Management Console 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 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
(opzionale) — Il tipo di distribuzione del file system. I valori validi sonoSCRATCH_1
,SCRATCH_2
,PERSISTENT_1
ePERSISTENT_2
. Per ulteriori informazioni sui tipi di distribuzione, consulta Create your Amazon FSx for Lustre file system. -
altri parametri (facoltativo): per informazioni sugli altri parametri, consulta Modifica StorageClass
su GitHub.
-
-
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
-
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
-
(Facoltativo) Modificare il file
claim.yaml
. Cambia1200Gi
in uno dei valori di incremento riportati di seguito in base ai tuoi requisiti di archiviazione e aldeploymentType
selezionato in un passaggio precedente.storage: 1200Gi
-
SCRATCH_2
ePERSISTENT
–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.
-
-
Creare la dichiarazione di volume persistente.
kubectl apply -f claim.yaml
Di seguito viene riportato un output di esempio:
persistentvolumeclaim/fsx-claim created
-
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ò apparirePending
per 5-10 minuti, prima di passare aBound
. Non continuate con il passaggio successivo finché non loStatus
èBound
. Se nel campoStatus
viene visualizzatoPending
per più di 10 minuti, utilizza i messaggi di avviso negliEvents
come riferimento per risolvere eventuali problemi. -
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
-
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
-
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
-
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 per l'utente di for Lustre.
Ottimizzazione delle prestazioni per for FSx Lustre
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 dei moduli 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), Ottimizza le prestazioni di Amazon FSx for Lustre sui nodi (non EFA) consultate uno script completo che può essere aggiunto ai dati utente del modello di lancio.
-
Per ottimizzare le prestazioni per i nodi abilitati all'EFA, consulta. Ottimizza le prestazioni di Amazon FSx for Lustre sui nodi (EFA)