Archivia un file system elastico con Amazon EFS - Amazon EKS

Aiutaci a migliorare questa pagina

Vuoi contribuire a questa guida per l'utente? Scorri fino alla fine di questa pagina e seleziona Modifica questa pagina su GitHub. 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 (AmazonEFS) offre uno storage di file senza server e completamente elastico in modo da poter condividere i dati dei file senza fornire o gestire capacità e prestazioni di storage. Il driver Amazon EFS Container Storage Interface (CSI) fornisce un'CSIinterfaccia che consente Kubernetes cluster in esecuzione AWS per gestire il ciclo di vita dei file system AmazonEFS. Questo argomento mostra come distribuire il EFS CSI driver Amazon nel tuo EKS cluster Amazon.

Considerazioni

  • Il EFS CSI driver Amazon 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 l'utilizzo del driver 1.2o una versione successiva. Puoi utilizzare il provisioning statico per volumi persistenti utilizzando la versione 1.1 del driver su qualsiasi versione supportata del EKS cluster Amazon.

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

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

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

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

Prerequisiti

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

  • Versione 2.12.3 o successiva o versione 1.27.160 o successiva di AWS Command Line Interface (AWS CLI) installato e configurato 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 precedenti alla versione più recente di AWS CLI. Per installare la versione più recente, vedere Installazione, aggiornamento e disinstallazione di AWS CLI e Configurazione rapida con aws configure nella Guida per l'utente di AWS Command Line Interface . La AWS CLI versione installata in AWS CloudShell potrebbe anche contenere diverse versioni precedenti alla versione più recente. Per aggiornarla, consulta Installazione nella home directory nella Guida AWS CLI 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.30, puoi usare kubectl versione 1.29, 1.30 o 1.31. Per installare o aggiornare kubectl, consulta Configurazione kubectl e eksctl:

Fase 1: Creare un IAM ruolo

Il EFS CSI driver Amazon richiede IAM le autorizzazioni per interagire con il tuo file system. Crea un IAM ruolo e allega ad esso la politica AWS gestita richiesta. Puoi utilizzare eksctl, la AWS Management Console o la AWS CLI.

Nota

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

eksctl

Per creare il tuo IAM ruolo di EFS CSI autista Amazon con eksctl

Esegui i seguenti comandi per creare il IAM ruolo. 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
Per creare il tuo IAM ruolo di EFS CSI autista Amazon con AWS Management Console
  1. Apri la IAM console 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 OpenID Connect provider URL per il tuo cluster (come mostrato nella sezione Panoramica in AmazonEKS).

    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 dei tag inIAM, consulta Tagging IAM resources nella Guida per l'IAMutente.

    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. region-codeSostituiscilo con Regione AWS quello in cui si trova il cluster. Sostituiscilo EXAMPLED539D4633E53DE1B71EXAMPLE con l'ID del OIDC provider 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
Per creare il tuo IAM ruolo di EFS CSI autista Amazon con AWS CLI
  1. Visualizza il OIDC provider del tuo clusterURL. 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 IAM ruolo che concede l'AssumeRoleWithWebIdentityazione.

    1. Copia i contenuti seguenti in un file denominato aws-efs-csi-driver-trust-policy.json. Sostituisci 111122223333 con l'ID del tuo account. Sostituisci EXAMPLED539D4633E53DE1B71EXAMPLE e region-code con i valori restituiti nella fase precedente. Se il tuo cluster si trova negli AWS GovCloud Stati Uniti orientali o AWS GovCloud negli Stati Uniti occidentali Regioni AWS, sostituiscilo con. arn:aws: arn:aws-us-gov:

      { "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. Crea 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. Se il cluster si trova negli AWS GovCloud Stati Uniti orientali o AWS GovCloud negli Stati Uniti occidentali Regioni AWS, arn:aws: sostituiscilo con. arn:aws-us-gov:

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

Passaggio 2: scarica il EFS CSI driver Amazon

Ti consigliamo di installare il EFS CSI driver Amazon tramite il EKS componente aggiuntivo Amazon. Per aggiungere un EKS componente aggiuntivo Amazon al tuo cluster, consultaCreazione di un EKS componente aggiuntivo Amazon. Per ulteriori informazioni sui componenti aggiuntivi, consulta EKSComponenti aggiuntivi Amazon. Se non riesci a utilizzare il EKS componente aggiuntivo Amazon, ti invitiamo a segnalare il motivo per cui non puoi farlo alla roadmap Containers GitHub deposito.

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

Fase 3: Creare un EFS file system Amazon

Nota

Questo passaggio non è necessario per AWS Fargate. A Pod in esecuzione su Fargate monta automaticamente un file system AmazonEFS.

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

Fase 4: Implementa un'applicazione di esempio

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