Utilizzo del componente aggiuntivo Amazon VPC CNI plugin for Kubernetes di Amazon EKS - Amazon EKS

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

Utilizzo del componente aggiuntivo Amazon VPC CNI plugin for Kubernetes di Amazon EKS

Il componente aggiuntivo Amazon VPC CNI plugin for Kubernetes viene implementato su ogni nodo Amazon EC2 del cluster Amazon EKS. Il componente aggiuntivo crea interfacce di rete elastiche e le collega ai nodi Amazon EC2. Il componente aggiuntivo, inoltre, assegna un indirizzo IPv4 o IPv6 privato dal VPC a ogni Pod e servizio.

Una versione del componente aggiuntivo viene implementata con ogni nodo Fargate nel cluster, ma non viene aggiornata sui nodi Fargate. Altri plugin CNI compatibili sono disponibili per l'uso sui cluster Amazon EKS, ma questo è l'unico plugin CNI supportato da Amazon EKS.

La tabella seguente elenca la versione più recente del componente aggiuntivo di Amazon EKS disponibile per ogni versione Kubernetes.

Versione Kubernetes 1.29 1.28 1.27 1.26 1.25 1.24 1.23
Tipo di VPC di Amazon EKS versione CNI v1.18.0-eksbuild.1 v1.18.0-eksbuild.1 v1.18.0-eksbuild.1 v1.18.0-eksbuild.1 v1.18.0-eksbuild.1 v1.18.0-eksbuild.1 v1.18.0-eksbuild.1
Importante

Se gestisci autonomamente questo componente aggiuntivo, le versioni nella tabella potrebbero non essere le stesse delle versioni autogestite disponibili. Per ulteriori informazioni sull'aggiornamento del componente aggiuntivo del tipo autogestito, consulta Aggiornamento del componente aggiuntivo autogestito.

Prerequisiti
Considerazioni
  • Le versioni sono specificate come major-version.minor-version.patch-version-eksbuild.build-number.

  • Verifica della compatibilità delle versioni per le varie funzionalità

    Alcune funzionalità di ciascuna versione Amazon VPC CNI plugin for Kubernetes richiedono determinate versioni. Kubernetes Quando si utilizzano diverse funzionalità di Amazon EKS ed è necessaria una versione specifica del componente aggiuntivo, questa viene annotata nella documentazione relativa alle funzionalità. A meno che tu non abbia un motivo specifico per eseguire una versione più vecchia, consigliamo di eseguire la versione più recente.

Creare il componente aggiuntivo di Amazon EKS

Crea il componente aggiuntivo del tipo Amazon EKS.

  1. Scopri qual è la versione del componente aggiuntivo attualmente installata sul cluster.

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    Di seguito viene riportato un output di esempio:

    v1.12.6-eksbuild.2
  2. Scopri qual è il tipo di componente aggiuntivo attualmente installato sul cluster. A seconda dello strumento con cui hai creato il cluster, al momento potresti non avere il componente aggiuntivo del tipo Amazon EKS installato sul cluster. Sostituisci my-cluster con il nome del cluster.

    $ aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text

    Se viene restituito il numero di versione, sul cluster è installato il componente aggiuntivo del tipo Amazon EKS e non è necessario completare i passaggi rimanenti di questa procedura. Se viene restituito un errore, sul cluster non è installato il componente aggiuntivo del tipo Amazon EKS. Completa i passaggi rimanenti di questa procedura per installarlo.

  3. Salva la configurazione del componente aggiuntivo attualmente installato.

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  4. Crea il componente aggiuntivo utilizzando la AWS CLI. Se desideri utilizzare AWS Management Console o eksctl creare il componente aggiuntivo, consulta Creazione di un componente aggiuntivo e specifica il nome del componente vpc-cni aggiuntivo. Copia il comando seguente sul tuo dispositivo. Apporta le seguenti modifiche al comando, se necessario, quindi esegui il comando modificato.

    • Sostituisci my-cluster con il nome del cluster.

    • Sostituisci v1.18.0-eksbuild.1 con la versione più recente indicata nella tabella delle versioni più recenti per la versione del cluster.

    • Sostituisci 111122223333 con il tuo ID account e AmazonEKSVPCCNIRole con il nome del ruolo IAM esistente creato. Per specificare un ruolo, devi disporre di un provider IAM OpenID Connect (OIDC) per il tuo cluster. Per stabilire se ne possiedi uno per il tuo cluster o per crearne uno, consulta Crea un OIDC provider IAM per il tuo cluster.

    aws eks create-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.18.0-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole

    Se hai applicato impostazioni personalizzate al tuo attuale componente aggiuntivo che sono in conflitto con le impostazioni predefinite del componente aggiuntivo di Amazon EKS, la creazione potrebbe non riuscire. Se la creazione non riesce, riceverai un errore che può aiutare a risolvere il problema. In alternativa, puoi aggiungere --resolve-conflicts OVERWRITE al comando precedente. Ciò consente al componente aggiuntivo di sovrascrivere le impostazioni personalizzate esistenti. Una volta creato il componente aggiuntivo, puoi aggiornarlo con le tue impostazioni personalizzate.

  5. Verifica che la versione più recente del componente aggiuntivo per la versione Kubernetes del cluster sia stata aggiunta al cluster. Sostituisci my-cluster con il nome del cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text

    La creazione del componente aggiuntivo potrebbe richiedere alcuni secondi.

    Di seguito viene riportato un output di esempio:

    v1.18.0-eksbuild.1
  6. Se hai creato impostazioni personalizzate per il componente aggiuntivo originale, prima di creare il componente aggiuntivo di Amazon EKS, utilizza la configurazione che hai salvato precedentemente per aggiornare il componente aggiuntivo di Amazon EKS con le tue impostazioni personalizzate.

  7. (Facoltativo) Installa cni-metrics-helper sul tuo cluster. Raccoglie le informazioni sull'interfaccia di rete elastica e sull'indirizzo IP, le aggrega a livello di cluster e pubblica le metriche su Amazon. CloudWatch Per ulteriori informazioni, consulta on. cni-metrics-helper GitHub

Aggiornamento del componente aggiuntivo di Amazon EKS

Aggiorna il componente aggiuntivo del tipo Amazon EKS. Se non hai aggiunto il componente aggiuntivo del tipo Amazon EKS al tuo cluster, aggiungilo o consulta Aggiornamento del componente aggiuntivo autogestito, invece di completare questa procedura.

  1. Scopri qual è la versione del componente aggiuntivo attualmente installata sul cluster. Sostituisci my-cluster con il nome del cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query "addon.addonVersion" --output text

    Di seguito viene riportato un output di esempio:

    v1.12.6-eksbuild.2

    Se la versione restituita è la stessa della versione Kubernetes del cluster nella tabella delle versioni più recenti, la versione più recente è già installata nel cluster e non è necessario completare il resto di questa procedura. Se invece di un numero di versione ricevi un errore, il componente aggiuntivo del tipo Amazon EKS non è installato sul cluster. È necessario creare il componente aggiuntivo prima di poterlo aggiornare con questa procedura.

  2. Salva la configurazione del componente aggiuntivo attualmente installato.

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  3. Aggiorna il componente aggiuntivo utilizzando la AWS CLI. Se desideri utilizzare AWS Management Console o eksctl aggiornare il componente aggiuntivo, consultaAggiornamento di un componente aggiuntivo. Copia il comando seguente sul tuo dispositivo. Apporta le seguenti modifiche al comando, se necessario, quindi esegui il comando modificato.

    • Sostituisci my-cluster con il nome del cluster.

    • Sostituisci v1.18.0-eksbuild.1 con la versione più recente indicata nella tabella delle versioni più recenti per la versione del cluster.

    • Sostituisci 111122223333 con il tuo ID account e AmazonEKSVPCCNIRole con il nome del ruolo IAM esistente creato. Per specificare un ruolo, devi disporre di un provider IAM OpenID Connect (OIDC) per il tuo cluster. Per stabilire se ne possiedi uno per il tuo cluster o per crearne uno, consulta Crea un OIDC provider IAM per il tuo cluster.

    • L'opzione --resolve-conflicts CONSERVA mantiene i valori di configurazione esistenti per il componente aggiuntivo. Se hai impostato valori personalizzati per le impostazioni del componente aggiuntivo e non utilizzi questa opzione, Amazon EKS sovrascrive i tuoi valori con quelli predefiniti. Se utilizzi questa opzione, è preferibile testare eventuali modifiche ai campi e ai valori su un cluster non di produzione prima di aggiornare il componente aggiuntivo sul cluster di produzione. Se modifichi questo valore in OVERWRITE, tutte le impostazioni vengono modificate nei valori predefiniti di Amazon EKS. Se hai impostato valori personalizzati per un'impostazione qualunque, è possibile che vengano sovrascritti con i valori predefiniti di Amazon EKS. Se modifichi questo valore in none, Amazon EKS non modifica il valore di alcuna impostazione, ma l'aggiornamento potrebbe non riuscire. Se l'aggiornamento non riesce, riceverai un messaggio di errore che ti aiuterà a risolvere il conflitto.

    • Se non stai aggiornando un'impostazione di configurazione, rimuovi --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}' dal comando. Se stai aggiornando un'impostazione di configurazione, sostituisci "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} con l'impostazione che desideri impostare. In questo esempio, la variabile di ambiente AWS_VPC_K8S_CNI_EXTERNALSNAT è impostata su true. Il valore specificato deve essere valido per lo schema di configurazione. Se non conosci lo schema di configurazioneaws eks describe-addon-configuration --addon-name vpc-cni --addon-version v1.18.0-eksbuild.1, esegui sostituendo v1.18.0-eksbuild.1 con il numero di versione del componente aggiuntivo di cui vuoi vedere la configurazione. Lo schema viene restituito nell'output. Se disponi di una configurazione personalizzata, desideri rimuoverla e reimpostare i valori di tutte le impostazioni ai valori predefiniti di Amazon EKS, rimuovi "env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"} dal comando, in modo da avere un {} vuoto. Per una spiegazione di ciascuna impostazione, consulta Variabili di configurazione CNI su. GitHub

      aws eks update-addon --cluster-name my-cluster --addon-name vpc-cni --addon-version v1.18.0-eksbuild.1 \ --service-account-role-arn arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole \ --resolve-conflicts PRESERVE --configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}}'

      Il completamento dell'aggiornamento potrebbe richiedere alcuni secondi.

  4. Conferma che la versione del componente aggiuntivo sia stata aggiornata. Sostituisci my-cluster con il nome del cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni

    Il completamento dell'aggiornamento potrebbe richiedere alcuni secondi.

    Di seguito viene riportato un output di esempio:

    { "addon": { "addonName": "vpc-cni", "clusterName": "my-cluster", "status": "ACTIVE", "addonVersion": "v1.18.0-eksbuild.1", "health": { "issues": [] }, "addonArn": "arn:aws:eks:region:111122223333:addon/my-cluster/vpc-cni/74c33d2f-b4dc-8718-56e7-9fdfa65d14a9", "createdAt": "2023-04-12T18:25:19.319000+00:00", "modifiedAt": "2023-04-12T18:40:28.683000+00:00", "serviceAccountRoleArn": "arn:aws:iam::111122223333:role/AmazonEKSVPCCNIRole", "tags": {}, "configurationValues": "{\"env\":{\"AWS_VPC_K8S_CNI_EXTERNALSNAT\":\"true\"}}" } }

Aggiornamento del componente aggiuntivo autogestito

Importante

Consigliamo di aggiungere al cluster il componente aggiuntivo del tipo Amazon EKS anziché quello del tipo autogestito. Se non conosci bene le differenze tra i due tipi, consulta la pagina Componenti aggiuntivi Amazon EKS. Per ulteriori informazioni sull'aggiunta di un componente aggiuntivo di Amazon EKS al cluster, consulta Creazione di un componente aggiuntivo. 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.

  1. Verifica che sul cluster non sia installato il tipo Amazon EKS del componente aggiuntivo. Sostituisci my-cluster con il nome del tuo cluster.

    aws eks describe-addon --cluster-name my-cluster --addon-name vpc-cni --query addon.addonVersion --output text

    Se viene restituito un messaggio di errore, sul cluster non è installato il componente aggiuntivo del tipo Amazon EKS. Per gestire automaticamente il componente aggiuntivo, completa i passaggi rimanenti di questa procedura per aggiornare il componente aggiuntivo. Se viene restituito il numero di versione, sul cluster è installato il tipo Amazon EKS del componente aggiuntivo. Per aggiornarlo, utilizza la procedura descritta in Aggiornamento di un componente aggiuntivo anziché questa. Se non conosci bene le differenze tra i due tipi di componente aggiuntivo, consulta Componenti aggiuntivi Amazon EKS.

  2. Scopri qual è la versione dell'immagine di container attualmente installata sul cluster.

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    Di seguito viene riportato un output di esempio:

    v1.12.6-eksbuild.2

    L'output potrebbe non includere il numero di build.

  3. Effettua il backup delle impostazioni correnti in modo da poter riprodurre la medesima configurazione dopo avere aggiornato la versione.

    kubectl get daemonset aws-node -n kube-system -o yaml > aws-k8s-cni-old.yaml
  4. Per rivedere le versioni disponibili e familiarizzare con le modifiche apportate alla versione verso cui vuoi eseguire l'aggiornamento, consulta la pagina releases su GitHub. Tieni presente che ti consigliamo di eseguire l'aggiornamento allo stesso. major minor. patchversione elencata nella tabella delle ultime versioni disponibili, anche se le versioni successive sono disponibili su GitHub.. Le versioni di build elencate nella tabella non sono specificate nelle versioni autogestite elencate in GitHub. Aggiorna la versione completando le attività in una delle seguenti opzioni:

    • Se non disponi di impostazioni personalizzate per il componente aggiuntivo, esegui il comando sotto l'To apply this release:intestazione GitHub relativa alla versione a cui stai eseguendo l'aggiornamento.

    • Se disponi di impostazioni personalizzate, scarica il file manifesto con il comando seguente. Modifica https://raw.githubusercontent.com/aws/ amazon-vpc-cni-k 8s/v1.18.0/config/master/aws-k8s-cni.yaml con l'URL della versione a cui stai effettuando l'aggiornamento. GitHub

      curl -O https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.18.0/config/master/aws-k8s-cni.yaml

      Se necessario, modifica il manifesto con le impostazioni personalizzate del backup che hai effettuato in una fase precedente, quindi applica il file modificato al tuo cluster. Se i tuoi nodi non hanno accesso ai repository privati Amazon EKS Amazon ECR da cui vengono estratte le immagini (vedi le righe che iniziano con image: nel manifesto), dovrai scaricare le immagini, copiarle nel tuo repository e modificare il manifesto per estrarre le immagini dal repository. Per ulteriori informazioni, consulta Copia di un'immagine di container da un repository a un altro.

      kubectl apply -f aws-k8s-cni.yaml
      
  5. Verifica che la nuova versione sia ora installata nel cluster.

    kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3

    Di seguito viene riportato un output di esempio:

    v1.18.0
  6. (Facoltativo) Installa cni-metrics-helper sul tuo cluster. Raccoglie le informazioni sull'interfaccia di rete elastica e sull'indirizzo IP, le aggrega a livello di cluster e pubblica le metriche su Amazon. CloudWatch Per ulteriori informazioni, consulta on. cni-metrics-helper GitHub