Bagikan melalui


Gunakan pemeliharaan terencana untuk menjadwalkan dan mengontrol peningkatan untuk kluster Azure Kubernetes Service Anda

Artikel ini menunjukkan cara menggunakan pemeliharaan terencana untuk menjadwalkan dan mengontrol peningkatan gambar kluster dan simpul di Azure Kubernetes Service (AKS).

Pemeliharaan rutin dilakukan pada kluster AKS Anda secara otomatis. Ada dua jenis operasi pemeliharaan:

  • Pemeliharaan yang dimulai AKS melibatkan rilis mingguan yang dilakukan AKS untuk menjaga kluster Anda tetap terbarui dengan fitur dan perbaikan terbaru.
  • Pemeliharaan yang dimulai pengguna mencakup peningkatan otomatis kluster dan pembaruan keamanan otomatis sistem operasi node (OS).

Saat Anda menggunakan fitur pemeliharaan terencana di AKS, Anda dapat menjalankan kedua jenis pemeliharaan dalam irama pilihan Anda untuk meminimalkan dampak beban kerja. Anda dapat menggunakan pemeliharaan terencana untuk menjadwalkan waktu peningkatan otomatis, tetapi mengaktifkan atau menonaktifkan pemeliharaan terencana tidak akan mengaktifkan atau menonaktifkan peningkatan otomatis.

Sebelum Anda mulai

  • Artikel ini mengasumsikan bahwa Anda memiliki kluster AKS yang ada. Jika Anda tidak memiliki kluster AKS, lihat Membuat kluster AKS.
  • Jika Anda menggunakan Azure CLI, tingkatkan ke versi terbaru dengan menggunakan az upgrade perintah .

Pertimbangan

Saat Anda menggunakan pemeliharaan terencana, pertimbangan berikut berlaku:

  • AKS berhak untuk memutus jendela pemeliharaan terencana untuk operasi pemeliharaan reaktif yang tidak direncanakan yang mendesak atau penting. Operasi pemeliharaan ini bahkan dapat berjalan selama notAllowedTime periode atau notAllowedDates yang ditentukan dalam konfigurasi Anda.
  • Operasi pemeliharaan dianggap sebagai upaya terbaik saja dan tidak dijamin terjadi dalam jendela tertentu.

Menjadwalkan jenis konfigurasi untuk pemeliharaan terencana

Tiga jenis konfigurasi jadwal tersedia untuk pemeliharaan terencana:

  • default adalah konfigurasi dasar untuk mengontrol rilis AKS. Rilis dapat memakan waktu hingga dua minggu untuk diluncurkan ke semua wilayah dari waktu awal pengiriman, karena praktik penyebaran aman Azure.

    Pilih default untuk menjadwalkan pembaruan ini dengan cara yang paling tidak mengganggu bagi Anda. Anda dapat memantau status rilis AKS yang sedang berlangsung menurut wilayah dengan pelacak rilis mingguan.

  • aksManagedAutoUpgradeSchedule mengontrol kapan harus melakukan peningkatan kluster yang dijadwalkan oleh saluran peningkatan otomatis yang Anda tentukan. Anda dapat mengonfigurasi pengaturan irama dan pengulangan yang dikontrol dengan lebih baik dengan konfigurasi ini dibandingkan default dengan konfigurasi. Untuk informasi selengkapnya tentang peningkatan otomatis kluster, lihat Meningkatkan kluster Azure Kubernetes Service secara otomatis.

  • aksManagedNodeOSUpgradeSchedule mengontrol kapan harus melakukan patching keamanan OS simpul yang dijadwalkan oleh saluran peningkatan otomatis OS simpul Anda. Anda dapat mengonfigurasi pengaturan irama dan pengulangan yang dikontrol dengan lebih baik dengan konfigurasi ini dibandingkan default dengan konfigurasi. Untuk informasi selengkapnya tentang saluran peningkatan otomatis OS simpul, lihat Menambal dan memperbarui gambar node kluster AKS secara otomatis.

Sebaiknya gunakan aksManagedAutoUpgradeSchedule untuk semua skenario peningkatan kluster dan aksManagedNodeOSUpgradeSchedule untuk semua skenario patching keamanan OS simpul.

Opsi default ini dimaksudkan secara eksklusif untuk rilis mingguan AKS. Anda dapat mengalihkan default konfigurasi ke aksManagedAutoUpgradeSchedule konfigurasi atau aksManagedNodeOSUpgradeSchedule dengan menggunakan az aks maintenanceconfiguration update perintah .

Membuat jendela pemeliharaan

Catatan

Saat Anda menggunakan peningkatan otomatis, untuk memastikan fungsionalitas yang tepat, gunakan jendela pemeliharaan dengan durasi empat jam atau lebih.

Jendela pemeliharaan terencana ditentukan dalam Waktu Universal Terkoordinasi (UTC).

Jendela default pemeliharaan memiliki properti warisan berikut (tidak lagi disarankan):

Nama Deskripsi Nilai default
timeInWeek default Dalam konfigurasi, properti ini berisi day nilai dan hourSlots yang menentukan jendela pemeliharaan. Tidak berlaku
timeInWeek.day Hari dalam seminggu untuk melakukan pemeliharaan dalam default konfigurasi. Tidak berlaku
timeInWeek.hourSlots Daftar slot waktu berjam-jam untuk melakukan pemeliharaan pada hari tertentu dalam default konfigurasi. Tidak berlaku
notAllowedTime Rentang tanggal yang tidak dapat dijalankan pemeliharaan, ditentukan oleh start dan end properti turunan. Properti ini hanya berlaku saat Anda membuat jendela pemeliharaan dengan menggunakan file konfigurasi. Tidak berlaku

Catatan

Dari versi API 2023-05-01 dan seterusnya, gunakan properti di bawah ini untuk default konfigurasi.

Jendela aksManagedAutoUpgradeSchedule dan konfigurasi pemeliharaan atau default aksManagedNodeOSUpgradeSchedule dari versi API 2023-05-01 dan seterusnya memiliki properti berikut:

Nama Deskripsi Nilai default
utcOffset Zona waktu untuk pemeliharaan kluster. +00:00
startDate Tanggal di mana jendela pemeliharaan mulai berlaku. Tanggal saat ini pada waktu pembuatan
startTime Waktu pemeliharaan dimulai, berdasarkan zona waktu yang ditentukan oleh utcOffset. Tidak berlaku
schedule Frekuensi peningkatan. Tiga jenis tersedia: Weekly, , AbsoluteMonthlydan RelativeMonthly. Tidak berlaku
intervalDays Interval dalam hari untuk pemeliharaan berjalan. Ini hanya berlaku untuk aksManagedNodeOSUpgradeSchedule. Tidak berlaku
intervalWeeks Interval dalam minggu untuk pemeliharaan berjalan. Tidak berlaku
intervalMonths Interval dalam bulan untuk pemeliharaan berjalan. Tidak berlaku
dayOfWeek Hari yang ditentukan dalam seminggu untuk pemeliharaan dimulai. Tidak berlaku
durationHours Durasi jendela untuk pemeliharaan yang akan dijalankan. Tidak berlaku
notAllowedDates Rentang tanggal yang tidak dapat dijalankan pemeliharaan, ditentukan oleh start dan end properti turunan. Ini hanya berlaku saat Anda membuat jendela pemeliharaan dengan menggunakan file konfigurasi. Tidak berlaku

Jenis jadwal

Empat jenis jadwal yang tersedia tersedia: Daily, , Weekly, AbsoluteMonthlydan RelativeMonthly.

Weekly, AbsoluteMonthly, dan RelativeMonthly jenis jadwal hanya berlaku untuk aksManagedClusterAutoUpgradeSchedule konfigurasi dan aksManagedNodeOSUpgradeSchedule . Daily jadwal hanya berlaku untuk aksManagedNodeOSUpgradeSchedule konfigurasi.

Semua bidang yang ditampilkan untuk setiap jenis jadwal diperlukan.

Daily Jadwal mungkin terlihat seperti "setiap tiga hari":

"schedule": {
    "daily": {
        "intervalDays": 3
    }
}

Weekly Jadwal mungkin terlihat seperti "setiap dua minggu pada hari Jumat":

"schedule": {
    "weekly": {
        "intervalWeeks": 2,
        "dayOfWeek": "Friday"
    }
}

Jadwal AbsoluteMonthly mungkin terlihat seperti "setiap tiga bulan pada hari pertama bulan ini":

"schedule": {
    "absoluteMonthly": {
        "intervalMonths": 3,
        "dayOfMonth": 1
    }
}

RelativeMonthly Jadwal mungkin terlihat seperti "setiap dua bulan pada hari Senin terakhir":

"schedule": {
    "relativeMonthly": {
        "intervalMonths": 2,
        "dayOfWeek": "Monday",
        "weekIndex": "Last"
    }
}

Nilai yang valid untuk menyertakan , , ThirdSecond, Fourth, dan Last.FirstweekIndex

Menambahkan konfigurasi jendela pemeliharaan

Tambahkan konfigurasi jendela pemeliharaan ke kluster AKS dengan menggunakan az aks maintenanceconfiguration add perintah .

Contoh pertama menambahkan konfigurasi baru default yang menjadwalkan pemeliharaan untuk dijalankan dari pukul 01.00 hingga 02.00 setiap hari Senin. Contoh kedua menambahkan konfigurasi baru aksManagedAutoUpgradeSchedule yang menjadwalkan pemeliharaan untuk dijalankan setiap Jumat ketiga antara pukul 12.00 dan 08.00 di UTC+5:30 zona waktu.

# Add a new default configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 1

# Add a new aksManagedAutoUpgradeSchedule configuration
az aks maintenanceconfiguration add --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule --schedule-type Weekly --day-of-week Friday --interval-weeks 3 --duration 8 --utc-offset +05:30 --start-time 00:00

Catatan

Saat menggunakan default jenis konfigurasi, Anda dapat menghilangkan --start-time parameter untuk memungkinkan pemeliharaan kapan saja selama sehari.

Memperbarui jangka waktu pemeliharaan yang ada

Perbarui konfigurasi pemeliharaan yang ada dengan menggunakan az aks maintenanceconfiguration update perintah .

Contoh berikut memperbarui default konfigurasi untuk menjadwalkan pemeliharaan agar berjalan dari pukul 02.00 hingga 03.00 setiap hari Senin:

az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2

Daftar semua jangka waktu pemeliharaan di kluster yang ada

Cantumkan jendela konfigurasi pemeliharaan saat ini di kluster AKS Anda dengan menggunakan az aks maintenanceconfiguration list perintah :

az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster

Menampilkan jendela konfigurasi pemeliharaan tertentu di kluster yang ada

Lihat jendela konfigurasi pemeliharaan tertentu di kluster AKS Anda dengan menggunakan az aks maintenanceconfiguration show perintah dengan --name parameter :

az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule

Contoh output berikut menunjukkan jendela pemeliharaan untuk aksManagedAutoUpgradeSchedule:

{
  "id": "/subscriptions/<subscription>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/maintenanceConfigurations/aksManagedAutoUpgradeSchedule",
  "maintenanceWindow": {
    "durationHours": 4,
    "notAllowedDates": [
      {
        "end": "2024-01-05",
        "start": "2023-12-23"
      }
    ],
    "schedule": {
      "absoluteMonthly": {
        "dayOfMonth": 1,
        "intervalMonths": 3
      },
      "daily": null,
      "relativeMonthly": null,
      "weekly": null
    },
    "startDate": "2023-01-20",
    "startTime": "09:00",
    "utcOffset": "-08:00"
  },
  "name": "aksManagedAutoUpgradeSchedule",
  "notAllowedTime": null,
  "resourceGroup": "myResourceGroup",
  "systemData": null,
  "timeInWeek": null,
  "type": null
}

Menghapus jendela konfigurasi pemeliharaan di kluster yang ada

Hapus jendela konfigurasi pemeliharaan di kluster AKS Anda dengan menggunakan az aks maintenanceconfiguration delete perintah .

Contoh berikut menghapus autoUpgradeSchedule konfigurasi pemeliharaan:

az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule

FAQ

  • Bagaimana cara memeriksa konfigurasi pemeliharaan yang ada di kluster saya?

    Gunakan perntah az aks maintenanceconfiguration show.

  • Dapatkah pemeliharaan reaktif dan tidak terencana terjadi selama notAllowedTime periode atau notAllowedDates juga?

    Ya. AKS berhak untuk memecah jendela ini untuk operasi pemeliharaan reaktif yang tidak diencana yang mendesak atau kritis.

  • Bagaimana cara mengetahui apakah peristiwa pemeliharaan terjadi?

    Untuk rilis, periksa wilayah kluster Anda dan cari informasi dalam rilis mingguan untuk melihat apakah cocok dengan jadwal pemeliharaan Anda. Untuk melihat status peningkatan otomatis Anda, cari log aktivitas di kluster Anda. Anda juga dapat mencari peristiwa terkait peningkatan tertentu, seperti yang disebutkan dalam Meningkatkan kluster AKS.

    AKS juga memancarkan peristiwa Azure Event Grid terkait peningkatan. Untuk mempelajari selengkapnya, lihat AKS sebagai sumber Event Grid.

  • Dapatkah saya menggunakan lebih dari satu konfigurasi pemeliharaan secara bersamaan?

    Ya, Anda dapat menjalankan ketiga konfigurasi secara bersamaan: default, , aksManagedAutoUpgradeScheduledan aksManagedNodeOSUpgradeSchedule. Jika jendela tumpang tindih, AKS memutuskan urutan berjalan.

  • Saya mengonfigurasi jendela pemeliharaan, tetapi peningkatan tidak terjadi. Mengapa?

    Peningkatan otomatis AKS membutuhkan waktu tertentu, biasanya tidak lebih dari 15 menit, untuk mempertimbangkan jendela pemeliharaan. Kami merekomendasikan setidaknya 15 menit antara pembuatan atau pembaruan konfigurasi pemeliharaan dan waktu mulai yang dijadwalkan.

    Selain itu, pastikan kluster Anda dimulai ketika jendela pemeliharaan yang direncanakan dimulai. Jika kluster dihentikan, sarana kontrolnya dibatalkan alokasinya dan tidak ada operasi yang dapat dilakukan.

  • Mengapa salah satu kumpulan agen saya ditingkatkan di luar jendela pemeliharaan?

    Jika kumpulan agen tidak ditingkatkan (misalnya, karena anggaran gangguan pod mencegahnya), kumpulan agen mungkin ditingkatkan nanti, di luar jendela pemeliharaan. Skenario ini disebut "peningkatan ketinggalan." Ini menghindari membiarkan kumpulan agen ditingkatkan dengan versi yang berbeda dari sarana kontrol AKS.

    Alasan lain mengapa kumpulan agen dapat ditingkatkan secara tiba-tiba adalah ketika tidak ada konfigurasi pemeliharaan yang ditentukan, atau jika telah dihapus. Dalam hal ini, kluster dengan peningkatan otomatis tetapi tanpa konfigurasi pemeliharaan akan ditingkatkan pada waktu acak (jadwal fallback), yang mungkin merupakan jangka waktu yang tidak diinginkan.

  • Apakah ada praktik terbaik untuk konfigurasi pemeliharaan?

    Sebaiknya atur jadwal pembaruan keamanan OS simpul ke irama mingguan jika Anda menggunakan NodeImage saluran, karena gambar simpul baru dikirim setiap minggu. Anda juga dapat memilih saluran untuk SecurityPatch menerima pembaruan keamanan harian.

    Atur jadwal peningkatan otomatis ke irama bulanan agar tetap terkini dengan kebijakan dukungan Kubernetes N-2.

    Untuk diskusi terperinci tentang praktik terbaik peningkatan dan pertimbangan lainnya, lihat panduan patch dan peningkatan AKS.

  • Dapatkah saya mengonfigurasi semua kluster saya dalam satu langganan untuk menggunakan konfigurasi pemeliharaan yang sama?

    Kami tidak menyarankan penggunaan konfigurasi pemeliharaan yang sama untuk beberapa kluster dalam satu langganan, karena hal itu dapat menyebabkan kesalahan pembatasan ARM yang menyebabkan peningkatan kluster gagal. Sebagai gantinya, kami sarankan mengejutkan jendela pemeliharaan untuk setiap kluster untuk menghindari kesalahan ini.

Langkah berikutnya