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à.
Vuoi contribuire a questa guida per l'utente? Scegli il GitHub link Modifica questa pagina che si trova nel riquadro destro di ogni pagina. I tuoi contributi contribuiranno a rendere la nostra guida utente migliore per tutti.
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à.
Archivia app ad alte prestazioni con FSx for Lustre
Il driver FSx for Lustre Container Storage Interface (CSI)
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)
È necessario avere:
-
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
. Package manager comeyum
apt-get
, o Homebrew for macOS sono spesso presenti diverse versioni dietro l'ultima versione della AWS CLI. 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.199.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 uguale o superiore a una versione secondaria precedente o successiva alla Kubernetes versione 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:
Le seguenti procedure consentono di creare un semplice cluster di test con il driver FSx for Lustre CSI in modo da poterne vedere il funzionamento. Non è consigliabile utilizzare il cluster di test per carichi di lavoro di produzione. Per questo tutorial, consigliamo di utilizzare iexample values
, tranne nei casi in cui è indicato sostituirli. È possibile sostituire qualsiasi example value
quando si completano i passaggi per il cluster di produzione. Ti consigliamo di completare tutti i passaggi nello stesso terminale perché le variabili vengono impostate e utilizzate durante i passaggi e non esisteranno in terminali diversi.
-
Imposta alcune variabili da utilizzare nei passaggi rimanenti. Sostituiscilo
my-csi-fsx-cluster
con il nome del cluster di test che desideri creare eregion-code
con la AWS regione in cui desideri creare il cluster di test.export cluster_name=my-csi-fsx-cluster export region_code=region-code
-
Crea un cluster di test.
eksctl create cluster \ --name $cluster_name \ --region $region_code \ --with-oidc \ --ssh-access \ --ssh-public-key my-key
Il provisioning del cluster richiede diversi minuti. Durante la creazione del cluster, vedrai diverse righe di output. L'ultima riga di output è simile alla seguente riga di esempio.
[✓] EKS cluster "my-csi-fsx-cluster" in "region-code" region is ready
-
Crea un Kubernetes account di servizio per il driver e allega la policy
AmazonFSxFullAccess
AWS-managed all'account di servizio con il seguente comando.eksctl create iamserviceaccount \ --name fsx-csi-controller-sa \ --namespace kube-system \ --cluster $cluster_name \ --attach-policy-arn arn:aws: iam::aws:policy/AmazonFSxFullAccess \ --approve \ --role-name AmazonEKSFSxLustreCSIDriverFullAccess \ --region $region_code
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-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] deploying stack "eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa" [ℹ] waiting for CloudFormation stack "eksctl-my-csi-fsx-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-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa
. -
Implementare il driver mediante il comando seguente. Sostituisci
release-X.XX
con il ramo desiderato. Il ramo master non è supportato perché potrebbe contenere funzionalità imminenti incompatibili con la versione stabile del driver attualmente rilasciata. Si consiglia di utilizzare l'ultima versione. Per un elenco delle filiali, vediaws-fsx-csi-driver
Brancheson GitHub. Nota
È possibile visualizzare il contenuto applicato in aws-fsx-csi-driver/deploy/kubernetes/overlays/stable
on GitHub. kubectl apply -k "github.com/kubernetes-sigs/aws-fsx-csi-driver/deploy/kubernetes/overlays/stable/?ref=release-X.XX"
Di seguito viene riportato un output di esempio:
serviceaccount/fsx-csi-controller-sa created serviceaccount/fsx-csi-node-sa created clusterrole.rbac.authorization.k8s.io/fsx-csi-external-provisioner-role created clusterrole.rbac.authorization.k8s.io/fsx-external-resizer-role created clusterrolebinding.rbac.authorization.k8s.io/fsx-csi-external-provisioner-binding created clusterrolebinding.rbac.authorization.k8s.io/fsx-csi-resizer-binding created deployment.apps/fsx-csi-controller created daemonset.apps/fsx-csi-node created csidriver.storage.k8s.io/fsx.csi.aws.com created
-
Annota l'ARN per il ruolo che è stato creato. Se non l'hai notato in precedenza e non lo hai più disponibile nell'output della AWS CLI, puoi fare quanto segue per vederlo in. AWS Management Console
-
Apri la AWS CloudFormation console
. -
Assicurati che la console sia impostata sulla AWS regione in cui hai creato il tuo ruolo IAM, quindi seleziona Stacks.
-
Selezionare la pila denominata
eksctl-my-csi-fsx-cluster-addon-iamserviceaccount-kube-system-fsx-csi-controller-sa
. -
Selezionare la scheda Outputs (Output). L'ARN Role1 è elencato nella pagina Output (1).
-
-
Applica una patch alla implementazione del driver per aggiungere l'account di servizio creato precedentemente con il seguente comando. Sostituisci l'ARN con l'ARN che hai annotato. Sostituisci
111122223333
con l'ID del tuo account.kubectl annotate serviceaccount -n kube-system fsx-csi-controller-sa \ eks.amazonaws.com/role-arn=arn:aws: iam::111122223333:role/AmazonEKSFSxLustreCSIDriverFullAccess --overwrite=true
Di seguito viene riportato un output di esempio:
serviceaccount/fsx-csi-controller-sa annotated
Questa procedura utilizza il 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.
aws eks describe-cluster --name $cluster_name --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 ogniexample value
con i valori in tuo possesso.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.