Mise à niveau d’Amazon Linux 2 vers Amazon Linux 2023 - Amazon EKS

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 nodeadm d’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 exemple des paramètres minimum requis est présenté ci-dessous, où apiServerEndpoint, certificateAuthority et le service cidr sont 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/16

    Avec AL2, les métadonnées issues de ces paramètres étaient détectées via l’appel d’API DescribeCluster d’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 sur certificateAuthority et le service cidr, consultez DescribeCluster dans la Référence API Amazon EKS.

  • Pour AL2023, nodeadm modifie également le format pour appliquer les paramètres au service kubelet sur chaque nœud utilisant NodeConfigSpec. 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 de maxPods et --node-labels sur 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.2 ou ultérieure de Amazon VPC CNI est requise pour AL2023.

  • AL2023 impose par défaut l’utilisation d’IMDSv2. IMDSv2 pré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 de IMDSv1 à 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 IMDSv2 avec 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 HttpPutResponseHopLimit par défaut est définie sur 2. Vous pouvez modifier manuellement HttpPutResponseHopLimit dans 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). cgroupv2 est utilisé par défaut pour mettre en œuvre l’exécution de conteneur, et par systemd. Bien qu’AL2023 inclue encore le code permettant d’exécuter le système en cgroupv1, 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.0 ou ultérieure d’eksctl est requise pour eksctl pour 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.