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 menjadi
EXTENDED.
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
UpdateNodegroupVersionoperasi 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
--forceuntuk 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
kubectlsedang 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 wideuntuk 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
timeoutMinutesparameterrollbackConfiguntuk 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-updateuntuk memeriksa status operasi rollback saat ini (InProgress,,SuccessfulFailed,Cancelled). Untuk melacak kemajuan pembatalan, periksacancellationobjek 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
ACTIVEselama rollback node dan berubah menjadiUPDATINGhanya 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
timeoutMinutesajarkan 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
CancelUpdatelangsung 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.