Aidez à améliorer cette page
Pour contribuer à ce guide de l’utilisateur, cliquez sur le lien Modifier cette page sur GitHub qui se trouve dans le volet droit de chaque page.
Mise à niveau d’Amazon Linux 2 vers Amazon Linux 2023
Les AMI optimisées Amazon EKS sont disponibles en deux familles : basées sur AL2 et sur AL2023. AL2023 est un nouveau système d’exploitation basé sur Linux, conçu pour offrir 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 apporte plusieurs améliorations par rapport à AL2. Pour une comparaison complète, consultez la section Comparaison entre AL2 et Amazon Linux 2023 dans le Guide de l’utilisateur Amazon Linux 2023. Plusieurs packages ont été ajoutés, mis à niveau ou supprimés par rapport à AL2. Il est fortement recommandé de tester vos applications avec AL2023 avant de procéder à la mise à niveau. Pour obtenir la liste de tous les changements de packages dans AL2023, 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
nodeadmd’initialisation de nœud qui 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/16Avec AL2, les métadonnées issues de ces paramètres étaient détectées via l’appel d’API
DescribeClusterd’Amazon EKS. Avec AL2023, ce comportement a changé, car l’appel d’API supplémentaire risque d’entraîner une limitation lors des augmentations verticales du nombre de nœuds. 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 en savoir plus surcertificateAuthorityet le servicecidr, consultezDescribeClusterdans la Référence API Amazon EKS. -
Pour AL2023,
nodeadmmodifie également le format pour appliquer les paramètres au servicekubeletsur chaque nœud utilisantNodeConfigSpec. Dans AL2, cela se faisait au moyen du paramètre --kubelet-extra-args. 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
1.16.2ou ultérieure de Amazon VPC CNI est requise pour AL2023. -
AL2023 impose par défaut l’utilisation d’
IMDSv2.IMDSv2présente plusieurs avantages qui améliorent 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 en version 2 et Profiter de tous les avantages d’IMDSv2 et désactiver IMDSv1 dans votre infrastructure AWS. 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
Pour
IMDSv2avec AL2023, 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 lancement Amazon EC2 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 utilise la nouvelle génération de hiérarchie unifiée des groupes de contrôle (
cgroupv2).cgroupv2est utilisé par défaut pour mettre en œuvre l’exécution de conteneur, et parsystemd. Bien qu’AL2023 inclue encore le code permettant d’exécuter le système encgroupv1, cette configuration n’est plus recommandée ni prise en charge. Cette configuration sera complètement supprimée dans une prochaine version majeure d’Amazon Linux. -
La version
0.176.0ou ultérieure d’eksctlest requise poureksctlpour que AL2023 soit pris en charge.
Pour les groupes de nœuds gérés déjà existants, vous pouvez effectuer soit une mise à niveau sur place, soit une mise à niveau bleu/vert, selon l’utilisation d’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. Assurez-vous d’abord que vos applications et vos données utilisateur fonctionnent correctement avec AL2023 avant de mettre à niveau cette stratégie.
-
Si vous utilisez des groupes de nœuds gérés avec un modèle de lancement standard ou avec un modèle de lancement personnalisé qui ne spécifie pas d’ID d’AMI, vous devez réaliser la mise à niveau en appliquant une stratégie bleu/vert. Une mise à niveau bleu/vert 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 AL2023 comme type d’AMI. Le nouveau groupe de nœuds doit ensuite être configuré avec soin pour garantir que toutes les données personnalisées du groupe de nœuds AL2 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 souhaitez utiliser AL2023, vous devez modifier le champ EC2NodeClass amiFamily pour y indiquer AL2023. 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.