Aidez à améliorer cette page
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.
Pour contribuer à ce guide de l'utilisateur, cliquez sur le GitHub lien Modifier cette page sur qui se trouve dans le volet droit de chaque page.
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.
Mise à niveau d’Amazon Linux 2 vers Amazon Linux 2023
Avertissement
Amazon EKS a cessé de publier Amazon Linux 2 (AL2) optimisé pour EKS AMIs le 26 novembre 2025. AL2Les versions 023 et Bottlerocket pour AMIs Amazon EKS sont disponibles pour toutes les versions de Kubernetes prises en charge, y compris les versions 1.33 et supérieures.
AL2023 est un système d'exploitation basé sur Linux conçu pour fournir un environnement sécurisé, stable et performant pour vos applications cloud. Il s’agit de la nouvelle génération d’Amazon Linux proposée par Amazon Web Services et est disponible pour toutes les versions Amazon EKS prises en charge.
AL2023 propose plusieurs améliorations par rapport AL2 à. Pour une comparaison complète, consultez Comparing AL2 et Amazon Linux 2023 dans le guide de l'utilisateur Amazon Linux 2023. Plusieurs packages ont été ajoutés, mis à niveau et supprimés AL2. Il est vivement recommandé de tester vos applications avec AL2 023 avant de procéder à la mise à niveau. Pour obtenir la liste de toutes les modifications apportées aux packages en AL2 2023, consultez la section Modifications apportées aux packages dans Amazon Linux 2023 dans les notes de mise à jour d'Amazon Linux 2023.
En plus de ces modifications, prenez en compte les éléments suivants :
-
AL2023 introduit un nouveau processus d'initialisation des nœuds
nodeadmqui utilise un schéma de configuration YAML. Si vous utilisez des groupes de nœuds autogérés ou une AMI avec un modèle de lancement, vous devez désormais fournir explicitement des métadonnées de cluster supplémentaires lors de la création d’un nouveau groupe de nœuds. Un exempledes paramètres minimum requis est présenté ci-dessous, où apiServerEndpoint,certificateAuthorityet le servicecidrsont désormais obligatoires :--- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: my-cluster apiServerEndpoint: https://example.com certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk= cidr: 10.100.0.0/16Dans AL2, les métadonnées de ces paramètres ont été découvertes à partir de l'appel d'
DescribeClusterAPI Amazon EKS. Avec AL2 023, ce comportement a changé car l'appel d'API supplémentaire risque d'être limité lors de la mise à l'échelle de nœuds à grande échelle. Cette modification ne vous affecte pas si vous utilisez des groupes de nœuds gérés sans modèle de lancement, ou si vous utilisez Karpenter. Pour plus d’informations surcertificateAuthorityet le servicecidr, consultezDescribeClusterdans la Référence de l’API Amazon EKS. -
Pour AL2 023, modifie
nodeadmégalement le format pour appliquer des paramètres àkubeletchaque nœud utilisantNodeConfigSpec. En AL2, cela a été fait avec le --kubelet-extra-argsparamètre. Ceci est couramment utilisé pour ajouter des étiquettes et des rejets aux nœuds. L’exemple ci-dessous illustre l’application demaxPodset--node-labelssur le nœud.--- apiVersion: node.eks.aws/v1alpha1 kind: NodeConfig spec: cluster: name: test-cluster apiServerEndpoint: https://example.com certificateAuthority: Y2VydGlmaWNhdGVBdXRob3JpdHk= cidr: 10.100.0.0/16 kubelet: config: maxPods: 110 flags: - --node-labels=karpenter.sh/capacity-type=on-demand,karpenter.sh/nodepool=test -
La version CNI d'Amazon VPC
1.16.2ou supérieure est requise pour 023. AL2 -
AL2023 nécessite
IMDSv2par défaut.IMDSv2présente plusieurs avantages qui contribuent à améliorer la posture de sécurité. Il utilise une méthode d’authentification orientée session qui nécessite la création d’un jeton secret dans une simple requête HTTP PUT pour démarrer la session. La durée de validité du jeton de session peut avoir une valeur quelconque entre 1 seconde et 6 heures. Pour plus d'informations sur la manière de passer deIMDSv1àIMDSv2, consultez Transition vers l'utilisation du service de métadonnées d'instance version 2 et Profitez pleinement des avantages de votre AWS infrastructure IMDSv2 et désactivez-la IMDSv1 dans l'ensemble de celle-ci. Si vous souhaitez continuer à utiliser IMDSv1, vous pouvez le faire en surchargant manuellement les paramètres via les propriétés de lancement de l’instance.Note
IMDSv2Avec AL2 023, le nombre de sauts par défaut pour les groupes de nœuds gérés peut varier :-
Lorsque vous n’utilisez pas de modèle de lancement, la valeur par défaut est définie sur
1. Cela signifie que les conteneurs n’auront pas accès aux informations d’identification du nœud via IMDS. Si vous avez besoin d'un accès par conteneur aux informations d'identification du nœud, vous pouvez toujours le faire en utilisant un modèle de EC2 lancement Amazon personnalisé. -
Lorsque vous utilisez un AMI personnalisée dans un modèle de lancement, la valeur
HttpPutResponseHopLimitpar défaut est définie sur2. Vous pouvez modifier manuellementHttpPutResponseHopLimitdans le modèle de lancement.
Vous pouvez également utiliser Identité du pod Amazon EKS pour fournir des informations d’identification, plutôt que d’utiliser
IMDSv2. -
-
AL2023 propose la nouvelle génération de hiérarchie unifiée des groupes de contrôle (
cgroupv2).cgroupv2est utilisé pour implémenter un environnement d'exécution de conteneur, et parsystemd. Bien que AL2 023 contienne toujours du code permettant au système de fonctionner en utilisantcgroupv1, cette configuration n'est ni recommandée ni prise en charge. Cette configuration sera complètement supprimée dans une prochaine version majeure d’Amazon Linux. -
eksctlune version0.176.0ou supérieure est requise poureksctlprendre en charge la version AL2 023.
Pour les groupes de nœuds gérés existants, vous pouvez effectuer une mise à niveau sur place ou une mise à blue/green niveau en fonction de la manière dont vous utilisez un modèle de lancement :
-
Si vous utilisez une AMI personnalisée avec un groupe de nœuds gérés, vous pouvez effectuer une mise à niveau sur place en remplaçant l’ID de l’AMI dans le modèle de lancement. Vous devez d'abord vous assurer que vos applications et toutes les données utilisateur sont transférées vers AL2 023 avant d'exécuter cette stratégie de mise à niveau.
-
Si vous utilisez des groupes de nœuds gérés avec le modèle de lancement standard ou avec un modèle de lancement personnalisé qui ne précise pas l'ID de l'AMI, vous devez effectuer une mise à niveau à l'aide d'une blue/green stratégie. Une blue/green mise à niveau est généralement plus complexe et implique la création d'un tout nouveau groupe de nœuds dans lequel vous devez spécifier AL2 023 comme type d'AMI. Le nouveau groupe de nœuds devra ensuite être configuré avec soin pour garantir que toutes les données personnalisées du groupe de AL2 nœuds sont compatibles avec le nouveau système d'exploitation. Une fois le nouveau groupe de nœuds testé et validé avec vos applications, vous pouvez migrer les pods de l’ancien groupe vers le nouveau. Après la migration, vous pouvez supprimer l’ancien groupe de nœuds.
Si vous utilisez Karpenter et que vous souhaitez utiliser AL2 023, vous devez modifier le EC2NodeClass amiFamily champ avec AL2 023. Par défaut, la fonction de dérive est activée dans Karpenter. Cela signifie qu’une fois le champ amiFamily modifié, Karpenter mettra automatiquement à jour vos composants master avec la dernière AMI lorsqu’elle sera disponible.
Informations supplémentaires sur nodeadm
Lorsque vous utilisez une AMI Amazon Linux 2023 optimisée pour EKS ou que vous créez une AMI EKS Amazon Linux 2023 personnalisée via les scripts Packer fournis dans le amazon-eks-ami GitHub référentiel officiel, vous devez éviter d'exécuter explicitement nodeadm init dans les données EC2 utilisateur ou dans le cadre de votre AMI personnalisée.
Si vous souhaitez générer une dynamique NodeConfig dans vos données utilisateur, vous pouvez écrire cette configuration dans un fichier yaml ou json intégré. /etc/eks/nodeadm.d Ces fichiers de configuration seront fusionnés et appliqués à votre nœud lorsque nodeadm init sera automatiquement lancé ultérieurement dans le processus de démarrage. Par exemple :
cat > /etc/eks/nodeadm.d/additional-node-labels.yaml << EOF
apiVersion: node.eks.aws/v1alpha1
kind: NodeConfig
spec:
kubelet:
flags:
- --node-labels=foo=bar
EOF
Amazon Linux 2023, optimisé pour EKS, exécute AMIs automatiquement nodeadm init en deux phases via des services systemd distincts : nodeadm-config s'exécute avant l'exécution des données utilisateur, tandis que nodeadm-run s'exécute ensuite. Le service nodeadm-config établit des configurations de base pour containerd et kubelet avant l'exécution des données utilisateur. Le service nodeadm-run exécute certains démons du système et effectue toutes les configurations finales après l'exécution des données utilisateur. Si la commande nodeadm init est exécutée une fois de plus, via les données utilisateur ou une AMI personnalisée, elle peut briser les hypothèses relatives à l'ordre d'exécution et entraîner des résultats inattendus, notamment des erreurs de configuration. ENIs