Memperbarui orkestrasi di beberapa kluster anggota

Admin platform yang mengelola sejumlah besar kluster sering memiliki masalah dengan penahapan pembaruan beberapa kluster (misalnya, meningkatkan versi gambar OS simpul, meningkatkan versi Kubernetes) dengan cara yang aman dan dapat diprediksi. Untuk mengatasi titik rasa sakit ini, Azure Kubernetes Fleet Manager (Fleet) memungkinkan Anda untuk mengatur pembaruan di beberapa kluster menggunakan eksekusi pembaruan, tahapan, grup, dan strategi.

Diagram yang menunjukkan eksekusi peningkatan yang berisi dua tahap pembaruan, masing-masing berisi dua grup pembaruan dengan dua kluster anggota.

  • Eksekusi pembaruan: Eksekusi pembaruan mewakili pembaruan yang diterapkan ke kumpulan kluster AKS, yang terdiri dari tujuan dan urutan pembaruan. Tujuan pembaruan menjelaskan pembaruan yang diinginkan (misalnya, meningkatkan ke Kubernetes versi 1.28.3). Urutan pembaruan menjelaskan urutan yang tepat untuk menerapkan pembaruan ke beberapa kluster anggota, yang dinyatakan menggunakan tahapan dan grup. Jika tidak ditentukan, semua kluster anggota diperbarui satu per satu secara berurutan. Eksekusi pembaruan dapat dihentikan dan dimulai.
  • Tahap pembaruan: Eksekusi pembaruan dibagi menjadi beberapa tahap, yang diterapkan secara berurutan. Misalnya, tahap pembaruan pertama mungkin memperbarui kluster anggota lingkungan pengujian, dan tahap pembaruan kedua kemudian akan memperbarui kluster anggota lingkungan produksi. Waktu tunggu dapat ditentukan untuk menunda antara aplikasi tahap pembaruan berikutnya.
  • Grup pembaruan: Setiap tahap pembaruan berisi satu atau beberapa grup pembaruan, yang digunakan untuk memilih kluster anggota yang akan diperbarui. Grup pembaruan juga digunakan untuk memesan aplikasi pembaruan untuk kluster anggota. Dalam tahap pembaruan, pembaruan diterapkan ke semua grup pembaruan yang berbeda secara paralel; dalam grup pembaruan, kluster anggota diperbarui secara berurutan. Setiap kluster anggota armada hanya dapat menjadi bagian dari satu grup pembaruan.
  • Strategi pembaruan: Strategi pembaruan menjelaskan urutan pembaruan dengan tahapan dan grup. Anda dapat menggunakan kembali strategi dalam eksekusi pembaruan Anda alih-alih menentukan urutan berulang kali di setiap eksekusi.

Saat ini, operasi pembaruan yang didukung pada kluster adalah peningkatan. Ada dua jenis peningkatan yang dapat Anda pilih:

  • Tingkatkan versi Kubernetes untuk sarana kontrol Kubernetes dan simpul (yang mencakup peningkatan gambar simpul).
  • Tingkatkan hanya gambar simpul.

Anda dapat menentukan versi Kubernetes target untuk ditingkatkan, tetapi Anda tidak dapat menentukan versi gambar simpul target yang tepat karena versi gambar simpul terbaru yang tersedia dapat bervariasi tergantung pada wilayah kluster (periksa pelacak rilis untuk informasi lebih lanjut). Versi gambar simpul target secara otomatis dipilih untuk Anda berdasarkan preferensi Anda:

  • Latest: Gunakan gambar node terbaru yang tersedia di wilayah kluster saat peningkatan kluster dimulai. Akibatnya, versi gambar yang berbeda dapat digunakan tergantung pada wilayah mana kluster berada dan kapan peningkatannya benar-benar dimulai.
  • Consistent: Ketika eksekusi pembaruan dimulai, ia memilih versi gambar umum terbaru di seluruh wilayah kluster anggota dalam eksekusi ini, sehingga versi gambar yang sama dan konsisten digunakan di seluruh kluster.

Anda harus memilih Latest untuk menggunakan versi gambar yang lebih segar dan meminimalkan risiko keamanan, dan memilih Consistent untuk meningkatkan keandalan dengan menggunakan dan memverifikasi gambar tersebut dalam kluster pada tahap sebelumnya sebelum menggunakannya di kluster selanjutnya.

Pemeliharaan terencana

Pembaruan menjalankan jendela pemeliharaan terencana yang Anda tetapkan di tingkat kluster Azure Kubernetes Service (AKS).

Dalam eksekusi pembaruan (untuk eksekusi pembaruan jenis Satu per satu atau Tahap ), eksekusi pembaruan memprioritaskan peningkatan kluster dalam urutan berikut:

  1. Anggota dengan jendela pemeliharaan terbuka yang sedang berlangsung.
  2. Anggota dengan pembukaan jendela pemeliharaan dalam empat jam ke depan.
  3. Anggota tanpa jendela pemeliharaan.
  4. Anggota dengan jendela pemeliharaan tertutup.

Memperbarui status eksekusi

Eksekusi pembaruan dapat berada di salah satu status berikut:

  • NotStarted: Status eksekusi pembaruan sebelum dimulai.

  • Berjalan: Peningkatan sedang berlangsung untuk setidaknya salah satu kluster dalam eksekusi pembaruan.

  • Tertunda:

    • Kluster anggota: Kluster anggota dapat berada dalam status tertunda karena salah satu alasan berikut dan muncul di bawah bidang pesan.
      • Jendela pemeliharaan tidak terbuka. Pesan menunjukkan waktu pembukaan berikutnya.
      • Versi Kubernetes target belum tersedia di wilayah anggota. Tautan pesan ke pelacak rilis sehingga Anda dapat memeriksa status rilis di seluruh wilayah.
      • Versi gambar simpul target belum tersedia di wilayah anggota. Tautan pesan ke pelacak rilis sehingga Anda dapat memeriksa status rilis di seluruh wilayah.
    • Grup: Grup dalam Pending status jika semua anggota dalam grup dalam Pending status atau belum dimulai. Saat anggota pindah ke Pending, eksekusi pembaruan akan mencoba memutakhirkan anggota berikutnya dalam grup. Jika semua anggota dalam Pending status, grup akan berpindah ke Pending status. Semua grup harus dalam status terminal sebelum pindah ke tahap berikutnya. Artinya, jika grup dalam Pending status , eksekusi pembaruan menunggunya selesai sebelum melanjutkan ke tahap berikutnya untuk eksekusi.
    • Tahap: Tahap berada di Pending jika semua grup di bawah tahap tersebut dalam Pending status atau belum dimulai.
    • Jalankan: Eksekusi dalam Pending status jika tahap saat ini yang harus berjalan dalam Pending status.
  • Dilewati: Semua tingkat eksekusi pembaruan dapat dilewati dan ini bisa terdeteksi sistem atau dimulai pengguna.

    • Anggota:
      • Anda telah melewatkan peningkatan untuk anggota atau salah satu orang tuanya.
      • Kluster anggota sudah berada di versi Kubernetes target (jika mode eksekusi pembaruan adalah Full atau ControlPlaneOnly).
      • Kluster anggota sudah berada di versi Kubernetes target dan semua kumpulan simpul berada di versi gambar simpul target.
      • Ketika gambar simpul yang konsisten dipilih untuk eksekusi peningkatan, jika tidak dimungkinkan untuk menemukan versi gambar target untuk salah satu kumpulan simpul, maka peningkatan dilewati untuk kluster tersebut. Contoh situasi untuk ini adalah ketika kumpulan simpul baru dengan SKU VM baru ditambahkan setelah eksekusi pembaruan dimulai.
    • Grup:
      • Semua kluster anggota terdeteksi sebagai Skipped oleh sistem.
      • Anda memulai lompatan di tingkat grup.
    • Tahap:
      • Semua grup dalam tahap terdeteksi sebagai Skipped oleh sistem.
      • Anda memulai lompatan pada tingkat panggung.
    • Jalankan:
      • Semua tahapan terdeteksi sebagai Skipped oleh sistem.
  • Dihentikan: Semua tingkat eksekusi pembaruan dapat dihentikan. Ada dua kemungkinan untuk memasuki status berhenti:

    • Anda menghentikan eksekusi pembaruan, di mana eksekusi pembaruan titik berhenti melacak semua operasi. Jika operasi sudah dimulai oleh eksekusi pembaruan (misalnya, peningkatan kluster sedang berlangsung), maka operasi tersebut tidak dibatalkan untuk kluster individual tersebut.
    • Jika kegagalan ditemui selama eksekusi pembaruan (misalnya peningkatan gagal pada salah satu kluster), seluruh eksekusi pembaruan memasuki status berhenti dan dioperasikan tidak dicoba untuk kluster berikutnya dalam eksekusi pembaruan.
  • Gagal: Kegagalan untuk meningkatkan kluster akan mengakibatkan tindakan berikut:

    • Menandai sebagai Failed pada MemberUpdateStatus kluster anggota.
    • Menandai semua orang tua (grup -> tahap -> jalankan) sebagai Failed dengan pesan kesalahan ringkasan.
    • Menghentikan eksekusi pembaruan dari kemajuan lebih lanjut.

Langkah berikutnya