Pilih preferensi cookie Anda

Kami menggunakan cookie penting serta alat serupa yang diperlukan untuk menyediakan situs dan layanan. Kami menggunakan cookie performa untuk mengumpulkan statistik anonim sehingga kami dapat memahami cara pelanggan menggunakan situs dan melakukan perbaikan. Cookie penting tidak dapat dinonaktifkan, tetapi Anda dapat mengklik “Kustom” atau “Tolak” untuk menolak cookie performa.

Jika Anda setuju, AWS dan pihak ketiga yang disetujui juga akan menggunakan cookie untuk menyediakan fitur situs yang berguna, mengingat preferensi Anda, dan menampilkan konten yang relevan, termasuk iklan yang relevan. Untuk menerima atau menolak semua cookie yang tidak penting, klik “Terima” atau “Tolak”. Untuk membuat pilihan yang lebih detail, klik “Kustomisasi”.

Perbarui klaster yang ada ke versi Kubernetes baru

Mode fokus
Perbarui klaster yang ada ke versi Kubernetes baru - 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.

Ingin berkontribusi pada panduan pengguna ini? Pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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

Bantu tingkatkan halaman ini

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

Ingin berkontribusi pada panduan pengguna ini? Pilih Edit halaman ini pada GitHub tautan yang terletak di panel kanan setiap halaman. Kontribusi Anda akan membantu membuat panduan pengguna kami lebih baik untuk semua orang.

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

Ketika baru Kubernetes versi tersedia di Amazon EKS, Anda dapat memperbarui cluster Amazon EKS Anda ke versi terbaru.

penting

Setelah Anda memutakhirkan cluster, Anda tidak dapat menurunkan versi ke versi sebelumnya. Kami menyarankan bahwa, sebelum Anda memperbarui ke yang baru Kubernetes version, Anda meninjau informasi di Memahami siklus hidup versi Kubernetes di EKS dan juga meninjau langkah-langkah pembaruan dalam topik ini.

Baru Kubernetes versi terkadang memperkenalkan perubahan signifikan. Oleh karena itu, kami menyarankan Anda menguji perilaku aplikasi Anda terhadap yang baru Kubernetes versi sebelum Anda memperbarui cluster produksi Anda. Anda dapat melakukannya dengan membuat alur kerja integrasi berkelanjutan untuk menguji perilaku aplikasi Anda sebelum pindah ke yang baru Kubernetes versi.

Proses pembaruan terdiri dari Amazon EKS meluncurkan node server API baru dengan yang diperbarui Kubernetes versi untuk menggantikan yang sudah ada. Amazon EKS melakukan infrastruktur standar dan pemeriksaan kesehatan kesiapan untuk lalu lintas jaringan pada node baru ini untuk memverifikasi bahwa mereka berfungsi seperti yang diharapkan. Namun, setelah Anda memulai upgrade cluster, Anda tidak dapat menjeda atau menghentikannya. Jika salah satu pemeriksaan ini gagal, Amazon EKS mengembalikan penerapan infrastruktur, dan klaster Anda tetap pada yang sebelumnya Kubernetes versi. Menjalankan aplikasi tidak terpengaruh, dan klaster Anda tidak pernah dibiarkan dalam keadaan non-deterministik atau tidak dapat dipulihkan. Amazon EKS secara teratur mendukung semua klaster terkelola, dan mekanisme yang ada untuk memulihkan klaster jika diperlukan. Kami terus mengevaluasi dan meningkatkan Kubernetes proses manajemen infrastruktur.

Untuk memperbarui klaster, Amazon EKS memerlukan hingga lima alamat IP yang tersedia dari subnet yang Anda tentukan saat membuat klaster. Amazon EKS membuat antarmuka jaringan elastis klaster baru (antarmuka jaringan) di salah satu subnet yang Anda tentukan. Antarmuka jaringan dapat dibuat dalam subnet yang berbeda dari antarmuka jaringan yang ada, jadi pastikan bahwa aturan grup keamanan Anda mengizinkan komunikasi cluster yang diperlukan untuk setiap subnet yang Anda tentukan saat Anda membuat cluster Anda. Jika salah satu subnet yang Anda tentukan saat membuat klaster tidak ada, tidak memiliki cukup alamat IP yang tersedia, atau tidak memiliki aturan grup keamanan yang memungkinkan komunikasi cluster yang diperlukan, maka pembaruan dapat gagal.

catatan

Untuk memastikan bahwa titik akhir server API untuk kluster Anda selalu dapat diakses, Amazon EKS menyediakan yang sangat tersedia Kubernetes mengontrol bidang dan melakukan pembaruan bergulir dari instance server API selama operasi pembaruan. Untuk memperhitungkan perubahan alamat IP instans server API yang mendukung Kubernetes Titik akhir server API, Anda harus memastikan bahwa klien server API Anda mengelola koneksi ulang secara efektif. Versi terbaru dari kubectl dan Kubernetes pustaka klien yang didukung secara resmi, lakukan proses penyambungan kembali ini secara transparan.

Pertimbangan untuk Mode Otomatis Amazon EKS

  • Kemampuan komputasi Amazon EKS Auto Mode mengontrol node versi Kubernetes. Setelah Anda memutakhirkan bidang kontrol, Mode Otomatis EKS akan mulai memperbarui node terkelola secara bertahap. Mode Otomatis EKS menghormati anggaran gangguan pod.

  • Anda tidak perlu memutakhirkan kemampuan Amazon EKS Auto Mode secara manual, termasuk kemampuan penskalaan otomatis komputasi, penyimpanan blok, dan penyeimbangan beban.

Langkah 1: Bersiaplah untuk upgrade

  1. Bandingkan Kubernetes versi bidang kontrol cluster Anda ke Kubernetes versi node Anda.

    • Dapatkan Kubernetes versi pesawat kontrol cluster Anda.

      kubectl version
    • Dapatkan Kubernetes versi node Anda. Perintah ini mengembalikan semua node Amazon EC2, Fargate, dan hybrid yang dikelola sendiri dan dikelola. Setiap Fargate Pod terdaftar sebagai simpulnya sendiri.

      kubectl get nodes

    Sebelum memperbarui pesawat kontrol Anda ke yang baru Kubernetes versi, pastikan bahwa Kubernetes versi minor dari node terkelola dan node Fargate di cluster Anda sama dengan versi bidang kontrol Anda. Misalnya, jika bidang kontrol Anda menjalankan versi 1.29 dan salah satu node Anda menjalankan versi1.28, maka Anda harus memperbarui node Anda ke versi 1.29 sebelum memperbarui bidang kontrol Anda ke 1.30. Kami juga menyarankan agar Anda memperbarui node yang dikelola sendiri dan node hibrida ke versi yang sama dengan bidang kontrol Anda sebelum memperbarui bidang kontrol. Lihat informasi selengkapnya di Memperbarui grup node terkelola untuk klaster Anda, Perbarui node yang dikelola sendiri untuk klaster Anda, dan Tingkatkan node hybrid untuk klaster Anda. Jika Anda memiliki node Fargate dengan versi minor lebih rendah dari versi bidang kontrol, pertama-tama hapus Pod yang diwakili oleh node. Kemudian perbarui pesawat kontrol Anda. Yang tersisa Pods akan memperbarui ke versi baru setelah Anda menerapkannya kembali.

  2. Jika Kubernetes versi yang awalnya Anda gunakan untuk menggunakan cluster Anda adalah Kubernetes 1.25atau nanti, lewati langkah ini.

    Secara default, Pod Pengontrol penerimaan kebijakan keamanan diaktifkan di kluster Amazon EKS. Sebelum memperbarui klaster Anda, pastikan yang tepat Pod Kebijakan keamanan sudah ada. Ini untuk menghindari potensi masalah keamanan. Anda dapat memeriksa kebijakan default dengan kubectl get psp eks.privileged perintah.

    kubectl get psp eks.privileged

    Jika Anda menerima kesalahan berikut, lihat Amazon EKS default Pod kebijakan keamanan sebelum melanjutkan.

    Error from server (NotFound): podsecuritypolicies.extensions "eks.privileged" not found
  3. Jika Kubernetes versi yang awalnya Anda gunakan untuk menggunakan cluster Anda adalah Kubernetes 1.18atau nanti, lewati langkah ini.

    Anda mungkin perlu menghapus istilah yang dihentikan dari CoreDNS nyata.

    1. Periksa untuk melihat apakah Anda CoreDNS manifes memiliki garis yang hanya memiliki kataupstream.

      kubectl get configmap coredns -n kube-system -o jsonpath='{$.data.Corefile}' | grep upstream

      Jika tidak ada output yang dikembalikan, ini berarti manifes Anda tidak memiliki baris. Jika ini masalahnya, lompat ke langkah berikutnya. Jika kata upstream dikembalikan, hapus baris.

    2. Hapus baris di dekat bagian atas file yang hanya memiliki kata upstream dalam file configmap. Jangan mengubah apa pun di file. Setelah baris dihapus, simpan perubahannya.

      kubectl edit configmap coredns -n kube-system -o yaml

Langkah 2: Tinjau pertimbangan peningkatan

  • Jika Anda memperbarui ke versi 1.23 dan menggunakan volume Amazon EBS di klaster, Anda harus menginstal driver Amazon EBS CSI di klaster sebelum memperbarui klaster ke versi 1.23 untuk menghindari gangguan beban kerja. Untuk informasi selengkapnya, silakan lihat Kubernetes 1.23 dan Menyimpan Kubernetes volume dengan Amazon EBS.

  • Kubernetes 1.24 dan kemudian digunakan containerd sebagai runtime container default. Jika Anda beralih ke containerd runtime dan sudah memiliki Fluentd dikonfigurasi untuk Container Insights, maka Anda harus bermigrasi Fluentd kepada Fluent Bit sebelum memperbarui cluster Anda. Bagian Fluentd parser dikonfigurasi untuk hanya mengurai pesan log dalam format JSON. Tidak sepertidockerd, runtime containerd kontainer memiliki pesan log yang tidak dalam format JSON. Jika Anda tidak bermigrasi ke Fluent Bit, beberapa yang dikonfigurasi Fluentd’s parser akan menghasilkan sejumlah besar kesalahan di dalam Fluentd wadah. Untuk informasi selengkapnya tentang migrasi, lihat Mengatur Bit Lancar sebagai a DaemonSet untuk mengirim log ke CloudWatch Log.

    • Karena Amazon EKS menjalankan bidang pengendali yang banyak tersedia, Anda dapat memperbarui hanya satu versi minor pada satu waktu. Untuk informasi selengkapnya tentang persyaratan ini, lihat Kubernetes Version and Version Skew Support Policy. Asumsikan bahwa versi cluster Anda saat ini adalah versi 1.28 dan Anda ingin memperbaruinya ke versi1.30. Anda harus terlebih dahulu memperbarui 1.28 klaster versi Anda ke versi 1.29 dan kemudian memperbarui 1.29 klaster versi Anda ke versi1.30.

  • Tinjau versi miring di antara Kubernetes kube-apiserverdan kubelet pada node Anda.

    • Mulai dari Kubernetes versi1.28, kubelet mungkin hingga tiga versi minor yang lebih tua darikube-apiserver. Lihat Kebijakan miring versi upstream Kubernetes.

    • Jika kubelet pada node terkelola dan Fargate Anda aktif Kubernetes versi 1.25 atau yang lebih baru, Anda dapat memperbarui cluster Anda hingga tiga versi ke depan tanpa memperbarui kubelet versi. Misalnya, jika versi aktif kubelet1.25, Anda dapat memperbarui versi kluster Amazon EKS Anda dari 1.25 ke1.26, ke1.27, dan ke 1.28 sementara versi kubelet tetap ada1.25.

    • Jika kubelet pada node terkelola dan Fargate Anda aktif Kubernetes versi 1.24 atau yang lebih lama, mungkin hanya hingga dua versi minor yang lebih tua dari versikube-apiserver. Dengan kata lain, jika versi kubelet is 1.24 atau lebih lama, Anda hanya dapat memperbarui cluster Anda hingga dua versi ke depan. Misalnya, jika versi on1.21, Anda dapat memperbarui versi kluster Amazon EKS dari 1.21 ke 1.221.23, dan ke, tetapi Anda tidak akan dapat memperbarui cluster 1.24 saat kubelet masih aktif1.21. kubelet

  • Sebagai praktik terbaik sebelum memulai pembaruan, pastikan bahwa kubelet pada node Anda sama Kubernetes versi sebagai pesawat kontrol Anda.

  • Jika klaster Anda dikonfigurasi dengan versi Amazon VPC CNI plugin for Kubernetes yang lebih awal dari1.8.0, maka kami sarankan Anda memperbarui plugin ke versi terbaru sebelum memperbarui cluster Anda. Untuk memperbarui plugin, lihatTetapkan ke IPs Pods dengan Amazon VPC CNI.

  • Jika Anda memperbarui cluster Anda ke versi 1.25 atau yang lebih baru dan memiliki AWS Load Balancer Controller disebarkan di cluster Anda, lalu perbarui pengontrol ke versi 2.4.7 atau yang lebih baru sebelum memperbarui versi cluster Anda ke1.25. Untuk informasi selengkapnya, lihat catatan rilis Kubernetes 1.25.

Langkah 3: Perbarui bidang kontrol cluster

Anda dapat mengirimkan permintaan untuk meningkatkan versi pesawat kontrol EKS Anda menggunakan:

Perbarui cluster - eksctl

Prosedur ini membutuhkan eksctl versi 0.199.0 atau yang lebih baru. Anda dapat memeriksa versi Anda dengan perintah berikut:

eksctl version

Untuk petunjuk tentang cara menginstal dan memperbaruieksctl, lihat Instalasi dalam eksctl dokumentasi.

Perbarui Kubernetes versi pesawat kontrol Amazon EKS Anda. Ganti my-cluster dengan nama klaster Anda. Ganti 1.30 dengan nomor versi yang didukung Amazon EKS yang ingin Anda perbarui klaster Anda. Untuk daftar nomor versi yang didukung, lihatMemahami Kubernetes siklus hidup versi di EKS.

eksctl upgrade cluster --name my-cluster --version 1.30 --approve

Pembaruan memerlukan waktu beberapa menit.

Lanjutkan ke Langkah 4: Perbarui komponen cluster

Perbarui cluster - AWS konsol

  1. Buka konsol Amazon EKS.

  2. Pilih nama kluster Amazon EKS untuk diperbarui dan pilih Perbarui versi cluster.

  3. Untuk Kubernetes versi, pilih versi untuk memperbarui cluster Anda dan pilih Perbarui.

  4. Untuk nama Cluster, masukkan nama klaster Anda dan pilih Konfirmasi.

    Pembaruan memerlukan waktu beberapa menit.

  5. Lanjutkan ke Langkah 4: Perbarui komponen cluster

Perbarui cluster - AWS CLI

  1. Perbarui cluster Amazon EKS Anda dengan perintah AWS CLI berikut. Ganti example values dengan milik Anda sendiri. Ganti 1.30 dengan nomor versi yang didukung Amazon EKS yang ingin Anda perbarui klaster Anda. Untuk daftar nomor versi yang didukung, lihatMemahami Kubernetes siklus hidup versi di EKS.

    aws eks update-cluster-version --region region-code --name my-cluster --kubernetes-version 1.30

    Contoh output adalah sebagai berikut.

    { "update": { "id": "b5f0ba18-9a87-4450-b5a0-825e6e84496f", "status": "InProgress", "type": "VersionUpdate", "params": [ { "type": "Version", "value": "1.30" }, { "type": "PlatformVersion", "value": "eks.1" } ], [...] "errors": [] }
  2. Pantau status pembaruan klaster Anda dengan perintah berikut. Gunakan nama klaster dan perbarui ID yang telah dikembalikan dengan perintah sebelumnya. Ketika Successful status ditampilkan, pembaruan selesai. Pembaruan memerlukan waktu beberapa menit.

    aws eks describe-update --region region-code --name my-cluster --update-id b5f0ba18-9a87-4450-b5a0-825e6e84496f

    Contoh output adalah sebagai berikut.

    { "update": { "id": "b5f0ba18-9a87-4450-b5a0-825e6e84496f", "status": "Successful", "type": "VersionUpdate", "params": [ { "type": "Version", "value": "1.30" }, { "type": "PlatformVersion", "value": "eks.1" } ], [...] "errors": [] }
  3. Lanjutkan ke Langkah 4: Perbarui komponen cluster

Langkah 4: Perbarui komponen cluster

  1. Setelah pembaruan klaster Anda selesai, perbarui node Anda ke yang sama Kubernetes versi minor sebagai kluster Anda yang diperbarui. Lihat informasi selengkapnya di Perbarui node yang dikelola sendiri untuk klaster Anda, Memperbarui grup node terkelola untuk klaster Anda, dan Tingkatkan node hybrid untuk klaster Anda. Apa saja yang baru Pods yang diluncurkan di Fargate memiliki kubelet versi yang cocok dengan versi cluster Anda. Fargate yang ada Pods tidak berubah.

  2. (Opsional) Jika Anda menerapkan Kubernetes Cluster Autoscaler ke klaster Anda sebelum memperbarui klaster, perbarui Cluster Autoscaler ke versi terbaru yang cocok Kubernetes versi mayor dan minor yang Anda perbarui.

    1. Buka halaman rilis Cluster Autoscaler di browser web dan temukan versi Cluster Autoscaler terbaru yang cocok dengan klaster Anda Kubernetes versi mayor dan minor. Misalnya, jika klaster Anda Kubernetes versi adalah 1.30 temukan rilis Cluster Autoscaler terbaru yang dimulai dengan. 1.30 Catat nomor versi semantik (1.30.n, misalnya) untuk rilis yang akan digunakan pada langkah berikutnya.

    2. Atur citra label Klaster Autoscaler ke versioning yang Anda simpan pada langkah sebelumnya menggunakan perintah berikut. Jika perlu, ganti1.30. n`dengan nilai Anda sendiri.

      kubectl -n kube-system set image deployment.apps/cluster-autoscaler cluster-autoscaler=registry.k8s.io/autoscaling/cluster-autoscaler:v1.30.n
  3. (Cluster dengan node GPU saja) Jika cluster Anda memiliki grup node dengan dukungan GPU (misalnya,p3.2xlarge), Anda harus memperbarui plugin perangkat NVIDIA untuk Kubernetes DaemonSet di cluster Anda. Ganti vX.X.X dengan s-device-plugin versi NVIDIA/K8 yang Anda inginkan sebelum menjalankan perintah berikut.

    kubectl apply -f https://raw.githubusercontent.com/NVIDIA/k8s-device-plugin/vX.X.X/deployments/static/nvidia-device-plugin.yml
  4. Perbarui Amazon VPC CNI plugin for Kubernetes, CoreDNS, dan kube-proxy add-on. Kami menyarankan untuk memperbarui add-on ke versi minimum yang tercantum dalam token akun Layanan.

    • Jika Anda menggunakan add-on Amazon EKS, pilih Cluster di konsol Amazon EKS, lalu pilih nama cluster yang Anda perbarui di panel navigasi kiri. Pemberitahuan muncul di konsol. Mereka memberi tahu Anda bahwa versi baru tersedia untuk setiap add-on yang memiliki pembaruan yang tersedia. Untuk memperbarui add-on, pilih tab Add-ons. Di salah satu kotak untuk add-on yang memiliki pembaruan yang tersedia, pilih Perbarui sekarang, pilih versi yang tersedia, lalu pilih Perbarui.

    • Sebagai alternatif, Anda dapat menggunakan AWS CLI atau eksctl memperbarui add-on. Untuk informasi selengkapnya, lihat Perbarui add-on Amazon EKS.

  5. Jika perlu, perbarui versi Andakubectl. Anda harus menggunakan versi kubectl yang tidak lebih dari satu perbedaan kecil dari bidang kendali Amazon EKS klaster Anda.

Turunkan versi Kubernetes versi untuk cluster Amazon EKS

Anda tidak dapat menurunkan versi Kubernetes dari cluster Amazon EKS. Sebagai gantinya, buat cluster baru pada versi Amazon EKS sebelumnya dan memigrasikan beban kerja.

PrivasiSyarat situsPreferensi cookie
© 2025, Amazon Web Services, Inc. atau afiliasinya. Semua hak dilindungi undang-undang.