Archivia un file system elastico con Amazon EFS - Amazon EKS

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 un file system elastico con Amazon EFS

Amazon Elastic File System (Amazon EFS) fornisce un'archiviazione di file serverless e completamente elastica in modo da poter condividere i dati dei file senza dover fornire o gestire la capacità e le prestazioni di archiviazione. Il driver Amazon EFS Container Storage Interface (CSI) fornisce un'interfaccia CSI che consente Kubernetes cluster in esecuzione AWS per gestire il ciclo di vita dei file system Amazon EFS. Questo argomento illustra come implementare il driver CSI per Amazon EBS nel cluster Amazon EKS.

Considerazioni

  • Il driver CSI Amazon EFS non è compatibile con le immagini dei container basate su Windows.

  • Non è possibile utilizzare il provisioning dinamico per volumi persistenti con i nodi Fargate, ma è possibile utilizzare il provisioning statico.

  • Il provisioning dinamico richiede la versione 1.2 o successiva del driver. Puoi utilizzare il provisioning statico per volumi persistenti utilizzando la versione 1.1 del driver su qualsiasi versione del cluster Amazon EKS supportata (vediComprendi il Kubernetes ciclo di vita delle versioni su EKS).

  • La versione 1.3.2 o successiva di questo driver supporta l'architettura Arm64, incluse le istanze basate su Amazon EC2 Graviton.

  • La versione 1.4.2 o successiva di questo driver supporta l'uso di FIPS per il montaggio dei file system.

  • Osserva le quote delle risorse per Amazon EFS. Ad esempio, è possibile creare una quota di 1000 punti di accesso per ogni file system Amazon EFS. Per ulteriori informazioni, consulta le Quote di risorse di Amazon EFS che non puoi modificare.

  • A partire dalla versione 2.0.0, questo driver è passato dall'utilizzo stunnel a quello efs-proxy per le connessioni TLS. Quando efs-proxy viene utilizzato, aprirà un numero di thread pari a uno più il numero di core del nodo su cui è in esecuzione.

  • Il driver Amazon EFS CSI non è compatibile con Amazon EKS Hybrid Nodes.

Prerequisiti

  • Un AWS Identity and Access Management (IAM) esistente OpenID Connect (OIDC) provider per il tuo cluster. Per determinare se disponi già di un provider IAM o per crearne uno, consulta Creazione di un IAM OIDC provider per il tuo cluster.

  • 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. Package manager come yumapt-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.

  • 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 usare kubectl versione 1.28, 1.29 o 1.30. Per installare o aggiornare kubectl, consulta Configurazione kubectl e eksctl:

Nota

A Pod in esecuzione su Fargate monta automaticamente un file system Amazon EFS, senza bisogno di procedure di installazione manuale dei driver.

Fase 1: Creazione di un ruolo IAM

Il driver CSI per Amazon EFS richiede le autorizzazioni IAM per interagire con il file system. Crea un ruolo IAM e allega ad esso la policy AWS gestita richiesta. Per implementare questa procedura, puoi utilizzare uno di questi strumenti:

Nota

I passaggi specifici di questa procedura sono stati scritti per l'utilizzo del driver come componente aggiuntivo di Amazon EKS. Per informazioni dettagliate sulle installazioni autogestite, vedere Configurare l'autorizzazione del driver su GitHub.

eksctl

Esegui i seguenti comandi per creare un ruolo IAM coneksctl. Sostituisci my-cluster con il nome del cluster e AmazonEKS_EFS_CSI_DriverRole con il nome del ruolo.

export cluster_name=my-cluster export role_name=AmazonEKS_EFS_CSI_DriverRole eksctl create iamserviceaccount \ --name efs-csi-controller-sa \ --namespace kube-system \ --cluster $cluster_name \ --role-name $role_name \ --role-only \ --attach-policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --approve TRUST_POLICY=$(aws iam get-role --role-name $role_name --query 'Role.AssumeRolePolicyDocument' | \ sed -e 's/efs-csi-controller-sa/efs-csi-*/' -e 's/StringEquals/StringLike/') aws iam update-assume-role-policy --role-name $role_name --policy-document "$TRUST_POLICY"

AWS Management Console

Esegui quanto segue per creare un ruolo IAM con AWS Management Console.

  1. Aprire la console IAM all'indirizzo https://console.aws.amazon.com/iam/.

  2. Nel pannello di navigazione a sinistra, seleziona Ruoli.

  3. Nella pagina Ruoli, seleziona Crea ruolo.

  4. Nella pagina Select trusted entity (Seleziona entità attendibile), esegui le operazioni seguenti:

    1. Nella sezione Tipo di identità attendibile, scegli Identità Web.

    2. Per provider di identità, scegli il OpenID Connect URL del provider per il tuo cluster (come mostrato nella sezione Panoramica in Amazon EKS).

    3. Per Pubblico, scegli sts.amazonaws.com.

    4. Scegli Next (Successivo).

  5. Nella pagina Add permissions (Aggiungi autorizzazioni), esegui le operazioni seguenti:

    1. Nella casella Filtra policy, inserisci AmazonEFSCSIDriverPolicy.

    2. Seleziona la casella di controllo a sinistra della AmazonEFSCSIDriverPolicy restituita dalla ricerca.

    3. Scegli Next (Successivo).

  6. Nella pagina Name, review, and create (Assegna un nome, rivedi e crea), esegui le operazioni seguenti:

    1. Per Role name (Nome ruolo), inserisci un nome univoco per il ruolo, ad esempio AmazonEKS_EFS_CSI_DriverRole.

    2. In Aggiungi tag (facoltativo), aggiungi metadati al ruolo collegando i tag come coppie chiave-valore. Per ulteriori informazioni sull'utilizzo di tag in IAM, consulta la sezione Applicazione di tag alle risorse IAM nella Guida per l'utente di IAM.

    3. Scegliere Crea ruolo.

  7. Dopo aver creato il ruolo, sceglilo nella console in modo da aprirlo per la modifica.

  8. Scegli la scheda Relazioni di attendibilità e quindi Modifica policy di attendibilità.

  9. Trova la riga simile alla seguente:

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com"

    Aggiungi la riga seguente sopra la riga precedente. Sostituiscilo region-code con la AWS regione in cui si trova il cluster. EXAMPLED539D4633E53DE1B71EXAMPLESostituiscilo con l'ID del provider OIDC del cluster.

    "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*",
  10. Modifica l'operatore Condition da "StringEquals" a "StringLike".

  11. Scegli Aggiorna policy per concludere.

AWS CLI

Esegui i seguenti comandi per creare un ruolo IAM con AWS CLI.

  1. Visualizza l'URL del provider OIDC del tuo cluster. Sostituire my-cluster con il nome del cluster. Se l'output dal comando è None, rivedi i Prerequisiti.

    aws eks describe-cluster --name my-cluster --query "cluster.identity.oidc.issuer" --output text

    Di seguito viene riportato un output di esempio:

    https://oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE
  2. Crea il ruolo IAM che concede l'autorizzazione per l'operazione AssumeRoleWithWebIdentity.

    1. Copia il seguente contenuto in un file denominato aws-efs-csi-driver-trust-policy .json``. Sostituisci 111122223333 con l'ID del tuo account. Sostituire EXAMPLED539D4633E53DE1B71EXAMPLE e region-code con i valori restituiti nella fase precedente.

      { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Federated": "arn:aws: iam::111122223333:oidc-provider/oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE" }, "Action": "sts:AssumeRoleWithWebIdentity", "Condition": { "StringLike": { "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:sub": "system:serviceaccount:kube-system:efs-csi-*", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. Creare il ruolo. È possibile modificare AmazonEKS_EFS_CSI_DriverRole con un nome diverso. In tal caso, assicurati di modificarlo anche nelle fasi successive.

      aws iam create-role \ --role-name AmazonEKS_EFS_CSI_DriverRole \ --assume-role-policy-document file://"aws-efs-csi-driver-trust-policy.json"
  3. Allega la politica AWS gestita richiesta al ruolo con il comando seguente.

    aws iam attach-role-policy \ --policy-arn arn:aws: iam::aws:policy/service-role/AmazonEFSCSIDriverPolicy \ --role-name AmazonEKS_EFS_CSI_DriverRole

Fase 2: scarica il driver CSI di Amazon EFS

Consigliamo di installare il driver Amazon EFS CSI attraverso il componente aggiuntivo di Amazon EKS. 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. Se non riesci a utilizzare il componente aggiuntivo Amazon EKS, ti consigliamo di segnalare un problema sul motivo per cui non puoi farlo all'archivio della roadmap GitHub di Containers.

In alternativa, se desideri un'installazione autogestita del driver CSI Amazon EFS, consulta Installazione su GitHub.

Fase 3: Creazione di un file system Amazon EFS

Per creare un file system Amazon EFS, consulta Creare un file system Amazon EFS per Amazon EKS su GitHub.

Fase 4: Implementazione di un'applicazione di esempio

Puoi implementare diverse app di esempio e modificarle in base alle tue esigenze. Per ulteriori informazioni, consulta Esempi su GitHub.