Migration von EKS Fargate zu EKS Auto Mode - Amazon EKS

Unterstützung für die Verbesserung dieser Seite beitragen

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Um zu diesem Benutzerhandbuch beizutragen, wählen Sie den GitHub Link Diese Seite bearbeiten auf, der sich im rechten Bereich jeder Seite befindet.

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Migration von EKS Fargate zu EKS Auto Mode

In diesem Thema wird der Prozess der Migration von Workloads von EKS Fargate zu Amazon EKS Auto Mode mithilfe von kubectl erläutert Die Migration kann schrittweise durchgeführt werden, sodass Sie Workloads in Ihrem eigenen Tempo verschieben können, während die Cluster-Stabilität und die Verfügbarkeit der Anwendungen während der gesamten Übergangsphase gewährleistet bleiben.

Der unten beschriebene step-by-step Ansatz ermöglicht es Ihnen, EKS Fargate und EKS Auto Mode während des Migrationszeitraums parallel auszuführen. Diese Dual-Betriebsstrategie trägt zu einem nahtlosen Übergang bei, indem sie Ihnen die Möglichkeit bietet, das Workload-Verhalten in EKS Auto Mode zu validieren, bevor Sie EKS Fargate vollständig außer Betrieb nehmen. Sie können Anwendungen einzeln oder in Gruppen migrieren, was Ihnen Flexibilität bietet, um Ihren spezifischen betrieblichen Anforderungen und Ihrer Risikotoleranz gerecht zu werden.

Vergleich von Amazon EKS Auto Mode und EKS mit AWS Fargate

Amazon EKS mit AWS Fargate bleibt eine Option für Kunden, die EKS ausführen möchten, aber Amazon EKS Auto Mode ist in Zukunft der empfohlene Ansatz. EKS Auto Mode ist vollständig Kubernetes-konform und unterstützt alle Upstream-Kubernetes-Primitive und Plattform-Tools wie Istio, die Fargate nicht unterstützen kann. Der automatische Modus von EKS unterstützt außerdem vollständig alle EC2 Runtime-Kaufoptionen, einschließlich GPU- und Spot-Instances, sodass Kunden ausgehandelte EC2 Rabatte und andere Sparmechanismen nutzen können. Diese Funktionen sind bei der Verwendung von EKS mit Fargate nicht verfügbar.

Darüber hinaus ermöglicht EKS Auto Mode Kunden, dasselbe Isolationsmodell wie Fargate zu erreichen und dabei die standardmäßigen Kubernetes-Planungsfunktionen zu verwenden, um sicherzustellen, dass auf jeder EC2 Instanz ein einziger Anwendungscontainer ausgeführt wird. Durch die Einführung von Amazon EKS Auto Mode können Kunden alle Vorteile der Ausführung von Kubernetes nutzen AWS — eine vollständig Kubernetes-konforme Plattform, die die Flexibilität bietet, die gesamte Bandbreite an Kaufoptionen zu nutzen und gleichzeitig die Benutzerfreundlichkeit EC2 und Abstraktion von der Infrastrukturverwaltung beizubehalten, die Fargate bietet.

Voraussetzungen

Stellen Sie vor Beginn der Migration sicher, dass Sie über Folgendes verfügen:

Schritt 1: Fargate-Cluster überprüfen

  1. Ausführung der EKS-Cluster mit Fargate überprüfen:

    kubectl get node
    NAME STATUS ROLES AGE VERSION
    fargate-ip-192-168-92-52.ec2.internal Ready <none> 25m v1.30.8-eks-2d5f260
    fargate-ip-192-168-98-196.ec2.internal Ready <none> 24m v1.30.8-eks-2d5f260
  2. Ausgeführte Pods überprüfen:

    kubectl get pod -A
    NAMESPACE NAME READY STATUS RESTARTS AGE
    kube-system coredns-6659cb98f6-gxpjz 1/1 Running 0 26m
    kube-system coredns-6659cb98f6-gzzsx 1/1 Running 0 26m
  3. Bereitstellung in einer Datei mit dem Namen deployment_fargate.yaml erstellen:

    apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: eks.amazonaws.com/compute-type: fargate spec: containers: - name: nginx image: nginx ports: - containerPort: 80
  4. Bereitstellung durchführen:

    kubectl apply -f deployment_fargate.yaml
    deployment.apps/nginx-deployment created
  5. Pods und Bereitstellungen überprüfen:

    kubectl get pod,deploy
    NAME                                    READY   STATUS    RESTARTS   AGE
    pod/nginx-deployment-5c7479459b-6trtm   1/1     Running   0          61s
    pod/nginx-deployment-5c7479459b-g8ssb   1/1     Running   0          61s
    pod/nginx-deployment-5c7479459b-mq4mf   1/1     Running   0          61s
    
    NAME                               READY   UP-TO-DATE   AVAILABLE   AGE
    deployment.apps/nginx-deployment   3/3     3            3           61s
  6. Knoten überprüfen:

    kubectl get node -owide
    NAME                                    STATUS  ROLES  AGE VERSION             INTERNAL-IP     EXTERNAL-IP OS-IMAGE       KERNEL-VERSION                  CONTAINER-RUNTIME
    fargate-ip-192-168-111-43.ec2.internal  Ready   <none> 31s v1.30.8-eks-2d5f260 192.168.111.43  <none>      Amazon Linux 2 5.10.234-225.910.amzn2.x86_64  containerd://1.7.25
    fargate-ip-192-168-117-130.ec2.internal Ready   <none> 36s v1.30.8-eks-2d5f260 192.168.117.130 <none>      Amazon Linux 2 5.10.234-225.910.amzn2.x86_64  containerd://1.7.25
    fargate-ip-192-168-74-140.ec2.internal  Ready   <none> 36s v1.30.8-eks-2d5f260 192.168.74.140  <none>      Amazon Linux 2 5.10.234-225.910.amzn2.x86_64  containerd://1.7.25

Schritt 2: EKS Auto Mode auf dem Cluster aktivieren

  1. Aktivieren Sie den EKS-Automatikmodus auf Ihrem vorhandenen Cluster mithilfe der AWS CLI oder der Managementkonsole. Weitere Informationen finden Sie unter Aktivierung von EKS Auto Mode in einem vorhandenen Cluster.

  2. Knoten-Pool überprüfen:

    kubectl get nodepool
    NAME              NODECLASS   NODES   READY   AGE
    general-purpose   default     1       True    6m58s
    system            default     0       True    3d14h

Schritt 3: Workloads für die Migration aktualisieren

Identifizieren und aktualisieren Sie die Workloads, die Sie in EKS Auto Mode migrieren möchten.

Um eine Workload von Fargate nach EKS Auto Mode zu migrieren, wenden Sie die Annotation eks.amazonaws.com/compute-type: ec2 an. Dadurch wird sichergestellt, dass die Arbeitslast trotz des Fargate-Profils nicht von Fargate geplant wird, sondern vom EKS-Automatikmodus übernommen wird. NodePool Weitere Informationen finden Sie unter Einen Knotenpool für EKS Auto Mode erstellen.

  1. Ändern Sie Ihre Bereitstellungen (beispielsweise die deployment_fargate.yaml-Datei), um den Rechentyp auf ec2 umzustellen:

    apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: labels: app: nginx annotations: eks.amazonaws.com/compute-type: ec2 spec: containers: - name: nginx image: nginx ports: - containerPort: 80
  2. Wenden Sie die Bereitstellung an. Durch diese Änderung kann die Workload auf den neuen EKS-Auto–Mode-Knoten geplant werden:

    kubectl apply -f deployment_fargate.yaml
  3. Überprüfen Sie, ob die Bereitstellung im EKS-Auto-Mode-Cluster ausgeführt wird:

    kubectl get pod -o wide
    NAME                               READY   STATUS    RESTARTS   AGE     IP               NODE                  NOMINATED NODE   READINESS GATES
    nginx-deployment-97967b68d-ffxxh   1/1     Running   0          3m31s   192.168.43.240   i-0845aafcb51630ffb   <none>           <none>
    nginx-deployment-97967b68d-mbcgj   1/1     Running   0          2m37s   192.168.43.241   i-0845aafcb51630ffb   <none>           <none>
    nginx-deployment-97967b68d-qpd8x   1/1     Running   0          2m35s   192.168.43.242   i-0845aafcb51630ffb   <none>           <none>
  4. Überprüfen Sie, ob kein Fargate-Knoten ausgeführt wird und keine Bereitstellung in den verwalteten Knoten in EKS Auto Mode ausgeführt wird:

    kubectl get node -owide
    NAME                STATUS ROLES  AGE   VERSION             INTERNAL-IP     EXTERNAL-IP OS-IMAGE                                         KERNEL-VERSION CONTAINER-RUNTIME
    i-0845aafcb51630ffb Ready  <none> 3m30s v1.30.8-eks-3c20087 192.168.41.125  3.81.118.95 Bottlerocket (EKS Auto) 2025.3.14 (aws-k8s-1.30) 6.1.129        containerd://1.7.25+bottlerocket

Schritt 4: Workloads schrittweise migrieren

Wiederholen Sie Schritt 3 für jede Workload, die Sie migrieren möchten. Auf diese Weise können Sie Workloads einzeln oder in Gruppen verschieben, je nach Ihren Anforderungen und Ihrer Risikotoleranz.

Schritt 5: Das ursprüngliche Fargate-Profil entfernen

Sobald alle Workloads migriert wurden, können Sie das ursprüngliche fargate-Profil entfernen. Ersetze es <fargate profile name> durch den Namen deines Fargate-Profils:

aws eks delete-fargate-profile --cluster-name eks-fargate-demo-cluster --fargate-profile-name <fargate profile name>

Schritt 6: CoreDNS herunterskalieren

Da EKS Auto Mode CoreDNS verwaltet, skalieren Sie die coredns-Bereitstellung auf 0 herunter:

kubectl scale deployment coredns -n kube-system —-replicas=0