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 ataunotAllowedDates
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 dibandingkandefault
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 dibandingkandefault
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 , , AbsoluteMonthly dan 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
, AbsoluteMonthly
dan 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 , , Third
Second
, Fourth
, dan Last
.First
weekIndex
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 ataunotAllowedDates
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
, ,aksManagedAutoUpgradeSchedule
danaksManagedNodeOSUpgradeSchedule
. 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 untukSecurityPatch
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
- Untuk mulai memutakhirkan kluster AKS Anda, lihat Opsi peningkatan untuk kluster AKS.
Azure Kubernetes Service