Archivia i dati con l'interfaccia web di Amazon S3 - 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 i dati con l'interfaccia web di Amazon S3

Con il driver Mountpoint per Amazon S3 Container Storage Interface (CSI), Kubernetes le tue applicazioni possono accedere agli oggetti Amazon S3 tramite un'interfaccia di file system, ottenendo un throughput aggregato elevato senza modificare alcun codice applicativo. Basato su MountpointAmazon S3, il CSI driver presenta un bucket Amazon S3 come volume a cui possono accedere i container in Amazon EKS e i cluster autogestiti. Kubernetes Questo argomento mostra come distribuire il driver Mountpoint per Amazon CSI S3 nel tuo cluster AmazonEKS.

Considerazioni
  • Il CSI driver Mountpoint per Amazon S3 non è attualmente compatibile con le immagini di container basate su Windows.

  • Il CSI driver Mountpoint per Amazon S3 non supporta. AWS Fargate Tuttavia, sono supportati i contenitori in esecuzione su Amazon EC2 (con Amazon EKS o un'Kubernetesinstallazione personalizzata).

  • Il CSI driver Mountpoint per Amazon S3 supporta solo il provisioning statico. Non sono supportati il provisioning dinamico o la creazione di nuovi bucket.

    Nota

    Il provisioning statico si riferisce all'utilizzo di un bucket Amazon S3 esistente specificato come bucketName volumeAttributes nell'oggetto. PersistentVolume Per ulteriori informazioni, consulta Provisioning statico su GitHub.

  • I volumi montati con il CSI driver Mountpoint per Amazon S3 non supportano tutte le funzionalità del POSIX file system. Per i dettagli sul comportamento del file system, consulta Comportamento del file system Mountpoint per Amazon S3 su GitHub.

Prerequisiti
  • Un provider AWS Identity and Access Management (IAM) OpenID Connect (OIDC) esistente 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 del file AWS CLI installato e configurato sul dispositivo o. AWS CloudShell

  • 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 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 Configurazione kubectl e eksctl:

Creare una politica IAM

Il CSI driver Mountpoint per Amazon S3 richiede le autorizzazioni Amazon S3 per interagire con il file system. Questa sezione mostra come creare una IAM policy che conceda le autorizzazioni necessarie.

La seguente politica di esempio segue le raccomandazioni di IAM autorizzazione per. Mountpoint In alternativa, è possibile utilizzare la politica AWS gestita AmazonS3FullAccess, ma questa politica gestita concede più autorizzazioni di quelle per cui sono necessarie. Mountpoint

Per ulteriori informazioni sulle autorizzazioni consigliate perMountpoint, vedere Mountpoint IAM permissions on. GitHub

Per creare una IAM policy con la console IAM
  1. Apri la IAM console all'indirizzo https://console.aws.amazon.com/iam/.

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

  3. Nella pagina Policy, scegli Crea policy.

  4. Per Policy editor, scegli JSON.

  5. In Editor di policy, copia e incolla quanto segue:

    Importante

    Sostituisci amzn-s3-demo-bucket1 con il nome del bucket Amazon S3.

    { "Version": "2012-10-17", "Statement": [ { "Sid": "MountpointFullBucketAccess", "Effect": "Allow", "Action": [ "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1" ] }, { "Sid": "MountpointFullObjectAccess", "Effect": "Allow", "Action": [ "s3:GetObject", "s3:PutObject", "s3:AbortMultipartUpload", "s3:DeleteObject" ], "Resource": [ "arn:aws:s3:::amzn-s3-demo-bucket1/*" ] } ] }

    I bucket di directory, introdotti con la classe di storage Amazon S3 Express One Zone, utilizzano un meccanismo di autenticazione diverso rispetto ai bucket generici. Invece di usare s3:* le azioni, dovresti usare l'azione. s3express:CreateSession Per informazioni sui bucket di directory, consulta Directory buckets nella Amazon S3 User Guide.

    Di seguito è riportato un esempio di politica di privilegi minimi da utilizzare per un bucket di directory.

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": "s3express:CreateSession", "Resource": "arn:aws:s3express:aws-region:111122223333:bucket/amzn-s3-demo-bucket1--az_id--x-s3" } ] }
  6. Scegli Next (Successivo).

  7. Nella pagina Verifica e crea, assegna un nome alla policy. Questa procedura guidata di esempio utilizza il nome AmazonS3CSIDriverPolicy.

  8. Scegli Create Policy (Crea policy).

Creare un ruolo IAM.

Il CSI driver Mountpoint per Amazon S3 richiede le autorizzazioni Amazon S3 per interagire con il file system. Questa sezione mostra come creare un IAM ruolo per delegare queste autorizzazioni. Per creare questo ruolo, puoi usareeksctl, la IAM console o il. AWS CLI

Nota

La IAM politica AmazonS3CSIDriverPolicy è stata creata nella sezione precedente.

eksctl

Per creare il tuo Mountpoint ruolo di CSI driver IAM per Amazon S3 con eksctl

Per creare il IAM ruolo e l'account Kubernetes di servizio, esegui i seguenti comandi. Questi comandi collegano anche la AmazonS3CSIDriverPolicy IAM policy al ruolo, annotano l'account di Kubernetes servizio (s3-csi-controller-sa) con l'Amazon Resource Name (ARN) del IAM ruolo e aggiungono il nome dell'account di Kubernetes servizio alla politica di fiducia per il IAM ruolo.

CLUSTER_NAME=my-cluster REGION=region-code ROLE_NAME=AmazonEKS_S3_CSI_DriverRole POLICY_ARN=AmazonEKS_S3_CSI_DriverRole_ARN eksctl create iamserviceaccount \ --name s3-csi-driver-sa \ --namespace kube-system \ --cluster $CLUSTER_NAME \ --attach-policy-arn $POLICY_ARN \ --approve \ --role-name $ROLE_NAME \ --region $REGION \ --role-only
IAM console
Per creare il tuo IAM ruolo di CSI driver Mountpoint per Amazon S3 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 il provider di identità, scegli il OpenID Connectprovider URL per il tuo cluster (come mostrato nella sezione Panoramica in AmazonEKS).

      Se non URLs ne viene visualizzato nessuno, consulta la sezione Prerequisiti.

    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 AmazonS3CSIDriverPolicy.

      Nota

      Questa policy è stata creata nella sezione precedente.

    2. Seleziona la casella di controllo a sinistra del risultato AmazonS3CSIDriverPolicy restituito 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_S3_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 Etichettare IAM le risorse 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 Trust relationships (Relazioni di attendibilità), quindi scegli Edit trust policy (Modifica policy di attendibilità).

  9. Cercare il risultato finale simile al seguente:

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

    Inserisci una virgola alla fine della riga precedente, quindi aggiungine una seguente dopo quella riga. 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:s3-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 CSI driver Mountpoint per Amazon S3 con AWS CLI
  1. Visualizza il OIDC provider URL per il tuo cluster. Sostituisci 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, concedendo l'AssumeRoleWithWebIdentityazione all'account del Kubernetes servizio.

    1. Copia i contenuti seguenti in un file denominato aws-s3-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:s3-csi-*", "oidc.eks.region-code.amazonaws.com/id/EXAMPLED539D4633E53DE1B71EXAMPLE:aud": "sts.amazonaws.com" } } } ] }
    2. Creare il ruolo. È possibile modificare AmazonEKS_S3_CSI_DriverRole con un nome diverso. In tal caso, assicurati di modificarlo anche nelle fasi successive.

      aws iam create-role \ --role-name AmazonEKS_S3_CSI_DriverRole \ --assume-role-policy-document file://"aws-s3-csi-driver-trust-policy.json"
  3. Allega la IAM policy creata in precedenza al ruolo con il seguente comando.

    aws iam attach-role-policy \ --policy-arn arn:aws:iam::aws:policy/AmazonS3CSIDriverPolicy \ --role-name AmazonEKS_S3_CSI_DriverRole
    Nota

    La IAM politica AmazonS3CSIDriverPolicy è stata creata nella sezione precedente.

  4. Salta questo passaggio se stai installando il driver come EKS componente aggiuntivo Amazon. Per le installazioni autogestite del driver, crea account di Kubernetes servizio annotati con il IAM ruolo che ARN hai creato.

    1. Salvare i seguenti contenuti in un file denominato mountpoint-s3-service-account.yaml. Sostituisci 111122223333 con l'ID del tuo account.

      --- apiVersion: v1 kind: ServiceAccount metadata: labels: app.kubernetes.io/name: aws-mountpoint-s3-csi-driver name: mountpoint-s3-csi-controller-sa namespace: kube-system annotations: eks.amazonaws.com/role-arn: arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole
    2. Crea l'account di servizio Kubernetes sul cluster. L'account Kubernetes di servizio (mountpoint-s3-csi-controller-sa) è annotato con il nome del IAM ruolo che hai creato. AmazonEKS_S3_CSI_DriverRole

      kubectl apply -f mountpoint-s3-service-account.yaml
      Nota

      Quando implementi il plugin tramite questa procedura, il plugin crea ed è configurato per l'utilizzo di un account di servizio denominato s3-csi-driver-sa.

Installa il driver Mountpoint per Amazon S3 CSI

Puoi installare il driver Mountpoint per Amazon S3 tramite il CSI componente aggiuntivo AmazonEKS. Puoi usareeksctl, the AWS Management Console, o the AWS CLI per aggiungere il componente aggiuntivo al tuo cluster.

Facoltativamente, puoi installare Mountpoint il driver Amazon CSI S3 come installazione autogestita. Per istruzioni su come eseguire un'installazione autogestita, consulta Installazione su GitHub.

eksctl
Per aggiungere il componente aggiuntivo Amazon S3 utilizzando CSI eksctl

Esegui il comando seguente. Sostituiscilo my-cluster con il nome del cluster, 111122223333 con l'ID dell'account e AmazonEKS_S3_CSI_DriverRole con il nome del IAMruolo creato in precedenza.

eksctl create addon --name aws-mountpoint-s3-csi-driver --cluster my-cluster --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole --force

Se rimuovi l'--forceopzione e una delle impostazioni del EKS componente aggiuntivo Amazon è in conflitto con le impostazioni esistenti, l'aggiornamento del EKS componente aggiuntivo Amazon non riesce e ricevi un messaggio di errore per aiutarti a risolvere il conflitto. Prima di specificare questa opzione, assicurati che il EKS componente aggiuntivo Amazon non gestisca le impostazioni che devi gestire, poiché tali impostazioni vengono sovrascritte con questa opzione. Per ulteriori informazioni su altre opzioni per questa impostazione, consulta Componenti aggiuntivi nella documentazione di eksctl. Per ulteriori informazioni sulla gestione dei EKS Kubernetes campi di Amazon, consultaDetermina i campi che puoi personalizzare per i EKS componenti aggiuntivi di Amazon.

AWS Management Console
Per aggiungere il CSI componente aggiuntivo Mountpoint per Amazon S3 utilizzando il AWS Management Console
  1. Apri la EKS console Amazon a https://console.aws.amazon.com/eks/home#/clusters.

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

  3. Scegli il nome del cluster per cui desideri configurare il CSI componente aggiuntivo Mountpoint per Amazon S3.

  4. Seleziona la scheda Componenti aggiuntivi.

  5. Scegli Ottieni altri componenti aggiuntivi.

  6. Nella pagina Seleziona componenti aggiuntivi, procedi come segue:

    1. Nella sezione Amazon EKS -addons, seleziona la casella di controllo per Amazon Mountpoint CSI S3 Driver.

    2. Scegli Next (Successivo).

  7. Nella pagina Configura le impostazioni dei componenti aggiuntivi selezionati, procedi come segue:

    1. Seleziona la Versione che desideri utilizzare.

    2. Per Seleziona IAM ruolo, seleziona il nome di un IAM ruolo a cui hai collegato la IAM politica dei CSI driver Mountpoint per Amazon S3.

    3. (Facoltativo) È possibile espandere le Impostazioni di configurazione facoltative. Se selezioni Override per il metodo di risoluzione dei conflitti, una o più impostazioni del componente aggiuntivo esistente possono essere sovrascritte con le impostazioni del componente aggiuntivo AmazonEKS. Se rimuovi questa opzione e c'è un conflitto con le impostazioni esistenti, l'operazione non va a buon fine e viene visualizzato un messaggio di errore per aiutarti a risolvere il conflitto. Prima di selezionare questa opzione, assicurati che il EKS componente aggiuntivo Amazon non gestisca le impostazioni che devi gestire automaticamente.

    4. Scegli Next (Successivo).

  8. Nella pagina Rivedi e aggiungi, scegli Crea. Una volta completata l'installazione, viene visualizzato il componente aggiuntivo.

AWS CLI
Per aggiungere il CSI componente aggiuntivo Mountpoint per Amazon S3 utilizzando il AWS CLI

Esegui il comando seguente. Sostituire my-cluster con il nome del cluster, 111122223333 con il proprio ID account e AmazonEKS_S3_CSI_DriverRole con il nome del ruolo creato in precedenza.

aws eks create-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKS_S3_CSI_DriverRole

Configurazione Mountpoint per Amazon S3

Nella maggior parte dei casi, puoi configurare Mountpoint per Amazon S3 solo con un nome di bucket. Per istruzioni sulla configurazione di Mountpoint per Amazon S3, consulta Configurazione di Mountpoint per Amazon S3 su GitHub.

Implementazione di un'applicazione di esempio

Puoi implementare il provisioning statico al driver su un bucket Amazon S3 esistente. Per ulteriori informazioni, consulta Provisioning statico su GitHub.

Rimuovi Mountpoint per Amazon S3 Driver CSI

Hai due opzioni per rimuovere un EKS componente aggiuntivo Amazon.

  • Conserva il software aggiuntivo sul tuo cluster: questa opzione rimuove la EKS gestione di qualsiasi impostazione da parte di Amazon. Rimuove inoltre la possibilità EKS per Amazon di avvisarti degli aggiornamenti e aggiornare automaticamente il EKS componente aggiuntivo Amazon dopo aver avviato un aggiornamento. Tuttavia, mantiene il software aggiuntivo sul cluster. Questa opzione rende il componente aggiuntivo un'installazione autogestita, anziché un componente aggiuntivo AmazonEKS. Con questa opzione, non ci sono tempi di inattività per il componente aggiuntivo. I comandi in questa procedura utilizzano questa opzione.

  • Rimuovi completamente il software aggiuntivo dal cluster: ti consigliamo di rimuovere il EKS componente aggiuntivo Amazon dal cluster solo se nel cluster non ci sono risorse che dipendono da esso. Per eseguire questa operazione, elimina --preserve dal comando utilizzato in questa procedura.

Se al componente aggiuntivo è associato un IAM account, l'IAMaccount non viene rimosso.

Puoi usareeksctl, il AWS Management Console, o the AWS CLI per rimuovere il componente aggiuntivo Amazon S3CSI.

eksctl
Per rimuovere il componente aggiuntivo Amazon S3 utilizzando CSI eksctl

Sostituire my-cluster con il nome del cluster ed eseguire il comando seguente.

eksctl delete addon --cluster my-cluster --name aws-mountpoint-s3-csi-driver --preserve
AWS Management Console
Per rimuovere il CSI componente aggiuntivo Amazon S3 utilizzando il AWS Management Console
  1. Apri la EKS console Amazon a https://console.aws.amazon.com/eks/home#/clusters.

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

  3. Scegli il nome del cluster per cui desideri rimuovere il EBS CSI componente aggiuntivo Amazon.

  4. Seleziona la scheda Componenti aggiuntivi.

  5. Scegli Mountpointil driver Amazon S3 CSI.

  6. Scegli Rimuovi.

  7. Nella finestra di dialogo di conferma Rimuovi: aws-mountpoint-s 3-csi driver, procedi come segue:

    1. Se desideri che Amazon EKS interrompa la gestione delle impostazioni per il componente aggiuntivo, seleziona Preserve on cluster. Effettuare questa operazione se si desidera conservare il software aggiuntivo sul cluster. In questo modo sarà possibile gestire autonomamente tutte le impostazioni del componente aggiuntivo.

    2. Specificare aws-mountpoint-s3-csi-driver.

    3. Selezionare Rimuovi.

AWS CLI
Per rimuovere il CSI componente aggiuntivo Amazon S3 utilizzando il AWS CLI

Sostituire my-cluster con il nome del cluster ed eseguire il comando seguente.

aws eks delete-addon --cluster-name my-cluster --addon-name aws-mountpoint-s3-csi-driver --preserve