Perbarui tumpukan AWS CloudFormation simpul - 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.

Perbarui tumpukan AWS CloudFormation simpul

Topik ini menjelaskan bagaimana Anda dapat memperbarui tumpukan node yang AWS CloudFormation dikelola sendiri dengan AMI baru. Anda dapat menggunakan prosedur ini untuk memperbarui node Anda ke versi baru Kubernetes setelah pembaruan klaster. Jika tidak, Anda dapat memperbarui ke AMI Amazon EKS terbaru yang dioptimalkan untuk versi Kubernetes yang ada.

penting

Topik ini mencakup pembaruan simpul untuk simpul yang dikelola sendiri. Untuk informasi tentang penggunaan Simplify node lifecycle dengan grup node terkelola, lihat. Memperbarui grup node terkelola untuk klaster Anda

AWS CloudFormation Template node Amazon EKS default terbaru dikonfigurasi untuk meluncurkan instance dengan AMI baru ke dalam klaster Anda sebelum menghapus yang lama, satu per satu. Konfigurasi ini memastikan bahwa Anda selalu memiliki jumlah instans aktif yang diinginkan grup Auto Scaling di klaster selama pembaruan bergulir.

catatan

Metode ini tidak didukung untuk grup node yang dibuat denganeksctl. Jika Anda membuat grup klaster atau simpul dengan eksctl, lihat Migrasikan aplikasi ke grup node baru.

  1. Tentukan penyedia DNS untuk klaster Anda.

    kubectl get deployments -l k8s-app=kube-dns -n kube-system

    Contoh output adalah sebagai berikut. Cluster ini menggunakan CoreDNS untuk resolusi DNS, tetapi klaster Anda mungkin kembali. kube-dns Output Anda mungkin terlihat berbeda tergantung pada versi kubectl yang Anda gunakan.

    NAME DESIRED CURRENT UP-TO-DATE AVAILABLE AGE coredns 1 1 1 1 31m
  2. Jika deployment Anda saat ini berjalan kurang dari dua replika, skalakan deployment menjadi dua replika. Ganti coredns dengan kube-dns jika output perintah Anda sebelumnya mengembalikannya.

    kubectl scale deployments/coredns --replicas=2 -n kube-system
  3. (Opsional) Jika Anda menggunakan Kubernetes Cluster Autoscaler, turunkan skala deployment ke nol (0) replika untuk menghindari tindakan penskalaan yang bertentangan.

    kubectl scale deployments/cluster-autoscaler --replicas=0 -n kube-system
  4. Tentukan jenis instance dan jumlah instans yang diinginkan dari grup node Anda saat ini. Anda memasukkan nilai-nilai ini nanti ketika Anda memperbarui AWS CloudFormation template untuk grup.

    1. Buka EC2 konsol Amazon di https://console.aws.amazon.com/ec2/.

    2. Di panel navigasi kiri, pilih Luncurkan Konfigurasi, dan catat jenis instans untuk konfigurasi peluncuran node yang ada.

    3. Di panel navigasi kiri, pilih Grup Auto Scaling, dan catat jumlah instans yang diinginkan untuk grup Auto Scaling node yang ada.

  5. Buka konsol AWS CloudFormation .

  6. Pilih tumpukan grup simpul Anda, dan kemudian pilih Perbarui.

  7. Pilih Ganti template saat ini dan pilih URL Amazon S3.

  8. Untuk URL Amazon S3, rekatkan URL berikut ke area teks untuk memastikan bahwa Anda menggunakan template node AWS CloudFormation versi terbaru. Kemudian, pilih Berikutnya:

    https://s3.us-west-2.amazonaws.com/amazon-eks/cloudformation/2022-12-23/amazon-eks-nodegroup.yaml
  9. Pada halaman Menentukan detail tumpukan, isilah parameter berikut dan pilih Selanjutnya:

    • NodeAutoScalingGroupDesiredCapacity— Masukkan jumlah instans yang diinginkan yang Anda rekam pada langkah sebelumnya. Atau, masukkan jumlah node baru yang Anda inginkan untuk diskalakan saat tumpukan Anda diperbarui.

    • NodeAutoScalingGroupMaxSize— Masukkan jumlah maksimum node yang dapat diskalakan oleh grup Auto Scaling node Anda. Nilai ini harus setidaknya satu node lebih dari kapasitas yang Anda inginkan. Ini agar Anda dapat melakukan pembaruan bergulir dari node Anda tanpa mengurangi jumlah node Anda selama pembaruan.

    • NodeInstanceType— Pilih jenis instance yang Anda rekam di langkah sebelumnya. Atau, pilih jenis instance yang berbeda untuk node Anda. Sebelum memilih jenis instans yang berbeda, tinjau Pilih jenis instans EC2 node Amazon yang optimal. Setiap jenis EC2 instans Amazon mendukung jumlah maksimum antarmuka jaringan elastis (antarmuka jaringan) dan setiap antarmuka jaringan mendukung jumlah maksimum alamat IP. Karena setiap node pekerja dan Pod, diberi alamat IP sendiri, penting untuk memilih jenis instance yang akan mendukung jumlah maksimum Pod yang ingin Anda jalankan di setiap EC2 node Amazon. Untuk daftar jumlah antarmuka jaringan dan alamat IP yang didukung oleh jenis instans, lihat alamat IP per antarmuka jaringan per jenis instans. Misalnya, tipe m5.large instance mendukung maksimal 30 alamat IP untuk node pekerja dan Pod.

      catatan

      Tipe instans yang didukung untuk versi terbaru plugin Amazon VPC CNI untuk Kubernetes ditampilkan di vpc_ip_resource_limit.go on. GitHub Anda mungkin perlu memperbarui plugin Amazon VPC CNI untuk versi Kubernetes untuk menggunakan jenis instans terbaru yang didukung. Untuk informasi selengkapnya, lihat Tetapkan IPs ke Pod dengan Amazon VPC CNI.

      penting

      Beberapa jenis instance mungkin tidak tersedia di semua AWS Wilayah.

    • NodeImageIdSSMParam— Parameter Amazon EC2 Systems Manager dari ID AMI yang ingin Anda perbarui. Nilai berikut menggunakan AMI Amazon EKS terbaru yang dioptimalkan untuk versi Kubernetes. 1.32

      /aws/service/eks/optimized-ami/1.32/amazon-linux-2/recommended/image_id

      Anda dapat mengganti 1.32 dengan versi Kubernetes yang didukung yang sama. Atau, itu harus hingga satu versi lebih awal dari versi Kubernetes yang berjalan di bidang kontrol Anda. Kami rekomendasikan supaya Anda menyimpan simpul pada versi yang sama dengan bidang kendali Anda. Anda juga dapat mengganti amazon-linux-2 dengan tipe AMI yang berbeda. Untuk informasi selengkapnya, lihat Ambil AMI Amazon Linux yang direkomendasikan IDs.

      catatan

      Menggunakan parameter Amazon EC2 Systems Manager memungkinkan Anda memperbarui node di masa mendatang tanpa harus mencari dan menentukan ID AMI. Jika AWS CloudFormation tumpukan Anda menggunakan nilai ini, setiap pembaruan tumpukan selalu meluncurkan AMI terbaru yang dioptimalkan Amazon EKS yang dioptimalkan untuk versi Kubernetes yang Anda tentukan. Ini bahkan terjadi bahkan jika Anda tidak mengubah nilai apa pun di template.

    • NodeImageId— Untuk menggunakan AMI kustom Anda sendiri, masukkan ID untuk AMI untuk digunakan.

      penting

      Nilai ini mengesampingkan nilai apa pun yang ditentukan untuk. NodeImageIdSSMParam Jika Anda ingin menggunakan NodeImageIdSSMParamnilainya, pastikan nilainya kosong. NodeImageId

    • Nonaktifkan IMDSv1 — Secara default, setiap node mendukung Layanan Metadata Instans Versi 1 (IMDSv1) dan. IMDSv2 Namun, Anda dapat menonaktifkan IMDSv1. Pilih true jika Anda tidak ingin node atau Pod apa pun yang dijadwalkan dalam grup node untuk digunakan IMDSv1. Untuk informasi selengkapnya tentang IMDS, lihat Mengonfigurasi layanan metadata instans. Jika Anda telah menerapkan peran IAM untuk akun layanan, tetapkan izin yang diperlukan secara langsung ke semua Pod yang memerlukan akses ke layanan. AWS Dengan cara ini, tidak ada Pod di klaster Anda yang memerlukan akses ke IMDS karena alasan lain, seperti mengambil Region saat ini AWS . Kemudian, Anda juga dapat menonaktifkan akses ke IMDSv2 Pod yang tidak menggunakan jaringan host. Untuk informasi selengkapnya, lihat Membatasi akses ke profil instance yang ditetapkan ke node pekerja.

  10. (Opsional) Di halaman Opsi, tandai sumber daya tumpukan Anda. Pilih Berikutnya.

  11. Pada halaman Tinjauan, tinjau informasi Anda, nyatakan bahwa tumpukan dapat membuat sumber daya IAM, kemudian pilih Perbarui tumpukan.

    catatan

    Pembaruan setiap simpul dalam klaster membutuhkan waktu beberapa menit. Tunggu pembaruan semua simpul selesai sebelum melakukan langkah berikutnya.

  12. Jika penyedia DNS klaster Andakube-dns, skalakan kube-dns penerapan ke satu replika.

    kubectl scale deployments/kube-dns --replicas=1 -n kube-system
  13. (Opsional) Jika Anda menggunakan Autoscaler Klaster Kubernetes, skalakan kembali deployment ke jumlah replika yang Anda inginkan.

    kubectl scale deployments/cluster-autoscaler --replicas=1 -n kube-system
  14. (Opsional) Verifikasi bahwa Anda menggunakan versi terbaru dari plugin Amazon VPC CNI untuk Kubernetes. Anda mungkin perlu memperbarui plugin Amazon VPC CNI untuk versi Kubernetes untuk menggunakan jenis instans terbaru yang didukung. Untuk informasi selengkapnya, lihat Tetapkan IPs ke Pod dengan Amazon VPC CNI.