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
-
Un cluster Amazon EKS esistente. Per implementarne uno, consulta Guida introduttiva ad Amazon EKS.
-
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 OIDC provider IAM per il tuo cluster.
-
Un ruolo IAM con la policy IAM AmazonEKS_CNI_Policy (se il cluster utilizza la famiglia
IPv4
) o una policy IPv6 (se il cluster utilizza la famigliaIPv6
) allegata. Per ulteriori informazioni, consulta Configurazione dell'Amazon VPC CNI plugin for Kubernetesutilizzo dei ruoli IAM per gli account di servizio (IRSA). -
Se usi la versione
1.7.0
o successiva del Amazon VPC CNI plugin for Kubernetes e usi policy di sicurezza Pod personalizzate, consulta Eliminazione della policy di sicurezza Pod predefinita di Amazon EKSPolicy di sicurezza pod. -
Importante
Amazon VPC CNI plugin for Kubernetesversioni
v1.16.0
in cui èv1.16.1
stata rimossa la compatibilità con Kubernetes le versioni1.23
e precedenti. La versione VPC CNIv1.16.2
ripristina la compatibilità con Kubernetes le versioni precedenti1.23
e le specifiche CNI.v0.4.0
Amazon VPC CNI plugin for Kubernetesversioni
v1.16.0
perv1.16.1
implementare la versione delle specifiche CNI.v1.0.0
La specifica CNIv1.0.0
è supportata sui cluster EKS che eseguono le Kubernetes versioni o successive.v1.24
La versionev1.16.0
VPC CNIv1.16.1
e le specifiche CNIv1.0.0
non sono supportate nella versione o nelle versioni precedenti. Kubernetesv1.23
Per ulteriori informazioni sullev1.0.0
specifiche CNI, vedere Container Network Interface (CNI) Specification su
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.
-
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
-
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 textSe 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.
-
Salva la configurazione del componente aggiuntivo attualmente installato.
kubectl get daemonset aws-node -n kube-system -o yaml >
aws-k8s-cni-old.yaml
-
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 componentevpc-cni
aggiuntivo. Copia il comando seguente sul tuo dispositivo. Apporta le seguenti modifiche al comando, se necessario, quindi esegui il comando modificato.-
Sostituisci
con il nome del cluster.my-cluster
-
Sostituisci
con la versione più recente indicata nella tabella delle versioni più recenti per la versione del cluster.v1.18.0-eksbuild.1
-
Sostituisci
111122223333
con il tuo ID account eAmazonEKSVPCCNIRole
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
\ --service-account-role-arn arn:aws:iam::v1.18.0-eksbuild.1
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. -
-
Verifica che la versione più recente del componente aggiuntivo per la versione Kubernetes del cluster sia stata aggiunta al cluster. Sostituisci
con il nome del cluster.my-cluster
aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cni --query addon.addonVersion --output textLa creazione del componente aggiuntivo potrebbe richiedere alcuni secondi.
Di seguito viene riportato un output di esempio:
v1.18.0-eksbuild.1
-
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.
(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-helperGitHub
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.
-
Scopri qual è la versione del componente aggiuntivo attualmente installata sul cluster. Sostituisci
con il nome del cluster.my-cluster
aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cni --query "addon.addonVersion" --output textDi 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.
-
Salva la configurazione del componente aggiuntivo attualmente installato.
kubectl get daemonset aws-node -n kube-system -o yaml >
aws-k8s-cni-old.yaml
-
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
con il nome del cluster.my-cluster
-
Sostituisci
con la versione più recente indicata nella tabella delle versioni più recenti per la versione del cluster.v1.18.0-eksbuild.1
-
Sostituisci
111122223333
con il tuo ID account eAmazonEKSVPCCNIRole
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 inOVERWRITE
, 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 innone
, 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 '{
dal comando. Se stai aggiornando un'impostazione di configurazione, sostituisci"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
}'"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
con l'impostazione che desideri impostare. In questo esempio, la variabile di ambienteAWS_VPC_K8S_CNI_EXTERNALSNAT
è impostata sutrue
. 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
, esegui sostituendov1.18.0-eksbuild.1
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
dal comando, in modo da avere un"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
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-versionv1.18.0-eksbuild.1
\ --service-account-role-arn arn:aws:iam::111122223333
:role/AmazonEKSVPCCNIRole
\ --resolve-conflictsPRESERVE
--configuration-values '{"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
}'Il completamento dell'aggiornamento potrebbe richiedere alcuni secondi.
-
-
Conferma che la versione del componente aggiuntivo sia stata aggiornata. Sostituisci
con il nome del cluster.my-cluster
aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cniIl 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
-
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 textSe 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.
-
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.
-
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
-
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
.patch
versione 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 versionea 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. GitHubcurl -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
-
-
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
(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-helperGitHub