Pembaruan gambar node untuk penyediaan otomatis simpul (NAP) di Azure Kubernetes Service (AKS)

Artikel ini memberikan gambaran umum tentang pembaruan citra simpul untuk provisi otomatis simpul (NAP) di Azure Kubernetes Service (AKS), termasuk cara kerjanya, jendela pemeliharaan yang disarankan, dan contoh untuk memulai penggunaan.

Bagaimana cara kerja pembaruan citra node untuk node yang diprovisi otomatis?

Secara default, komputer virtual (VM) kumpulan simpul NAP secara otomatis diperbarui saat versi gambar baru tersedia. Anda dapat mengonfigurasi jendela pemeliharaan jadwal peningkatan sistem operasi (OS) simpul yang dikelola AKS untuk mengontrol kapan gambar baru diambil dan diterapkan ke simpul NAP Anda, atau menggunakan Anggaran Gangguan Simpul Karpenter dan Anggaran Gangguan Pod untuk mengontrol bagaimana dan kapan gangguan terjadi selama peningkatan.

Nota

NAP memaksa penggunaan versi gambar terbaru jika versi gambar node yang ada sudah lebih dari 90 hari. Ini melewati setiap jendela pemeliharaan yang sudah ada.

Jendela pemeliharaan peningkatan OS node untuk NAP

Anda dapat menggunakan fitur pemeliharaan terencana AKS dengan saluran peningkatan otomatis OS simpul untuk mengonfigurasi aksManagedNodeOSUpgradeSchedule jendela pemeliharaan yang mengontrol kapan harus melakukan patching keamanan OS simpul yang dijadwalkan oleh saluran peningkatan otomatis OS simpul yang Anda tentukan.

Perilaku dan pertimbangan jendela pemeliharaan peningkatan OS node

Harap perhatikan informasi berikut saat mengonfigurasi jendela pemeliharaan untuk peningkatan OS node di NAP.

  • Konfigurasi pemeliharaan aksManagedNodeOSUpgradeSchedule menentukan jendela waktu saat NAP mengambil citra baru. Konfigurasi ini tidak selalu menentukan kapan simpul yang ada terganggu.
  • Mekanisme pemutakhiran dan kriteria keputusan khusus untuk NAP/Karpenter dan dievaluasi oleh logika drift dari NAP. NAP menghargai Anggaran Gangguan Node Karpenter dan Anggaran Gangguan Pod. Untuk informasi selengkapnya tentang penyimpangan, lihat dokumentasi penyimpangan Karpenter.
  • Keputusan peningkatan NAP ini terpisah dari kluster NodeImage dan SecurityPatch kanal. Namun, konfigurasi pemeliharaan aksManagedNodeOSUpgradeSchedule juga menerapkannya.
  • Sebaiknya gunakan jendela pemeliharaan empat jam atau lebih untuk operasi yang dapat diandalkan.
  • Jika tidak ada konfigurasi pemeliharaan, AKS mungkin menggunakan jadwal fallback untuk mengambil gambar baru, yang dapat menyebabkan gambar diambil pada waktu yang tidak terduga. Anda dapat menghindari penjadwalan gambar dan peningkatan baru yang tidak terduga dengan menentukan kebijakan yang eksplisit aksManagedNodeOSUpgradeSchedule.
  • Izinkan setidaknya 30 menit antara membuat atau memperbarui konfigurasi pemeliharaan dan waktu mulai terjadwal untuk memastikan AKS memiliki waktu untuk mendamaikan konfigurasi baru.

Kami merekomendasikan pola jadwal berikut untuk simpul yang dikelola NAP:

  • Irama mingguan: Direkomendasikan untuk peluncuran gambar simpul rutin (misalnya: Setiap minggu pada hari Minggu).

Membuat contoh jadwal pemeliharaan OS simpul

Bagian berikut menunjukkan kepada Anda cara membuat jendela pemeliharaan mingguan untuk simpul yang dikelola NAP menggunakan Azure CLI dan file konfigurasi JSON dan cara memperbarui, melihat, mencantumkan, dan menghapus konfigurasi pemeliharaan.

Membuat konfigurasi pemeliharaan

  1. Buat file JSON bernama nodeosMaintenance.json dengan jendela pemeliharaan mingguan (misalnya: Minggu pukul 01.00 UTC selama 4 jam).

    {
      "properties": {
        "maintenanceWindow": {
          "durationHours": 4,
          "schedule": {
            "weekly": {
              "intervalWeeks": 1,
              "dayOfWeek": "Sunday"
            }
          },
          "startDate": "2025-01-01",
          "startTime": "01:00",
          "utcOffset": "+00:00"
        }
      }
    }
    
  2. Tambahkan konfigurasi pemeliharaan ke kluster Anda menggunakan az aks maintenanceconfiguration add perintah .

    az aks maintenanceconfiguration add \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    

Memperbarui, melihat, mencantumkan, atau menghapus konfigurasi pemeliharaan

Anda dapat menggunakan perintah berikut untuk memperbarui, melihat, mencantumkan, atau menghapus konfigurasi pemeliharaan untuk simpul yang dikelola NAP:

  • Perbarui konfigurasi pemeliharaan dengan memodifikasi file JSON lalu jalankan az aks maintenanceconfiguration update perintah.

    az aks maintenanceconfiguration update \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule \
      --config-file ./nodeosMaintenance.json
    
  • Lihat detail konfigurasi pemeliharaan menggunakan az aks maintenanceconfiguration show perintah .

    az aks maintenanceconfiguration show \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    
  • Daftarkan semua konfigurasi pemeliharaan untuk kluster Anda menggunakan perintah az aks maintenanceconfiguration list.

    az aks maintenanceconfiguration list \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME
    
  • Hapus konfigurasi pemeliharaan menggunakan az aks maintenanceconfiguration delete perintah .

    az aks maintenanceconfiguration delete \
      --resource-group $RESOURCE_GROUP \
      --cluster-name $CLUSTER_NAME \
      --name aksManagedNodeOSUpgradeSchedule
    

Untuk detail lengkap, contoh, dan skenario tingkat lanjut, lihat Menggunakan Pemeliharaan Terencana untuk menjadwalkan jendela pemeliharaan untuk kluster AKS Anda.

Anggaran Gangguan Simpul Karpenter dan Anggaran Gangguan Pod untuk NAP

Untuk informasi selengkapnya tentang mengonfigurasi Karpenter Node Disruption Budgets dan Pod Disruption Budgets untuk NAP, Anda dapat melihat sumber daya berikut di dokumentasi Karpenter resmi:

Langkah selanjutnya

Untuk informasi selengkapnya tentang node auto-provisioning di AKS, lihat artikel berikut ini: