View a markdown version of this page

Praktik Terbaik untuk Rollback Versi Cluster - Amazon EKS

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

Praktik Terbaik untuk Rollback Versi Cluster

Dengan rollback versi Amazon Elastic Kubernetes Service (Amazon EKS), Anda dapat mengembalikan bidang kontrol Kubernetes cluster Anda ke versi minor sebelumnya dalam waktu 7 hari setelah peningkatan di tempat. Halaman ini menjelaskan praktik terbaik untuk merencanakan, melaksanakan, dan mengoperasionalkan rollback sebagai bagian dari alur kerja peningkatan Anda.

Untuk detail prasyarat, prosedur langkah demi langkah, dan referensi API, lihat Rollback cluster ke versi Kubernetes sebelumnya.

Memahami bagaimana model tanggung jawab bersama berlaku untuk rollback

Saat Anda memulai rollback versi cluster, Amazon EKS mengelola memutar kembali bidang kontrol. Anda bertanggung jawab atas bidang data, add-on, dan kompatibilitas aplikasi. Berikut ini menguraikan tanggung jawab:

  • Amazon EKS mengelola: Meng embalikan server API Kubernetes dan komponen bidang kontrol. Untuk cluster Mode Otomatis, Amazon EKS juga mengelola node pekerja yang bergulir kembali.

  • Anda bertanggung jawab untuk: Mengem balikan Grup Node Terkelola, node yang dikelola sendiri, dan node hibrida. Anda juga harus memvalidasi kompatibilitas add-on dan memastikan aplikasi, pengontrol khusus, dan alat pihak ketiga berfungsi dengan benar dengan versi sebelumnya.

Untuk informasi selengkapnya tentang model tanggung jawab bersama untuk peningkatan, lihat Memahami bagaimana model tanggung jawab bersama diterapkan pada peningkatan cluster.

Rencanakan peningkatan dengan mempertimbangkan rollback

Versi rollback berfungsi paling baik ketika alur kerja pemutakhiran Anda dirancang untuk menjaga jendela rollback tetap terbuka.

  • Pisahkan peningkatan bidang kontrol dan bidang data (kluster Mode Non-Otomatis). Untuk cluster yang menggunakan Grup Node Terkelola atau node yang dikelola sendiri, pertimbangkan untuk meningkatkan bidang kontrol terlebih dahulu dan mengizinkan periode memanggang sebelum memutakhirkan node pekerja. Sementara node tetap aktif N-1, wawasan miring versi kubelet tetap dalam status PASSING. Ini membuat jalur rollback tetap jelas tanpa perlu memutar kembali node terlebih dahulu.

  • Tingkatkan add-on ke versi yang kompatibel silang. Sebelum memutakhirkan bidang kontrol, pastikan semua add-on (dikelola dan dikelola sendiri) kompatibel dengan versi Kubernetes saat ini dan target. Ini membuat wawasan kompatibilitas add-on tetap jelas untuk peningkatan dan rollback.

    • Gunakan add-on yang dikelola Amazon EKS untuk mendapatkan manfaat dari wawasan kesiapan rollback yang secara otomatis memeriksa kompatibilitas versi add-on.

    • Hindari mengelola sendiri add-on terkelola (misalnya, mengganti versi di luar siklus hidup add-on EKS). Selama rollback, wawasan memperlakukan konfigurasi add-on terkelola sebagai sumber kebenaran dan tidak akan mendeteksi penyimpangan versi yang Anda perkenalkan.

  • Hindari menggunakan API khusus versi selama periode memanggang. Jika Anda membuat sumber daya yang menggunakan API atau fitur yang hanya tersedia di versi baru selama jendela 7 hari, Anda harus menghapusnya sebelum memutar kembali. Batasi adopsi API khusus versi baru sampai Anda yakin peningkatan stabil.

  • Tingkatkan lebih cepat, bukan nanti. Dengan rollback tersedia, Anda dapat dengan percaya diri meningkatkan segera setelah rilis versi baru daripada menunggu hingga tenggat waktu dukungan diperpanjang. Upgrade sebelumnya memberi Anda lebih banyak waktu untuk memvalidasi dan mengurangi biaya dukungan yang diperpanjang.

  • Waspadai pembatasan rollback dukungan yang diperpanjang. Jika cluster Anda ditingkatkan secara otomatis pada akhir dukungan yang diperpanjang, Anda tidak dapat memutar kembali ke versi sebelumnya. Jika Anda ditingkatkan secara otomatis di akhir dukungan standar, Anda dapat memutar kembali, tetapi Anda harus terlebih dahulu mengubah kebijakan peningkatan menjadiEXTENDED.

Untuk panduan perencanaan pemutakhiran umum termasuk kebijakan penghentian, catatan rilis, dan kompatibilitas add-on, lihat Praktik Terbaik untuk Upgrade Cluster.

Tinjau wawasan kesiapan rollback sebelum memutar kembali

Amazon EKS menampilkan wawasan kesiapan rollback point-in-time di bawah ROLLBACK_READINESS kategori dalam wawasan cluster. Pemeriksaan ini adalah alat utama Anda untuk menilai keamanan rollback.

  • Tinjau wawasan segera setelah memutakhirkan. Jangan menunggu sampai ada yang tidak beres. Setelah memutakhirkan, periksa wawasan kesiapan rollback sehingga Anda mengetahui postur rollback Anda saat ini.

  • Mengatasi wawasan ERROR secara proaktif. Jika wawasan menunjukkan status ERROR segera setelah peningkatan, selesaikan lebih awal saat jendela 7 hari masih terbuka. Semakin lama Anda menunggu, semakin besar kemungkinan status cluster Anda menyimpang dan pemblokir baru muncul.

  • Pahami apa yang dilakukan dan tidak dicakup oleh wawasan. Wawasan memeriksa versi add-on yang dikelola Amazon EKS, penggunaan API, kemiringan versi, dan kesehatan cluster. Mereka tidak memeriksa add-on yang dikelola sendiri, pengontrol khusus, atau kompatibilitas tingkat aplikasi. Pertahankan validasi kompatibilitas Anda sendiri untuk add-on yang dikelola sendiri (misalnya, cluster-autoscaler, pengendali masuk, operator khusus, agen pemantauan).

Untuk daftar lengkap pemeriksaan wawasan dan perilaku status, lihat Rollback cluster ke versi Kubernetes sebelumnya.

Siapkan node Mode Non-Otomatis untuk rollback

Untuk cluster yang menggunakan Grup Node Terkelola, node yang dikelola sendiri, atau AWS Fargate, Anda bertanggung jawab untuk memastikan node pekerja kompatibel dengan versi rollback target.

  • Grup Node Terkelola. Anda harus memutar kembali grup node terkelola Anda ke versi sebelumnya sebelum memutar kembali bidang kontrol. Gunakan UpdateNodegroupVersion operasi dengan versi Kubernetes sebelumnya. Rollback menghormati pengaturan pembaruan yang dikonfigurasi Anda (maxUnavailable, strategi perbarui).

  • Self-managed dan node hibrida. Perbarui AMI atau konfigurasi node Anda untuk menggunakan versi Kubernetes sebelumnya sebelum memutar kembali bidang kontrol.

  • Fargate. Versi rollback tidak didukung untuk node pekerja Fargate. Hapus pod Fargate yang menjalankan versi yang sama dengan bidang kontrol sebelum memulai rollback, atau gunakan --force untuk melewati wawasan kemiringan versi (yang mungkin mengakibatkan perilaku tak terduga hingga pod diganti).

Untuk PodDisruptionBudget panduan konfigurasi penyebaran topologi untuk memastikan ketersediaan beban kerja selama pembaruan node, lihat Praktik Terbaik untuk Upgrade Cluster.

Kelola kontrol gangguan Mode Otomatis Amazon EKS untuk rollback

Untuk cluster yang menjalankan Mode Otomatis Amazon EKS, fase rollback node dapat menjadi bagian terpanjang dari operasi. Kontrol gangguan Anda secara langsung menentukan seberapa cepat rollback selesai.

  • Tinjau anggaran gangguan sebelum memulai rollback. Amazon EKS menyediakan wawasan kesiapan rollback untuk anggaran NodePool gangguan. Anggaran yang disetel ke 0 memicu wawasan ERROR, yang memblokir rollback tanpa batas waktu. Anggaran terbatas dan PodDisruptionBudgets (PDB) memicu wawasan PERINGATAN, yang dapat memperlambat pengembalian tetapi memungkinkan kemajuan ke depan. Atasi wawasan ERROR sebelum memulai rollback.

  • Bersiaplah untuk menyesuaikan anggaran selama rollback. Jika rollback memakan waktu lebih lama dari yang diharapkan, Anda dapat menyesuaikan anggaran NodePool gangguan dan PDB selama rollback kubectl sedang berlangsung. Meningkatkan anggaran memungkinkan lebih banyak penggantian node bersamaan.

  • Hapus anotasi yang tidak mengganggu dari node pemblokiran. karpenter.sh/do-not-disruptAnotasi pada node memblokir rollback tanpa batas waktu. Hapus dari node yang harus diganti.

  • Lacak kemajuan rollback simpul. Gunakan kubectl get nodes -l karpenter.sh/nodepool=<nodepool-name> -o wide untuk memantau node mana yang telah diganti dengan AMI versi sebelumnya.

  • Gunakan CancelUpdate jika diperlukan. Jika rollback memakan waktu terlalu lama atau menyebabkan lebih banyak masalah daripada yang diselesaikan, batalkan rollback. Setelah pembatalan, node menyatu kembali ke versi saat ini dan Anda dapat mengambil pendekatan yang berbeda.

  • Tetapkan batas waktu yang sesuai. Gunakan timeoutMinutes parameter rollbackConfig untuk menyelaraskan dengan harapan operasional Anda. Standarnya adalah 720 menit (12 jam). Untuk cluster dengan anggaran konservatif, pertimbangkan untuk meningkatkannya. Untuk IaC-managed cluster, selaraskan dengan batas waktu alat Anda.

Untuk prosedur pengembalian Mode Otomatis lengkap dan pen CancelUpdate goperasiannya, lihat Mengem balikan klaster Mode Otomatis Amazon EKS.

Pantau kemajuan rollback

Selama rollback, gunakan yang berikut ini untuk melacak status dan mendeteksi masalah:

  • DescribeUpdate operasi. Gunakan describe-update untuk memeriksa status operasi rollback saat ini (InProgress,, SuccessfulFailed,Cancelled). Untuk melacak kemajuan pembatalan, periksa cancellation objek dalam respons.

  • Wawasan klaster. Amazon EKS memeriksa ulang wawasan sebelum melanjutkan dengan rollback bidang kontrol (setelah rollback node selesai untuk Mode Otomatis). Pantau wawasan ERROR baru yang mungkin muncul.

  • Status klaster. Untuk cluster Mode Otomatis, status cluster tetap ada ACTIVE selama rollback node dan berubah menjadi UPDATING hanya selama rollback bidang kontrol. Jangan hanya mengandalkan status cluster untuk mengetahui rollback sedang berjalan—gunakan. DescribeUpdate

  • Versi node. Untuk Mode Otomatis, periksa versi node Kubernetes untuk melacak kemajuan penggantian node. Untuk Grup Node Terkelola, pantau status pembaruan grup simpul.

Menangani infrastruktur sebagai cluster yang dikelola kode (IaC)

Alat Infrastruktur sebagai kode (IaC) memiliki batasan waktu tunggu yang mungkin bertentangan dengan durasi rollback Mode Otomatis.

  • AWS CloudFormation mendukung hingga 36 jam per sumber daya. Jika rollback melebihi ini, per CloudFormation lakukan itu sebagai no-op, yang dapat meninggalkan cluster dalam keadaan hanyut di mana template tidak mencerminkan versi cluster yang sebenarnya. Waktu tunggu rollback default adalah 720 menit (12 jam).

  • Terraform Enterprise/Cloud memiliki batas waktu sekitar 24 jam, meskipun batas waktu sisi klien bervariasi.

  • Sej timeoutMinutes ajarkan dengan batas waktu alat iAC Anda untuk mencegah alat iAC habis waktu sebelum Amazon EKS menyelesaikan rollback.

  • Pertimbangkan untuk memulai rollback CLI/API untuk cluster Mode Otomatis dengan anggaran terbatas, bukan melalui IaC. Gunakan CancelUpdate langsung jika waktu lapisan IAc habis.

  • Rollback CloudFormation stack AWS tidak memicu rollback versi. Jika pembaruan CloudFormation tumpukan AWS gagal, pengembalian tumpukan otomatis ke versi template sebelumnya tidak memulai rollback versi cluster. Anda harus secara eksplisit memulai rollback versi.

Gunakan rollback sebagai jaring pengaman, bukan alur kerja rutin

Versi rollback dirancang untuk membantu Anda pulih dari masalah pasca-pemutakhiran. Ini bekerja paling baik bila dikombinasikan dengan praktik peningkatan yang ada.

  • Rollback melengkapi pengujian, itu tidak menggantikannya. Terus gunakan wawasan cluster, pengujian pra-upgrade di lingkungan non-produksi, dan peluncuran bertahap. Rollback menangani kasus yang tidak dapat ditangkap oleh pengujian — masalah yang hanya muncul dalam produksi.

  • Rollback mengurangi kebutuhan akan prosedur pencadangan dan snapshot manual sebagai mekanisme keselamatan utama Anda. Dengan rollback asli yang tersedia, Anda tidak perlu lagi hanya mengandalkan snapshot etcd atau skrip rollback khusus untuk pemulihan bencana selama peningkatan.

  • Wawasan adalah upaya terbaik dan titik waktu. Amazon EKS mengevaluasinya saat Anda memicu rollback. Perubahan yang dilakukan setelah pemeriksaan tersebut (misalnya, membuat sumber daya dengan API baru) tidak ditangkap dan dapat menyebabkan masalah setelah rollback selesai.

  • Rollback tidak menjamin pemulihan aplikasi. Amazon EKS mengembalikan bidang kontrol dengan aman, tetapi aplikasi, konfigurasi, dan dependensi Anda adalah tanggung jawab Anda untuk memvalidasi terhadap versi sebelumnya.

Rollback mengurangi kebutuhan untuk peningkatan biru-hijau

Organisasi yang sebelumnya menggunakan peningkatan cluster biru-hijau terutama untuk memiliki “jalur revert” sekarang dapat mempertimbangkan peningkatan di tempat dengan rollback versi sebagai alternatif. In-place upgrade dengan rollback menawarkan biaya infrastruktur yang lebih rendah (tidak ada cluster duplikat), identitas cluster yang konsisten (titik akhir API yang sama, penyedia OpenID Connect (OIDC), dan antarmuka jaringan elastis (ENI)), dan operasi yang lebih sederhana.

Blue-green mungkin masih lebih disukai ketika Anda perlu mengubah beberapa versi sekaligus, menguji migrasi beban kerja secara ekstensif, atau mempertahankan isolasi lalu lintas penuh selama validasi. Untuk informasi selengkapnya, lihat Blue/Green Meng evaluasi Cluster di praktik terbaik peningkatan cluster.