Bermigrasi dari EKS Fargate ke Mode Otomatis EKS - Amazon EKS

Bantu tingkatkan halaman ini

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Untuk berkontribusi pada panduan pengguna ini, pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman.

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Bermigrasi dari EKS Fargate ke Mode Otomatis EKS

Topik ini memandu Anda melalui proses migrasi beban kerja dari EKS Fargate ke Amazon EKS Auto Mode menggunakan. kubectl Migrasi dapat dilakukan secara bertahap, memungkinkan Anda untuk memindahkan beban kerja dengan kecepatan Anda sendiri sambil menjaga stabilitas klaster dan ketersediaan aplikasi selama transisi.

step-by-stepPendekatan yang diuraikan di bawah ini memungkinkan Anda menjalankan EKS Fargate dan Mode Otomatis EKS berdampingan selama periode migrasi. Strategi operasi ganda ini membantu memastikan transisi yang mulus dengan memungkinkan Anda memvalidasi perilaku beban kerja pada Mode Otomatis EKS sebelum sepenuhnya menonaktifkan EKS Fargate. Anda dapat memigrasikan aplikasi secara individu atau dalam kelompok, memberikan fleksibilitas untuk mengakomodasi persyaratan operasional spesifik dan toleransi risiko Anda.

Membandingkan Amazon EKS Auto Mode dan EKS dengan AWS Fargate

Amazon EKS dengan AWS Fargate tetap menjadi pilihan bagi pelanggan yang ingin menjalankan EKS, tetapi Amazon EKS Auto Mode adalah pendekatan yang disarankan untuk bergerak maju. Mode Otomatis EKS sepenuhnya sesuai dengan Kubernetes, mendukung semua primitif Kubernetes hulu dan alat platform seperti Istio, yang tidak dapat didukung Fargate. Mode Otomatis EKS juga sepenuhnya mendukung semua opsi pembelian EC2 runtime, termasuk instans GPU dan Spot, memungkinkan pelanggan untuk memanfaatkan EC2 diskon yang dinegosiasikan dan mekanisme penghematan lainnya Kemampuan ini tidak tersedia saat menggunakan EKS dengan Fargate.

Selain itu, Mode Otomatis EKS memungkinkan pelanggan untuk mencapai model isolasi yang sama dengan Fargate, menggunakan kemampuan penjadwalan Kubernetes standar untuk memastikan setiap EC2 instance menjalankan satu wadah aplikasi. Dengan mengadopsi Amazon EKS Auto Mode, pelanggan dapat membuka manfaat penuh dari menjalankan Kubernetes AWS — platform Kubernetes-Conformant sepenuhnya yang memberikan fleksibilitas untuk memanfaatkan seluruh luasnya dan opsi pembelian sambil mempertahankan kemudahan penggunaan EC2 dan abstraksi dari manajemen infrastruktur yang disediakan Fargate.

Prasyarat

Sebelum memulai migrasi, pastikan Anda memiliki

Langkah 1: Periksa cluster Fargate

  1. Periksa apakah cluster EKS dengan Fargate sedang berjalan:

    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. Periksa pod yang sedang berjalan:

    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. Buat penyebaran dalam file bernamadeployment_fargate.yaml:

    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. Terapkan penyebaran:

    kubectl apply -f deployment_fargate.yaml
    deployment.apps/nginx-deployment created
  5. Periksa pod dan penerapan:

    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. Periksa simpul:

    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

Langkah 2: Aktifkan Mode Otomatis EKS di cluster

  1. Aktifkan Mode Otomatis EKS di cluster Anda yang ada menggunakan AWS CLI atau Management Console. Untuk informasi selengkapnya, lihat Aktifkan Mode Otomatis EKS pada cluster yang ada.

  2. Periksa nodepool:

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

Langkah 3: Perbarui beban kerja untuk migrasi

Identifikasi dan perbarui beban kerja yang ingin Anda migrasi ke Mode Otomatis EKS.

Untuk memigrasikan beban kerja dari Fargate ke Mode Otomatis EKS, terapkan anotasi. eks.amazonaws.com/compute-type: ec2 Ini memastikan bahwa beban kerja tidak akan dijadwalkan oleh Fargate, terlepas dari profil Fargate, dan akan terjebak oleh Mode Otomatis EKS. NodePool Untuk informasi selengkapnya, lihat Buat Node Pool untuk Mode Otomatis EKS.

  1. Ubah penerapan Anda (misalnya, deployment_fargate.yaml file) untuk mengubah jenis komputasi menjadi: ec2

    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. Terapkan penyebaran. Perubahan ini memungkinkan beban kerja dijadwalkan pada node Mode Otomatis EKS yang baru:

    kubectl apply -f deployment_fargate.yaml
  3. Periksa apakah penerapan berjalan di kluster Mode Otomatis EKS:

    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. Pastikan tidak ada node Fargate yang berjalan dan penerapan yang berjalan di node terkelola Mode Otomatis EKS:

    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

Langkah 4: Migrasikan beban kerja secara bertahap

Ulangi Langkah 3 untuk setiap beban kerja yang ingin Anda migrasikan. Ini memungkinkan Anda untuk memindahkan beban kerja secara individu atau dalam kelompok, berdasarkan persyaratan dan toleransi risiko Anda.

Langkah 5: Hapus profil fargate asli

Setelah semua beban kerja dimigrasikan, Anda dapat menghapus profil aslinyafargate. Ganti <fargate profile name> dengan nama profil Fargate Anda:

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

Langkah 6: Turunkan CoreDNS

Karena mode EKS Auto menangani CoreDNS, Anda menskalakan penerapan coredns ke 0:

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