Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation du module complémentaire Amazon VPC CNI plugin for Kubernetes Amazon EKS
Le module complémentaire Amazon VPC CNI plugin for Kubernetes est déployé sur chaque nœud Amazon EC2 de votre cluster Amazon EKS. Le module complémentaire crée des interfaces réseau élastiques et les attache à vos nœuds Amazon EC2. Le module complémentaire attribue également une adresse privée IPv4
ou IPv6
de votre VPC à chaque Pod et service.
Une version du module complémentaire est déployée avec chaque nœud Fargate de votre cluster, mais vous ne devez pas la mettre à jour sur les nœuds Fargate. D'autres plugins CNI compatibles peuvent être utilisés sur les clusters Amazon EKS, mais il s'agit du seul plugin CNI pris en charge par Amazon EKS.
Le tableau suivant répertorie la dernière version disponible du module complémentaire Amazon EKS pour chaque version de Kubernetes.
Version de Kubernetes | 1.29 |
1.28 |
1.27 |
1.26 |
1.25 |
1.24 |
1.23 |
---|---|---|---|---|---|---|---|
Type de version VPC CNI d'Amazon EKS | 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 |
Important
Si vous gérez vous-même ce module complémentaire, les versions répertoriées dans le tableau peuvent ne pas être les mêmes que les versions autogérées disponibles. Pour plus d'informations sur la mise à jour du type autogéré de ce module complémentaire, consultez la rubrique Mise à jour du module complémentaire autogéré.
Prérequis
-
Un cluster Amazon EKS existant. Pour en déployer un, consultez Démarrer avec Amazon EKS.
-
Un fournisseur AWS Identity and Access Management (IAM) OpenID Connect (OIDC) existant pour votre cluster. Pour déterminer si vous en avez déjà un, ou pour en créer un, consultez Créez un OIDC fournisseur IAM pour votre cluster.
-
Un rôle IAM auquel est associée la politique IAM AmazonEKS_CNI_Policy (si votre cluster utilise la famille
IPv4
) ou une politique IPv6 (si votre cluster utilise la familleIPv6
). Pour plus d’informations, consultez Configuration de l'utilisation Amazon VPC CNI plugin for Kubernetes des rôles IAM pour les comptes de service (IRSA). -
Si vous utilisez la version
1.7.0
ou ultérieure du Amazon VPC CNI plugin for Kubernetes et que vous utilisez des politiques de sécurité de Pod personnalisées, consultez Supprimer la stratégie de sécurité de Pod Amazon EKS par défautPolitique de sécurité de pod. -
Important
Amazon VPC CNI plugin for Kubernetesversions
v1.16.0
pourv1.16.1
supprimer la compatibilité avec Kubernetes les versions1.23
et antérieures. La version VPC CNIv1.16.2
rétablit la compatibilité avec Kubernetes les versions antérieures1.23
et les spécifications CNI.v0.4.0
Amazon VPC CNI plugin for Kubernetesversions
v1.16.0
pourv1.16.1
implémenter la versionv1.0.0
de spécification CNI. La spécification CNIv1.0.0
est prise en charge sur les clusters EKS qui exécutent les Kubernetes versionsv1.24
ou ultérieures. Les versionsv1.16.0
VPC CNIv1.16.1
et CNIv1.0.0
ne sont pas prises en charge sur les versions antérieures ou antérieures. Kubernetesv1.23
Pour plus d'informations surv1.0.0
la spécification CNI, voir Spécification de l'interface réseau de conteneurs (CNI) sur
Considérations
-
Les versions sont spécifiées comme
major-version.minor-version.patch-version-eksbuild.build-number
. -
Vérifiez la compatibilité des versions pour chaque fonctionnalité
Certaines fonctionnalités de chaque version Amazon VPC CNI plugin for Kubernetes nécessitent certaines Kubernetes versions. Lorsque vous utilisez différentes fonctionnalités Amazon EKS, si une version spécifique du module complémentaire est requise, celle-ci est indiquée dans la documentation des fonctionnalités. Nous vous recommandons d'utiliser la dernière version, sauf si vous avez une raison précise d'utiliser une version antérieure.
Création du module complémentaire Amazon EKS
Créez le type Amazon EKS du module complémentaire.
-
Déterminez la version du module complémentaire actuellement installée sur votre cluster.
kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
L'exemple qui suit illustre un résultat.
v1.12.6-eksbuild.2
-
Déterminez le type de module complémentaire installé sur votre cluster. Selon l'outil avec lequel vous avez créé votre cluster, le type de module complémentaire Amazon EKS peut ne pas être actuellement installé sur votre cluster. Remplacez
my-cluster
par le nom de votre cluster.$
aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cni --query addon.addonVersion --output textSi un numéro de version est renvoyé, le type de module complémentaire Amazon EKS est installé sur votre cluster, et vous n'avez donc pas besoin de suivre les étapes restantes de cette procédure. Si une erreur est renvoyée, cela signifie que le type de module complémentaire Amazon EKS n'est pas installé sur votre cluster. Suivez les étapes restantes de cette procédure pour l'installer.
-
Enregistrez la configuration du module complémentaire actuellement installé.
kubectl get daemonset aws-node -n kube-system -o yaml >
aws-k8s-cni-old.yaml
-
Créez le module complémentaire à l'aide de la AWS CLI. Si vous souhaitez utiliser le AWS Management Console ou
eksctl
pour créer le module complémentaire, consultez Création d'un module complémentaire et spécifiezvpc-cni
le nom du module complémentaire. Copiez la commande qui suit sur votre appareil. Si nécessaire, apportez les modifications suivantes à la commande, puis exécutez la commande modifiée.-
Remplacez
par le nom de votre cluster.my-cluster
-
Remplacez
par la dernière version répertoriée dans le tableau des dernières versions pour la version de votre cluster.v1.18.0-eksbuild.1
-
Remplacez
111122223333
par l'ID de votre compte etAmazonEKSVPCCNIRole
par le nom d'un rôle IAM que vous avez créé. Pour spécifier un rôle, vous devez disposer d'un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez Créez un OIDC fournisseur IAM pour votre 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
Si vous avez appliqué à votre module complémentaire actuel des paramètres personnalisés qui entrent en conflit avec les paramètres par défaut du module complémentaire Amazon EKS, la création peut échouer. Si la création échoue, vous recevez un message d'erreur qui peut vous aider à résoudre le problème. Vous pouvez également ajouter
--resolve-conflicts OVERWRITE
à la commande précédente. Cela permet au module complémentaire de remplacer les paramètres personnalisés existants. Une fois que vous avez créé le module complémentaire, vous pouvez le mettre à jour avec vos paramètres personnalisés. -
-
Assurez-vous que la dernière version du module complémentaire correspondant à la version de Kubernetes de votre cluster a été ajoutée à votre cluster. Remplacez
par le nom de votre cluster.my-cluster
aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cni --query addon.addonVersion --output textLa création du module complémentaire peut prendre plusieurs secondes.
L'exemple qui suit illustre un résultat.
v1.18.0-eksbuild.1
-
Si vous avez personnalisé les paramètres du module complémentaire, avant de créer le module complémentaire Amazon EKS, utilisez la configuration que vous avez enregistrée lors d'une étape précédente pour mettre à jour le module complémentaire Amazon EKS avec vos paramètres personnalisés.
(Facultatif) Installez le
cni-metrics-helper
sur votre cluster. Il collecte les informations relatives à l'interface Elastic Network et aux adresses IP, les agrège au niveau du cluster et publie les statistiques sur Amazon. CloudWatch Pour plus d'informations, voir cni-metrics-helperci-dessous GitHub.
Mise à jour du module complémentaire Amazon EKS
Mettez à jour le type de module complémentaire Amazon EKS. Si vous n'avez pas ajouté le type de module complémentaire Amazon EKS à votre cluster, ajoutez-le ou consultez la rubrique Mise à jour du module complémentaire autogéré au lieu de terminer cette procédure.
-
Déterminez la version du module complémentaire actuellement installée sur votre cluster. Remplacez
par le nom de votre cluster.my-cluster
aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cni --query "addon.addonVersion" --output textL'exemple qui suit illustre un résultat.
v1.12.6-eksbuild.2
Si la version renvoyée est identique à la version de Kubernetes de votre cluster dans le tableau des dernières versions, cela signifie que la dernière version est déjà installée sur votre cluster, et vous n'avez donc pas besoin de terminer cette procédure. Si vous recevez une erreur au lieu d'un numéro de version dans votre sortie, cela signifie que le type de module complémentaire Amazon EKS n'est pas installé sur votre cluster. Vous devez créer le module complémentaire avant de pouvoir le mettre à jour à l'aide de cette procédure.
-
Enregistrez la configuration du module complémentaire actuellement installé.
kubectl get daemonset aws-node -n kube-system -o yaml >
aws-k8s-cni-old.yaml
-
Mettez à jour votre module complémentaire à l'aide de la AWS CLI. Si vous souhaitez utiliser AWS Management Console ou mettre
eksctl
à jour le module complémentaire, consultezMise à jour d'un module complémentaire. Copiez la commande qui suit sur votre appareil. Si nécessaire, apportez les modifications suivantes à la commande, puis exécutez la commande modifiée.-
Remplacez
par le nom de votre cluster.my-cluster
-
Remplacez
par la dernière version répertoriée dans le tableau des dernières versions pour la version de votre cluster.v1.18.0-eksbuild.1
-
Remplacez
111122223333
par l'ID de votre compte etAmazonEKSVPCCNIRole
par le nom d'un rôle IAM que vous avez créé. Pour spécifier un rôle, vous devez disposer d'un fournisseur IAM OpenID Connect (OIDC) pour votre cluster. Pour déterminer si vous en avez un pour votre cluster ou pour en créer un, consultez Créez un OIDC fournisseur IAM pour votre cluster. -
L'option
--resolve-conflicts
PRESERVE
conserve les valeurs de configuration existantes pour le module complémentaire. Si vous avez défini des valeurs personnalisées pour les paramètres des modules complémentaires et que vous n'utilisez pas cette option, Amazon EKS remplace vos valeurs par ses valeurs par défaut. Si vous utilisez cette option, nous vous recommandons de tester les modifications de champ et de valeur sur un cluster hors production avant de mettre à jour le module complémentaire sur votre cluster de production. Si vous remplacez cette valeur parOVERWRITE
, tous les paramètres sont remplacés par les valeurs par défaut d'Amazon EKS. Si vous avez défini des valeurs personnalisées pour certains paramètres, il est possible qu'elles soient remplacées par les valeurs par défaut d'Amazon EKS. Si vous remplacez cette valeur parnone
, Amazon EKS ne modifie la valeur d'aucun paramètre, mais la mise à jour risque d'échouer. Si la mise à jour échoue, vous recevez un message d'erreur pour vous aider à résoudre le conflit. -
Si vous ne mettez à jour aucun paramètre de configuration, supprimez
--configuration-values '{
de la commande. Si vous mettez à jour un paramètre de configuration, remplacez"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
}'"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
par le paramètre que vous souhaitez définir. Dans cet exemple, la variable d'environnementAWS_VPC_K8S_CNI_EXTERNALSNAT
est définie surtrue
. La valeur que vous spécifiez doit être valide pour le schéma de configuration. Si vous ne connaissez pas le schéma de configurationaws eks describe-addon-configuration --addon-name vpc-cni --addon-version
, lancez-le en remplaçantv1.18.0-eksbuild.1
v1.18.0-eksbuild.1
par le numéro de version du module complémentaire dont vous souhaitez consulter la configuration. Le schéma est renvoyé dans la sortie. Si vous disposez déjà d'une configuration personnalisée, que vous souhaitez la supprimer et rétablir les valeurs par défaut d'Amazon EKS pour tous les paramètres, supprimez
de la commande, de sorte que le champ"env":{"AWS_VPC_K8S_CNI_EXTERNALSNAT":"true"}
soit vide. Pour une explication de chaque paramètre, voir Variables de configuration CNI{}
activées 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"}
}'La mise à jour peut prendre plusieurs secondes.
-
-
Assurez-vous que la version du module complémentaire a été mise à jour. Remplacez
par le nom de votre cluster.my-cluster
aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cniLa mise à jour peut prendre plusieurs secondes.
L'exemple qui suit illustre un résultat.
{ "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\"}
}" } }
Mise à jour du module complémentaire autogéré
Important
Nous recommandons d'ajouter le type Amazon EKS du module complémentaire à votre cluster au lieu d'utiliser le type autogéré du module complémentaire. Si la différence entre les types ne vous est pas familière, consultez Modules complémentaires Amazon EKS. Pour plus d'informations sur l'ajout d'un module complémentaire Amazon EKS à votre cluster, consultez Création d'un module complémentaire. Si vous ne parvenez pas à utiliser le module complémentaire Amazon EKS, nous vous encourageons à signaler les raisons pour lesquelles vous ne pouvez pas utiliser le module complémentaire Amazon EKS dans le GitHub référentiel de feuilles de route pour les conteneurs
-
Assurez-vous que le type de module complémentaire Amazon EKS est installé sur votre cluster. Remplacez
my-cluster
par le nom de votre cluster.aws eks describe-addon --cluster-name
my-cluster
--addon-name vpc-cni --query addon.addonVersion --output textSi un message d'erreur est renvoyé, cela signifie que le type de module complémentaire Amazon EKS n'est pas installé sur votre cluster. Pour gérer vous-même le module complémentaire, suivez les étapes restantes de cette procédure afin de le mettre à jour. Si un numéro de version est renvoyé, le type de module complémentaire Amazon EKS est installé sur votre cluster. Pour le mettre à jour, suivez la procédure décrite dans la rubrique Mise à jour d'un module complémentaire plutôt que cette procédure. Si les différences entre les types de modules complémentaires ne vous sont pas familières, consultez Modules complémentaires Amazon EKS.
-
Découvrez quelle version de l'image de conteneur est actuellement installée sur votre cluster.
kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
L'exemple qui suit illustre un résultat.
v1.12.6-eksbuild.2
Il est possible que votre sortie n'inclue pas le numéro de build.
-
Sauvegardez vos paramètres actuels afin de pouvoir configurer les mêmes paramètres une fois que vous aurez mis à jour votre version.
kubectl get daemonset aws-node -n kube-system -o yaml >
aws-k8s-cni-old.yaml
-
Pour voir les versions disponibles et vous familiariser avec les modifications apportées à la version vers laquelle vous souhaitez effectuer la mise à jour, consultez la page
releases
sur GitHub. Notez que nous vous recommandons de procéder à la même mise à jourmajor
.minor
.patch
version répertoriée dans le tableau des dernières versions disponibles, même si des versions ultérieures sont disponibles sur GitHub.. Les versions de build répertoriées dans le tableau ne sont pas spécifiées dans les versions autogérées répertoriées sur GitHub. Mettez à jour votre version en procédant comme suit, selon le cas :-
Si vous n'avez aucun paramètre personnalisé pour le module complémentaire, exécutez la commande sous l'
To apply this release:
en-tête correspondant à la versionvers laquelle vous souhaitez effectuer la mise à jour. GitHub -
Si vous avez personnalisé des paramètres, téléchargez le fichier manifeste avec la commande suivante. Remplacez
https://raw.githubusercontent.com/aws/ amazon-vpc-cni-k 8s/v1.18.0/config/master/aws-k8s-cni.yaml
par l'URL de la version vers laquelle vous effectuez la mise à jour. GitHubcurl -O
https://raw.githubusercontent.com/aws/amazon-vpc-cni-k8s/v1.18.0/config/master/aws-k8s-cni.yaml
Si nécessaire, modifiez le manifeste avec les paramètres personnalisés de la sauvegarde que vous avez effectuée lors d'une étape précédente, puis appliquez le manifeste modifié à votre cluster. Si vos nœuds n'ont pas accès aux référentiels privés Amazon EKS Amazon ECR à partir desquels les images sont extraites (voir les lignes commençant par
image:
dans le manifeste), vous devrez télécharger les images, les copier dans votre propre référentiel et modifier le manifeste pour extraire les images de votre référentiel. Pour plus d’informations, consultez Copier une image de conteneur d'un référentiel vers un autre référentiel.kubectl apply -f aws-k8s-cni.yaml
-
-
Vérifiez que la nouvelle version est maintenant installée sur votre cluster.
kubectl describe daemonset aws-node --namespace kube-system | grep amazon-k8s-cni: | cut -d : -f 3
L'exemple qui suit illustre un résultat.
v1.18.0
(Facultatif) Installez le
cni-metrics-helper
sur votre cluster. Il collecte les informations relatives à l'interface Elastic Network et aux adresses IP, les agrège au niveau du cluster et publie les statistiques sur Amazon. CloudWatch Pour plus d'informations, voir cni-metrics-helperci-dessous GitHub.