Eseguire la migrazione da Karpenter a EKS Auto Mode utilizzando kubectl - Amazon EKS

Contribuisci a migliorare questa pagina

Per contribuire a questa guida per l’utente, seleziona il link Edit this page on GitHub che si trova nel riquadro destro di ogni pagina.

Eseguire la migrazione da Karpenter a EKS Auto Mode utilizzando kubectl

Questo argomento illustra il processo di migrazione dei carichi di lavoro da Karpenter ad Amazon EKS Auto Mode utilizzando kubectl. La migrazione può essere eseguita gradualmente, consentendo di spostare i carichi di lavoro al proprio ritmo, mantenendo al contempo la stabilità del cluster e la disponibilità delle applicazioni durante la transizione.

L’approccio dettagliato descritto di seguito ti consente di eseguire Karpenter ed EKS Auto Mode in parallelo durante il periodo di migrazione. Questa strategia a doppio funzionamento aiuta a garantire una transizione fluida consentendoti di convalidare il comportamento del carico di lavoro in EKS Auto Mode prima di disattivare completamente Karpenter. Puoi eseguire la migrazione delle applicazioni singolarmente o in gruppo, garantendo la flessibilità necessaria per soddisfare i requisiti operativi specifici e la tolleranza al rischio.

Prerequisiti

Prima di iniziare la migrazione, assicurati di avere:

Questo argomento presuppone che tu abbia una certa familiarità con Karpenter e NodePools. Per ulteriori informazioni, consulta Karpenter Documentation.

Fase 1: abilitare EKS Auto Mode sul cluster

Abilita EKS Auto Mode sul cluster esistente utilizzando AWS CLI o la console di gestione. Per ulteriori informazioni, consulta Abilita EKS Auto Mode su un cluster esistente.

Nota

Durante l’abilitazione di EKS Auto Mode, non abilitare il nodepool general purpose in questa fase durante la transizione. Questo pool di nodi non è selettivo.

Per ulteriori informazioni, consulta Abilitazione o disabilitazione i NodePools integrati.

Fase 2: creare un NodePool oggetto di taint in EKS Auto Mode

Crea un nuovo NodePool per EKS Auto Mode con un taint. Ciò garantisce che i pod esistenti non vengano programmati automaticamente sui nuovi nodi EKS Auto Mode. Questo pool di nodi utilizza NodeClass integrato default in EKS Auto Mode. Per ulteriori informazioni, consulta Creazione di una classe di nodi per Amazon EKS.

Esempio di pool di nodi con taint:

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"

Aggiorna i requisiti per il pool di nodi in modo tale che corrispondano alla configurazione di Karpenter da cui stai eseguendo la migrazione. Devi soddisfare almeno un requisito.

Fase 3: aggiornare i carichi di lavoro per la migrazione

Identifica e aggiorna i carichi di lavoro che desideri migrare a EKS Auto Mode. Aggiungi sia le tolleranze che i selettori di nodi a questi carichi di lavoro:

apiVersion: apps/v1 kind: Deployment spec: template: spec: tolerations: - key: "eks-auto-mode" effect: "NoSchedule" nodeSelector: eks.amazonaws.com/compute-type: auto

Questa modifica consente di pianificare il carico di lavoro sui nuovi nodi EKS Auto Mode.

EKS Auto Mode utilizza etichette diverse rispetto a Karpenter. Le etichette relative alle istanze gestite da EC2 iniziano con eks.amazonaws.com. Per ulteriori informazioni, consulta Crea un pool di nodi per EKS Auto Mode.

Fase 4: migrare gradualmente i carichi di lavoro

Ripeti la fase 3 per ogni carico di lavoro di cui desideri eseguire la migrazione. Ciò consente di spostare i carichi di lavoro individualmente o in gruppo, in base ai requisiti e alla tolleranza al rischio.

Fase 5: rimuovere il NodePool originale di Karpenter

Una volta eseguita la migrazione di tutti i carichi di lavoro, puoi rimuovere il NodePool originale di Karpenter:

kubectl delete nodepool <original-nodepool-name>

Fase 6: rimuovere il taint da EKS Auto Mode NodePool (facoltativo)

Se desideri che EKS Auto Mode diventi l’impostazione predefinita per i nuovi carichi di lavoro, puoi rimuovere il taint da EKS Auto Mode NodePool:

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

Fase 7: rimuovere i selettori di nodi dai carichi di lavoro (facoltativo)

Se hai rimosso il taint da EKS Auto Mode NodePool, puoi rimuovere facoltativamente i selettori di nodi dai carichi di lavoro, poiché EKS Auto Mode è ora l’impostazione predefinita:

apiVersion: apps/v1 kind: Deployment spec: template: spec: # Remove the nodeSelector section tolerations: - key: "eks-auto-mode" effect: "NoSchedule"

Fase 8: disinstallare Karpenter dal cluster

Le fasi per rimuovere Karpenter dipendono da come l’hai installato. Per ulteriori informazioni, consulta Karpenter install instructions.