View a markdown version of this page

Perbarui cluster yang ada ke versi Kubernetes baru - Amazon EKS

Bantu meningkatkan 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 GitHub tautan Edit halaman ini di 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 cluster yang ada ke versi Kubernetes baru

Tip

Daftar untuk lokakarya Amazon EKS mendatang.

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

penting

Setelah memutakhirkan, Anda dapat memutar kembali ke versi sebelumnya dalam waktu 7 hari jika masalah muncul. Untuk informasi selengkapnya, lihat Kembalikan cluster ke versi Kubernetes sebelumnya. Sebelum Anda memperbarui ke versi Kubernetes baru, sebaiknya Anda meninjau informasi dalam Memahami siklus hidup versi Kubernetes di EKS dan langkah-langkah pembaruan dalam topik ini.

Versi Kubernetes baru terkadang memperkenalkan perubahan signifikan. Oleh karena itu, kami merekomendasikan Anda menguji perilaku aplikasi Anda terhadap versi Kubernetes baru sebelum Anda memperbarui klaster produksi Anda. Anda dapat melakukan ini dengan membangun alur kerja integrasi berkelanjutan untuk menguji perilaku aplikasi Anda sebelum pindah ke versi Kubernetes baru.

Proses update terdiri dari Amazon EKS meluncurkan simpul server API baru dengan versi Kubernetes yang diperbarui untuk menggantikan yang sudah ada. Amazon EKS melakukan pemeriksaan kesehatan infrastruktur dan kesiapan standar untuk lalu lintas jaringan pada node baru ini untuk memverifikasi bahwa mereka berfungsi seperti yang diharapkan. Namun, setelah Anda memulai peningkatan cluster, Anda tidak dapat menjeda atau menghentikannya. Jika salah satu pemeriksaan ini gagal, Amazon EKS mengembalikan deployment infrastruktur itu, dan klaster Anda tetap pada versi Kubernetes sebelumnya. Aplikasi yang berjalan tidak terpengaruh, dan cluster Anda tidak pernah ditinggalkan 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 proses manajemen infrastruktur Kubernetes kami.

Untuk memperbarui cluster, Amazon EKS memerlukan hingga lima alamat IP yang tersedia dari subnet yang Anda tentukan saat membuat cluster. Amazon EKS membuat antarmuka jaringan elastis cluster baru (antarmuka jaringan) di salah satu subnet yang Anda tentukan. Antarmuka jaringan dapat dibuat di subnet yang berbeda dari antarmuka jaringan yang ada, jadi pastikan bahwa aturan grup keamanan Anda mengizinkan komunikasi cluster yang diperlukan untuk subnet mana pun yang Anda tentukan saat membuat cluster. Jika salah satu subnet yang Anda tentukan saat membuat cluster 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.

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

catatan

Untuk mempelajari lebih lanjut tentang apa yang masuk ke pembaruan cluster, lihat Prakti k Terbaik untuk Peningkatan Cluster di Panduan Praktik Terbaik EKS. Sumber daya ini membantu Anda merencanakan peningkatan, dan memahami strategi peningkatan cluster.

Pertimbangan untuk Mode Otomatis Amazon EKS

  • Kemampuan komputasi Mode Otomatis Amazon EKS 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 meningkatkan kemampuan Mode Otomatis Amazon EKS secara manual, termasuk kemampuan penskalaan otomatis komputasi, penyimpanan blok, dan penyeimbangan beban.

catatan

Jika Anda mengalami masalah setelah memutakhirkan, Anda dapat memulai rollback. Untuk cluster yang menjalankan Mode Otomatis EKS, EKS secara otomatis memutar kembali node pekerja sebelum mengembalikan bidang kontrol. Untuk informasi selengkapnya, lihat Kembalikan cluster ke versi Kubernetes sebelumnya.

Ringkasan

Ringkasan tingkat tinggi dari proses peningkatan cluster Amazon EKS adalah sebagai berikut:

  1. Pastikan cluster Anda berada dalam keadaan yang akan mendukung peningkatan. Ini termasuk memeriksa API Kubernetes yang digunakan oleh sumber daya yang digunakan ke dalam cluster, memastikan cluster bebas dari masalah kesehatan apa pun. Anda harus menggunakan wawasan peningkatan Amazon EKS saat mengevaluasi kesiapan peningkatan cluster Anda.

  2. Tingkatkan bidang kontrol ke versi minor berikutnya (misalnya, dari 1, 36 ke 1, 37).

  3. Tingkatkan node di bidang data agar sesuai dengan bidang kontrol.

  4. Tingkatkan aplikasi tambahan apa pun yang berjalan di cluster (misalnya,cluster-autoscaler).

  5. Tingkatkan add-on yang disediakan oleh Amazon EKS, seperti yang disertakan secara default:

  6. Tingkatkan klien yang berkomunikasi dengan cluster (misalnya,kubectl).

Langkah 1: Bersiap untuk upgrade

Bandingkan versi Kubernetes dari pesawat kontrol klaster Anda ke versi Kubernetes simpul Anda.

  • Dapatkan versi Kubernetes dari bidang kontrol cluster Anda.

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

    kubectl get nodes

Sebelum memperbarui bidang kontrol Anda ke versi Kubernetes baru, pastikan bahwa versi minor Kubernetes dari node terkelola dan node Fargate di cluster Anda sama dengan versi pesawat 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 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 cluster Anda, Perbarui node yang dikelola sendiri untuk klaster Anda, dan Tingkatkan node hibrida untuk cluster 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. Pod yang tersisa akan diperbarui ke versi baru setelah Anda menyebarkannya kembali.

Langkah 2: Tinjau pertimbangan peningkatan

Wawasan cluster Amazon EKS secara otomatis memindai cluster terhadap daftar potensi peningkatan versi Kubernetes yang berdampak pada masalah seperti penggunaan API Kubernetes yang tidak digunakan lagi. Amazon EKS secara berkala memperbarui daftar pemeriksaan wawasan yang harus dilakukan berdasarkan evaluasi perubahan dalam proyek Kubernetes. Amazon EKS juga memperbarui daftar pemeriksaan wawasan saat perubahan diperkenalkan di layanan Amazon EKS bersama dengan versi baru. Untuk informasi selengkapnya, lihat Mempersiapkan peningkatan versi Kubernetes dan memecahkan masalah kesalahan konfigurasi dengan wawasan klaster.

Tinjau Panduan Migr asi API yang Dusang di dokumen Kubernetes.

Tinjau wawasan peningkatan

Gunakan wawasan peningkatan Amazon EKS untuk mengidentifikasi masalah. Untuk informasi selengkapnya, lihat Lihat wawasan peningkatan (Konsol).

Pertimbangan terperinci

  • 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 Kebijakan Dukungan Versi Kubernetes dan Versi Skew. 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 cluster versi Anda ke versi 1.29 dan kemudian memperbarui 1.29 cluster versi Anda ke versi1.30.

  • Tinjau versi miring antara Kubernetes kube-apiserver dan pada node Anda. kubelet

    • Mulai dari versi Kubernetes1.28, kubelet mungkin hingga tiga versi minor yang lebih tua dari. kube-apiserver Lihat kebijakan miring versi upstream Kubernetes.

    • Jika node kubelet terkelola dan Fargate Anda ada di versi Kubernetes 1.25 atau yang lebih baru, Anda dapat memperbarui cluster Anda hingga tiga versi sebelumnya tanpa memperbarui versi. kubelet Misalnya, jika versi kubelet aktif1.25, Anda dapat memperbarui versi cluster Amazon EKS Anda dari 1.25 ke1.26, ke1.27, dan ke 1.28 sementara versi kubelet tetap aktif1.25.

  • Sebagai praktik terbaik sebelum memulai pembaruan, pastikan bahwa pada node Anda kubelet berada pada versi Kubernetes yang sama dengan bidang kontrol Anda.

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

  • Anda dapat mengambil cadangan cluster Amazon EKS Anda, untuk memungkinkan Anda memulihkan status cluster Amazon EKS dan penyimpanan persisten jika terjadi kegagalan selama proses peningkatan. Lihat Cadangkan Cluster EKS Anda dengan AWS Pencadangan

Langkah 3: Perbarui bidang kontrol cluster

penting

Amazon EKS telah membatalkan sementara fitur yang mengharuskan Anda menggunakan --force bendera untuk meningkatkan cluster Anda ketika ada masalah wawasan cluster tertentu. Untuk informasi selengkapnya, lihat Pengembalian sementara penerapan wawasan peningkatan pada pembaruan versi cluster aktif. GitHub

Amazon EKS menyegarkan wawasan cluster 24 jam setelah “waktu penyegaran terakhir”. Anda dapat membandingkan waktu Anda mengatasi masalah dengan “waktu penyegaran terakhir” dari wawasan cluster.

Selain itu, perlu waktu hingga 30 hari agar status wawasan diperbarui setelah menangani penggunaan API yang tidak digunakan lagi. Wawasan peningkatan selalu mencari penggunaan API yang tidak digunakan lagi selama jendela 30 hari yang bergulir.

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

Perbarui cluster - eksctl

Prosedur ini membutuhkan eksctl versi 0.215.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 versi Kubernetes dari pesawat kontrol Amazon EKS Anda. Ganti <cluster-name> dengan nama klaster Anda. Ganti <version-number> dengan nomor versi yang didukung Amazon EKS yang ingin Anda perbarui ke cluster Anda. Untuk daftar nomor versi yang didukung, lihat versi yang didukung Amazon EKS.

eksctl upgrade cluster --name <cluster-name> --version <version-number> --approve

Pembaruan memerlukan waktu beberapa menit.

Lanjutkan ke Langkah 4: Perbarui komponen cluster.

Perbarui cluster - AWS konsol

  1. Buka konsol Amazon EKS.

  2. Pilih Upgrade sekarang untuk cluster yang ingin Anda tingkatkan.

  3. Pilih versi untuk memperbarui cluster Anda dan pilih Upgrade.

  4. Pembaruan memerlukan waktu beberapa menit. Lanjutkan ke Langkah 4: Perbarui komponen cluster.

Perbarui cluster - AWS CLI

  1. Verifikasi bahwa AWS CLI diinstal dan Anda masuk. Untuk informasi selengkapnya, lihat Meng instal atau memperbarui ke versi terbaru AWS CLI.

  2. Perbarui cluster Amazon EKS Anda dengan perintah AWS CLI berikut. Ganti <cluster-name> dan <region-code> cluster yang ingin Anda tingkatkan. Ganti <version-number> dengan nomor versi yang didukung Amazon EKS yang ingin Anda perbarui ke cluster Anda. Untuk daftar nomor versi yang didukung, lihat versi yang didukung Amazon EKS.

    aws eks update-cluster-version --name <cluster-name> \ --kubernetes-version <version-number> --region <region-code>

    Contoh output adalah sebagai berikut.

    { "update": { "id": "<update-id>", "status": "InProgress", "type": "VersionUpdate", "params": [ { "type": "Version", "value": "<version-number>" }, { "type": "PlatformVersion", "value": "eks.1" } ], [...] "errors": [] }
  3. Pembaruan memerlukan waktu beberapa menit. Pantau status pembaruan klaster Anda dengan perintah berikut. Selain menggunakan yang sama <cluster-name> dan<region-code>, gunakan perintah sebelumnya <update-id> yang dikembalikan.

    aws eks describe-update --name <cluster-name> \ --region <region-code> --update-id <update-id>

    Ketika Successful status ditampilkan, pembaruan selesai.

  4. Lanjutkan ke Langkah 4: Perbarui komponen cluster.

Langkah 4: Perbarui komponen cluster

  1. Setelah pembaruan cluster selesai, perbarui node Anda ke versi minor Kubernetes yang sama dengan cluster yang diperbarui. Lihat informasi selengkapnya di Perbarui node yang dikelola sendiri untuk klaster Anda, Memperbarui grup node terkelola untuk cluster Anda, dan Tingkatkan node hibrida untuk cluster Anda. Setiap Pod baru yang diluncurkan di Fargate memiliki kubelet versi yang cocok dengan versi cluster Anda. Pod Fargate yang ada tidak diubah.

  2. (Opsional) Jika Anda men-deploy Kubernetes Cluster Autoscaler ke klaster Anda sebelum memperbarui klaster, perbarui Cluster Autoscaler ke versi terbaru yang cocok dengan Kubernetes versi major dan minor yang Anda perbarui.

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

    2. Atur tanda citra Cluster Autoscaler ke versi yang Anda catat di langkah sebelumnya dengan perintah berikut. Jika perlu, ganti X.XX.X dengan nilai Anda sendiri.

      kubectl -n kube-system set image deployment.apps/cluster-autoscaler cluster-autoscaler=registry.k8s.io/autoscaling/cluster-autoscaler:vX.XX.X
  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 NVIDIA/k8s-device-plugin versi 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 plugin Amazon VPC CNI untuk Kubernetes, CoreDNS, dan add-on. kube-proxy Sebaiknya perbarui add-on ke versi minimum yang tercantum di 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 Add-ons tab. Di salah satu kotak untuk add-on yang memiliki pembaruan tersedia, pilih Per barui sekarang, pilih versi yang tersedia, lalu pilih Per barui.

    • Sebagai alternatif, Anda dapat menggunakan AWS CLI atau eksctl untuk memperbarui add-on. Untuk informasi selengkapnya, lihat Memperbarui 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 untuk cluster Amazon EKS

Anda dapat memutar kembali versi Kubernetes dari cluster Amazon EKS ke versi minor sebelumnya dalam waktu 7 hari setelah peningkatan. Untuk informasi selengkapnya, lihat Kembalikan cluster ke versi Kubernetes sebelumnya. Setelah jendela 7 hari, Anda tidak dapat menurunkan versi. Sebagai gantinya, buat cluster baru pada versi Amazon EKS sebelumnya dan migrasikan beban kerja.