Kluster ACK Lingjun mendukung peningkatan Kubernetes dari versi 1.20 ke 1.22 melalui pembaruan in-place. Anda dapat meningkatkan seluruh kluster dalam satu operasi atau memperbarui lapisan kontrol dan kelompok node secara terpisah.
Cara kerja
Peningkatan kluster ACK Lingjun mengikuti langkah-langkah berikut:
-
Jalankan pemeriksaan awal. ACK memindai kluster untuk mengidentifikasi masalah kompatibilitas sebelum perubahan apa pun dilakukan. Perbaiki semua masalah yang dilaporkan sebelum melanjutkan.
-
Tingkatkan lapisan kontrol. ACK memperbarui kube-apiserver, kube-controller-manager, dan kube-scheduler. Komponen Kubernetes seperti kube-proxy juga diperbarui. Node baru yang ditambahkan setelah langkah ini akan menjalankan versi Kubernetes yang baru.
-
Tingkatkan kelompok node. ACK memperbarui kubelet dan runtime kontainer pada node yang ada secara bertahap. Beberapa kelompok node ditingkatkan satu per satu.
-
Verifikasi. Konfirmasi versi kluster, status kelompok node, dan kesehatan aplikasi.
Prasyarat
Sebelum memulai, pastikan Anda telah:
-
Mengakses Konsol ACK
-
Membaca catatan rilis untuk versi Kubernetes yang ingin Anda gunakan dalam peningkatan kluster
-
Membaca catatan rilis untuk versi Kubernetes target:
-
Meninjau dukungan untuk versi Kubernetes di ACK Lingjun
Catatan penggunaan
Kompatibilitas versi Kubernetes
Sebelum meningkatkan, periksa kolom Version pada halaman Konsol Container Service for KubernetesClusters di Konsol ACK untuk mengonfirmasi versi Kubernetes saat ini. Jika chart Helm Anda menggunakan resource API yang sudah tidak didukung, perbarui manifes tersebut sebelum meningkatkan. Untuk detail tentang API yang sudah tidak didukung, lihat API yang Sudah Tidak Didukung dan catatan rilis terkait.
Untuk kluster yang menjalankan Kubernetes 1.20 atau lebih baru, pemeriksaan awal juga memindai penggunaan API yang sudah tidak didukung. Hasilnya bersifat informatif — tidak menghentikan proses peningkatan.
Pertimbangan khusus fitur
Jika kluster Anda menggunakan salah satu fitur berikut, tinjau pertimbangan berikut sebelum meningkatkan.
| Fitur | Apa yang terjadi selama peningkatan | Tindakan yang diperlukan |
|---|---|---|
| FlexVolume | Volume Object Storage Service (OSS) yang dipasang oleh FlexVolume 1.11.2.5 atau versi sebelumnya akan dipasang ulang. | Buat ulang Pod yang menggunakan volume OSS setelah peningkatan. Migrasikan dari FlexVolume ke CSI jika memungkinkan. Lihat Migrate from FlexVolume to CSI. |
| Auto scaling | Cluster Autoscaler diperbarui secara otomatis ke versi terbaru. | Verifikasi bahwa Cluster Autoscaler menjalankan versi yang diharapkan. Lihat Auto scaling of nodes. |
| Resource reservation | Setelah ditingkatkan ke Kubernetes 1.18, ACK secara otomatis mengonfigurasi resource reservation. Jika penggunaan sumber daya node tinggi, Pod yang di-evict mungkin gagal dijadwalkan ulang. | Pesan minimal 50% CPU dan 70% memori pada setiap node sebelum meningkatkan. Lihat Resource reservation policy. |
LoadBalancer dengan externalTrafficPolicy: Local |
Lalu lintas hanya diteruskan ke Pod lokal di node tersebut. Jika Pod aplikasi berada di node lain, Pod tersebut menjadi tidak dapat dijangkau. | Periksa apakah externalTrafficPolicy: Local diatur pada instans Server Load Balancer (SLB) mana pun. Lihat What to do if the cluster cannot access the SLB IP address. |
| Aplikasi yang bergantung pada server API | Server API mungkin terganggu sebentar selama peningkatan lapisan kontrol. Aplikasi yang menggunakan operasi list-and-watch terpengaruh. | Konfigurasikan aplikasi Anda agar secara otomatis mencoba ulang operasi watch saat koneksi terputus. Aplikasi yang tidak mengakses server API tidak terpengaruh. |
| kubectl | Setelah peningkatan, kubectl di mesin lokal Anda mungkin tidak kompatibel dengan versi server API yang baru, menyebabkan error invalid object doesn't have additional properties. |
Perbarui kubectl setelah peningkatan kluster. Lihat Install kubectl. |
Pertimbangan konfigurasi kustom
| Item | Pertimbangan |
|---|---|
| Jaringan | Peningkatan menggunakan yum untuk mengunduh paket. Jika kluster Anda menggunakan konfigurasi jaringan kustom, verifikasi bahwa yum berfungsi dengan benar dengan menjalankan yum makecache. |
| Citra OS | Citra OS kustom tidak divalidasi oleh ACK. Keberhasilan peningkatan tidak dijamin untuk kluster yang menggunakan citra OS kustom. |
| Konfigurasi kustom lainnya | Partisi swap, pengaturan kubelet yang dimodifikasi melalui CLI, atau konfigurasi non-standar lainnya dapat menyebabkan peningkatan gagal atau pengaturan tersebut hilang. |
Tingkatkan kluster
ACK menjalankan pemeriksaan awal sebelum setiap peningkatan, tetapi pemeriksaan awal tidak dapat menjamin bahwa semua API, fitur, atau konfigurasi yang tidak kompatibel teridentifikasi. Berdasarkan model tanggung jawab bersama, tinjau semua catatan rilis dan panduan peningkatan yang relevan sebelum melanjutkan.
Lakukan peningkatan selama jam sepi untuk meminimalkan dampak terhadap bisnis.
Langkah 1: Tingkatkan lapisan kontrol
-
Login ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Di halaman Clusters, klik nama kluster yang ingin Anda tingkatkan. Di panel kiri, pilih Operations > Upgrade Cluster.
-
Di halaman Upgrade Cluster, atur Destination Version lalu klik Precheck. Setelah pemeriksaan awal selesai, tinjau hasilnya di bagian Pre-check Results:
-
Tidak ada masalah: Kluster lolos pemeriksaan awal. Lanjutkan ke langkah berikutnya.
-
Ditemukan masalah: Kluster tetap berjalan normal. Perbaiki masalah yang dilaporkan berdasarkan saran konsol, lalu jalankan pemeriksaan awal lagi. Lihat Cluster check items and how to fix them.
-
-
Klik Start Update dan ikuti petunjuk di layar. Lihat riwayat peningkatan di pojok kanan atas halaman Upgrade Cluster. Setelah peningkatan lapisan kontrol selesai, buka halaman Clusters dan verifikasi versi Kubernetes di kolom Version.
Apa yang dilakukan ACK selama peningkatan lapisan kontrol:
-
Memperbarui komponen lapisan kontrol: kube-apiserver, kube-controller-manager, dan kube-scheduler.
-
Memperbarui komponen Kubernetes seperti kube-proxy.
Langkah 2: Tingkatkan kelompok node
Setelah lapisan kontrol ditingkatkan, tingkatkan kelompok node yang ada sesegera mungkin. Node dalam kelompok yang belum ditingkatkan masih menjalankan versi Kubernetes sebelumnya.
Lihat Update a node pool dan Update a Lingjun node pool untuk langkah-langkah detail.
Apa yang dilakukan ACK selama peningkatan kelompok node:
-
Memperbarui kubelet dan runtime kontainer pada setiap node.
-
Migrasi Docker ke containerd: Jika Anda mengganti runtime kontainer dari Docker ke containerd, ACK mengganti disk sistem setiap node — yang juga memperbarui OS dan menginstal ulang aplikasi. Cadangkan data apa pun di disk sistem sebelum memulai jenis peningkatan ini.
-
Pada semua skenario lainnya, ACK melakukan pembaruan in-place.
Aturan pembaruan bertahap:
-
Beberapa kelompok node ditingkatkan satu per satu.
-
Dalam satu kelompok node, node ditingkatkan secara bertahap: 1 node pada batch pertama, lalu jumlahnya berlipat ganda pada setiap batch berikutnya (1 → 2 → 4 → 8...).
-
Atur ukuran batch maksimum di halaman Node Pool Upgrade. Ukuran batch maksimum 10 direkomendasikan.
-
Kebijakan batching tetap berlaku setelah Anda melanjutkan peningkatan yang dijeda.
Verifikasi peningkatan
Setelah kedua tahap selesai, konfirmasi hal berikut:
-
Kolom Version di halaman Clusters menampilkan versi Kubernetes yang baru.
-
Semua kelompok node berjalan dan dalam kondisi sehat.
-
Beban kerja aplikasi di kluster berfungsi sebagaimana mestinya.
-
Konfirmasi versi kubelet pada node yang ditingkatkan untuk memverifikasi bahwa peningkatan kelompok node telah selesai.
Pemecahan masalah
Peningkatan gagal dengan pesan "the aliyun service is not running on the instance"
Agen Cloud Assistant tidak tersedia, sehingga perintah peningkatan tidak dapat dikirim ke node. Jalankan atau restart klien Cloud Assistant, lalu coba lagi peningkatan tersebut. Lihat Start, restart, stop, or uninstall the Cloud Assistant agent.
Error PLEG not healthy
Kontainer atau runtime kontainer di node tidak merespons. Restart node yang terpengaruh, lalu mulai kembali proses peningkatan.