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.
Migration de Karpenter vers le mode automatique EKS à l’aide de kubectl
Cette rubrique décrit en détail le processus de migration des charges de travail de Karpenter vers le mode automatique Amazon EKS à l’aide de kubectl. La migration peut être effectuée progressivement, vous permettant de transférer les charges de travail à votre propre rythme, tout en préservant la stabilité du cluster et la disponibilité des applications pendant toute la transition.
L’approche étape par étape décrite ci-dessous permet d’exécuter Karpenter et le mode automatique EKS simultanément pendant la période de migration. Cette stratégie de double exploitation garantit une transition fluide, car elle vous permet de valider le comportement des charges de travail en mode automatique EKS avant de désactiver complètement Karpenter. Vous pouvez migrer les applications individuellement ou par groupes, ce qui offre une flexibilité accrue pour répondre à vos exigences opérationnelles spécifiques et à votre tolérance au risque.
Prérequis
Avant de commencer la migration, assurez-vous d’avoir :
-
Karpenter v1.1 ou une version ultérieure installée sur votre cluster. Pour plus d’informations, consultez Mise à niveau vers la version 1.1.0+
dans la documentation Karpenter. -
kubectlinstallé et connecté à votre cluster. Pour de plus amples informations, consultez Configuration pour utiliser Amazon EKS.
Cette rubrique suppose que vous êtes déjà familier avec Karpenter et NodePools. Pour plus d’informations, consultez la Documentation Karpenter
Étape 1 : activer le mode automatique EKS sur le cluster
Activez le mode automatique EKS sur votre cluster existant à l’aide de la console de gestion ou de l’interface CLI AWS. Pour de plus amples informations, consultez Activation du mode automatique EKS sur un cluster existant.
Note
Lors de l’activation du mode automatique EKS, n’activez pas le groupe de nœuds general purpose à ce stade de la transition. Ce groupe de nœuds n’est pas sélectif.
Pour de plus amples informations, consultez Activer ou désactiver les groupes de nœuds créés.
Étape 2 : créer un NodePool du mode automatique EKS avec balise de rejet
Créez un nouveau NodePool pour le mode automatique EKS avec une balise de rejet. Cela garantit que les pods existants ne seront pas automatiquement planifiés sur les nouveaux nœuds du mode automatique EKS. Ce groupe de nœuds utilise la NodeClass default intégrée au mode automatique EKS. Pour de plus amples informations, consultez Création d’une classe de nœuds pour Amazon EKS.
Exemple de groupe de nœuds avec balise de rejet :
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: eks-auto-mode spec: template: spec: requirements: - key: "eks.amazonaws.com/instance-category" operator: In values: ["c", "m", "r"] nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default taints: - key: "eks-auto-mode" effect: "NoSchedule"
Mettez à jour les exigences du groupe de nœuds afin qu’elles correspondent à la configuration Karpenter d’origine à partir de laquelle vous effectuez la migration. Vous devez définir au moins une exigence.
Étape 3 : mettre à jour les charges de travail pour la migration
Identifiez et mettez à jour les charges de travail que vous souhaitez migrer vers le mode automatique EKS. Ajoutez des tolérances et des sélecteurs de nœuds à ces charges de travail :
apiVersion: apps/v1 kind: Deployment spec: template: spec: tolerations: - key: "eks-auto-mode" effect: "NoSchedule" nodeSelector: eks.amazonaws.com/compute-type: auto
Cette modification permet de planifier la charge de travail sur les nouveaux nœuds du mode automatique EKS.
Le mode automatique EKS utilise des étiquettes différentes de celles de Karpenter. Les étiquettes associées aux instances gérées EC2 commencent par eks.amazonaws.com. Pour de plus amples informations, consultez Create a Node Pool for EKS Auto Mode.
Étape 4 : migrer progressivement les charges de travail
Répétez l’étape 3 pour chaque charge de travail que vous souhaitez migrer. Cette méthode vous permet de déplacer les charges de travail individuellement ou par groupes, selon vos besoins et votre tolérance au risque.
Étape 5 : supprimer le NodePool Karpenter d’origine
Une fois que toutes les charges de travail ont été migrées, vous pouvez supprimer le NodePool Karpenter d’origine :
kubectl delete nodepool <original-nodepool-name>
Étape 6 : supprimer la balise de rejet du groupe de nœuds du mode automatique EKS (facultatif)
Si vous souhaitez que le mode automatique EKS devienne la configuration par défaut pour les nouvelles charges de travail, vous pouvez supprimer la balise de rejet du NodePool du mode automatique EKS :
apiVersion: karpenter.sh/v1 kind: NodePool metadata: name: eks-auto-mode spec: template: spec: nodeClassRef: group: eks.amazonaws.com kind: NodeClass name: default # Remove the taints section
Étape 7 : supprimer les sélecteurs de nœuds des charges de travail (facultatif)
Si vous avez supprimé la balise de rejet du NodePool du mode automatique EKS, vous pouvez également supprimer les sélecteurs de nœuds de vos charges de travail, puisque le mode automatique EKS est désormais la configuration par défaut :
apiVersion: apps/v1 kind: Deployment spec: template: spec: # Remove the nodeSelector section tolerations: - key: "eks-auto-mode" effect: "NoSchedule"
Étape 8 : désinstaller Karpenter de votre cluster
Les étapes de suppression de Karpenter dépendent de la méthode d’installation que vous avez utilisée. Pour plus d’informations, consultez les Instructions d’installation de Karpenter