استخدام الصيانة المخطط لها لجدولة الترقيات والتحكم فيها لنظام مجموعة خدمة Azure Kubernetes
توضح هذه المقالة كيفية استخدام الصيانة المخطط لها لجدولة ترقيات صورة المجموعة والعقدة والتحكم فيها في خدمة Azure Kubernetes (AKS).
يتم إجراء الصيانة المنتظمة على نظام مجموعة AKS تلقائيا. هناك نوعان من عمليات الصيانة:
- تتضمن الصيانة التي بدأتها AKS الإصدارات الأسبوعية التي تقوم بها AKS للحفاظ على نظام المجموعة الخاص بك محدثا بأحدث الميزات والإصلاحات.
- تتضمن الصيانة التي بدأها المستخدم الترقيات التلقائية لنظام المجموعة وتحديثات الأمان التلقائية لنظام تشغيل العقدة (OS).
عند استخدام ميزة الصيانة المخطط لها في AKS، يمكنك تشغيل كلا النوعين من الصيانة في إيقاع من اختيارك لتقليل تأثير حمل العمل. يمكنك استخدام الصيانة المخطط لها لجدولة توقيت الترقيات التلقائية، ولكن تمكين الصيانة المخطط لها أو تعطيلها لن يؤدي إلى تمكين الترقيات التلقائية أو تعطيلها.
قبل البدء
- تفترض هذه المقالة أن لديك تجمع AKS قائمًا. إذا لم يكن لديك نظام مجموعة AKS، فشاهد إنشاء نظام مجموعة AKS.
- إذا كنت تستخدم Azure CLI، قم بالترقية إلى أحدث إصدار باستخدام
az upgrade
الأمر .
الاعتبارات
عند استخدام الصيانة المخطط لها، تنطبق الاعتبارات التالية:
- تحتفظ AKS بالحق في كسر نوافذ الصيانة المخطط لها لعمليات الصيانة غير المخطط لها والتفاعلية العاجلة أو الحرجة. قد تعمل عمليات الصيانة هذه خلال أو
notAllowedTime
notAllowedDates
الفترات المحددة في التكوين الخاص بك. - تعتبر عمليات الصيانة أفضل جهد فقط ولا يضمن حدوثها داخل نافذة محددة.
جدولة أنواع التكوين للصيانة المخطط لها
تتوفر ثلاثة أنواع لتكوين الجدول للصيانة المخطط لها:
default
هو تكوين أساسي للتحكم في إصدارات AKS. قد تستغرق الإصدارات ما يصل إلى أسبوعين للنشر في جميع المناطق من الوقت الأولي للشحن، بسبب ممارسات النشر الآمنة في Azure.اختر
default
جدولة هذه التحديثات بطريقة أقل اضطرابا بالنسبة لك. يمكنك مراقبة حالة إصدار AKS المستمر حسب المنطقة باستخدام متعقب الإصدار الأسبوعي.aksManagedAutoUpgradeSchedule
يتحكم في وقت إجراء ترقيات نظام المجموعة المجدولة بواسطة قناة الترقية التلقائية المعينة. يمكنك تكوين إعدادات إيقاع وتكرار أكثر تحكما بدقة باستخدام هذا التكوين مقارنة بالتكوينdefault
. لمزيد من المعلومات حول الترقية التلقائية لنظام المجموعة، راجع ترقية نظام مجموعة خدمة Azure Kubernetes تلقائيا.aksManagedNodeOSUpgradeSchedule
يتحكم في وقت إجراء تصحيح أمان نظام تشغيل العقدة المجدول بواسطة قناة الترقية التلقائية لنظام التشغيل العقدة. يمكنك تكوين إعدادات إيقاع وتكرار أكثر تحكما بدقة باستخدام هذا التكوين مقارنة بالتكوينdefault
. لمزيد من المعلومات حول قنوات الترقية التلقائية لنظام التشغيل للعقدة، راجع تصحيح وتحديث صور عقدة نظام مجموعة AKS تلقائيا.
نوصي باستخدام aksManagedAutoUpgradeSchedule
لجميع سيناريوهات ترقية نظام المجموعة ولكافة aksManagedNodeOSUpgradeSchedule
سيناريوهات تصحيح أمان نظام التشغيل للعقدة.
هذا default
الخيار مخصص حصريا للإصدارات الأسبوعية من AKS. يمكنك تبديل default
التكوين إلى aksManagedAutoUpgradeSchedule
أو aksManagedNodeOSUpgradeSchedule
التكوين باستخدام az aks maintenanceconfiguration update
الأمر .
إنشاء نافذة صيانة
إشعار
عند استخدام الترقية التلقائية، لضمان الأداء الوظيفي المناسب، استخدم نافذة صيانة لمدة أربع ساعات أو أكثر.
يتم تحديد نوافذ الصيانة المخطط لها في التوقيت العالمي المتفق عليه (UTC).
default
تحتوي نافذة الصيانة على الخصائص القديمة التالية (لم تعد مستحسنة):
Name | الوصف | القيمة الافتراضية |
---|---|---|
timeInWeek |
default في التكوين، تحتوي هذه الخاصية على day القيم و hourSlots التي تحدد نافذة الصيانة. |
غير قابل للتطبيق |
timeInWeek.day |
يوم من الأسبوع لإجراء الصيانة في تكوين default . |
غير قابل للتطبيق |
timeInWeek.hourSlots |
قائمة بالفتحات الزمنية التي تستغرق ساعة لإجراء الصيانة في يوم معين في default تكوين. |
غير قابل للتطبيق |
notAllowedTime |
مجموعة من التواريخ التي لا يمكن للصيانة تشغيلها، والتي تحددها start الخصائص التابعة.end تنطبق هذه الخاصية فقط عند إنشاء نافذة الصيانة باستخدام ملف تكوين. |
غير قابل للتطبيق |
إشعار
من إصدار واجهة برمجة التطبيقات 2023-05-01 فصاعدا، يرجى استخدام الخصائص أدناه للتكوين default
.
aksManagedAutoUpgradeSchedule
نافذة أو aksManagedNodeOSUpgradeSchedule
صيانة وتكوين default
من إصدار واجهة برمجة التطبيقات 2023-05-01 فصاعدا له الخصائص التالية:
Name | الوصف | القيمة الافتراضية |
---|---|---|
utcOffset |
المنطقة الزمنية لصيانة نظام المجموعة. | +00:00 |
startDate |
التاريخ الذي تبدأ فيه نافذة الصيانة حيز التنفيذ. | التاريخ الحالي في وقت الإنشاء |
startTime |
وقت بدء الصيانة، استنادا إلى المنطقة الزمنية التي يحددها utcOffset . |
غير قابل للتطبيق |
schedule |
تكرار الترقية. تتوفر ثلاثة أنواع: Weekly و AbsoluteMonthly و.RelativeMonthly |
غير قابل للتطبيق |
intervalDays |
الفاصل الزمني بالأيام لتشغيل الصيانة. لا ينطبق إلا على aksManagedNodeOSUpgradeSchedule . |
غير قابل للتطبيق |
intervalWeeks |
الفاصل الزمني بالأسابيع لتشغيل الصيانة. | غير قابل للتطبيق |
intervalMonths |
الفاصل الزمني بالأشهر لتشغيل الصيانة. | غير قابل للتطبيق |
dayOfWeek |
اليوم المحدد من الأسبوع لبدء الصيانة. | غير قابل للتطبيق |
durationHours |
مدة النافذة للصيانة لتشغيلها. | غير قابل للتطبيق |
notAllowedDates |
مجموعة من التواريخ التي لا يمكن للصيانة تشغيلها، والتي تحددها start الخصائص التابعة.end لا ينطبق إلا عند إنشاء نافذة الصيانة باستخدام ملف تكوين. |
غير قابل للتطبيق |
أنواع الجدولة
تتوفر أربعة أنواع جداول متوفرة: Daily
و Weekly
AbsoluteMonthly
و و.RelativeMonthly
Weekly
أنواع الجدولة AbsoluteMonthly
و و RelativeMonthly
قابلة للتطبيق فقط على aksManagedClusterAutoUpgradeSchedule
aksManagedNodeOSUpgradeSchedule
والتكوينات. Daily
تنطبق الجداول الزمنية فقط على aksManagedNodeOSUpgradeSchedule
التكوينات.
جميع الحقول المعروضة لكل نوع جدول مطلوبة.
Daily
قد يبدو الجدول الزمني مثل "كل ثلاثة أيام":
"schedule": {
"daily": {
"intervalDays": 3
}
}
Weekly
قد يبدو الجدول الزمني مثل "كل أسبوعين يوم الجمعة":
"schedule": {
"weekly": {
"intervalWeeks": 2,
"dayOfWeek": "Friday"
}
}
AbsoluteMonthly
قد يبدو الجدول "كل ثلاثة أشهر في اليوم الأول من الشهر":
"schedule": {
"absoluteMonthly": {
"intervalMonths": 3,
"dayOfMonth": 1
}
}
RelativeMonthly
قد يبدو الجدول الزمني مثل "كل شهرين في يوم الاثنين الماضي":
"schedule": {
"relativeMonthly": {
"intervalMonths": 2,
"dayOfWeek": "Monday",
"weekIndex": "Last"
}
}
القيم الصالحة لتضمين weekIndex
First
وFourth
Second
Third
.Last
إضافة تكوين نافذة الصيانة
أضف تكوين نافذة الصيانة إلى نظام مجموعة AKS باستخدام az aks maintenanceconfiguration add
الأمر .
يضيف المثال الأول تكوينا جديدا default
يقوم بجدولة الصيانة للتشغيل من الساعة 1:00 صباحا إلى 2:00 صباحا كل يوم اثنين. يضيف المثال الثاني تكوينا جديدا aksManagedAutoUpgradeSchedule
يقوم بجدولة الصيانة لتشغيلها كل يوم جمعة ثالثة بين الساعة 12:00 صباحا و8:00 صباحا في المنطقة الزمنية UTC+5:30
.
# 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
إشعار
عند استخدام default
نوع تكوين، يمكنك حذف المعلمة --start-time
للسماح بالصيانة في أي وقت خلال يوم واحد.
تحديث نافذة الصيانة الحالية
تحديث تكوين صيانة موجود باستخدام az aks maintenanceconfiguration update
الأمر .
يحدث default
المثال التالي التكوين لجدولة الصيانة للتشغيل من الساعة 2:00 صباحا إلى 3:00 صباحا كل يوم اثنين:
az aks maintenanceconfiguration update --resource-group myResourceGroup --cluster-name myAKSCluster --name default --weekday Monday --start-hour 2
اسرد كافة نوافذ الصيانة في نظام المجموعة الحالي
سرد نوافذ تكوين الصيانة الحالية في نظام مجموعة AKS باستخدام az aks maintenanceconfiguration list
الأمر :
az aks maintenanceconfiguration list --resource-group myResourceGroup --cluster-name myAKSCluster
إظهار نافذة تكوين صيانة معينة في مجموعة موجودة
عرض نافذة تكوين صيانة معينة في نظام مجموعة AKS باستخدام az aks maintenanceconfiguration show
الأمر مع المعلمة --name
:
az aks maintenanceconfiguration show --resource-group myResourceGroup --cluster-name myAKSCluster --name aksManagedAutoUpgradeSchedule
يظهر إخراج المثال التالي نافذة الصيانة ل 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
}
حذف نافذة تكوين الصيانة في نظام مجموعة موجود
احذف نافذة تكوين الصيانة في نظام مجموعة AKS باستخدام az aks maintenanceconfiguration delete
الأمر .
يحذف المثال التالي تكوين الصيانة autoUpgradeSchedule
:
az aks maintenanceconfiguration delete --resource-group myResourceGroup --cluster-name myAKSCluster --name autoUpgradeSchedule
الأسئلة المتداولة
كيف يمكنني التحقق من تكوينات الصيانة الموجودة في نظام المجموعة الخاص بي؟
استخدم الأمر
az aks maintenanceconfiguration show
.هل يمكن أن تحدث الصيانة التفاعلية وغير المخطط لها خلال الفترات
notAllowedTime
أوnotAllowedDates
أيضا؟نعم. تحتفظ AKS بالحق في كسر هذه النوافذ لعمليات الصيانة غير المخطط لها والتفاعلية العاجلة أو الحرجة.
كيف يمكنني معرفة ما إذا حدث حدث صيانة؟
بالنسبة للإصدارات، تحقق من منطقة نظام المجموعة وابحث عن المعلومات في الإصدارات الأسبوعية لمعرفة ما إذا كانت تطابق جدول الصيانة الخاص بك. لعرض حالة الترقيات التلقائية، ابحث عن سجلات النشاط على نظام المجموعة. يمكنك أيضا البحث عن أحداث معينة متعلقة بالترقية، كما هو مذكور في ترقية نظام مجموعة AKS.
تصدر AKS أيضا أحداث Azure Event Grid المتعلقة بالترقية. لمعرفة المزيد، راجع AKS كمصدر شبكة الأحداث.
هل يمكنني استخدام أكثر من تكوين صيانة واحد في نفس الوقت؟
نعم، يمكنك تشغيل جميع التكوينات الثلاثة في وقت واحد:
default
وaksManagedAutoUpgradeSchedule
و.aksManagedNodeOSUpgradeSchedule
إذا تداخلت النوافذ، تقرر AKS ترتيب التشغيل.لقد قمت بتكوين نافذة صيانة، ولكن الترقية لم تحدث. لماذا؟
تحتاج الترقية التلقائية ل AKS إلى فترة زمنية معينة، لا تزيد عادة عن 15 دقيقة، لأخذ نافذة الصيانة في الاعتبار. نوصي ب 15 دقيقة على الأقل بين إنشاء أو تحديث تكوين الصيانة ووقت البدء المجدول.
تأكد أيضا من بدء تشغيل نظام المجموعة عند بدء نافذة الصيانة المخطط لها. إذا تم إيقاف نظام المجموعة، يتم إلغاء تخصيص وحدة التحكم الخاصة بها ولا يمكن تنفيذ أي عمليات.
لماذا تمت ترقية أحد تجمعات الوكلاء خارج نافذة الصيانة؟
إذا لم تتم ترقية تجمع الوكلاء (على سبيل المثال، لأن ميزانيات تعطيل الجراب حالت دون ذلك)، فقد تتم ترقيته لاحقا، خارج نافذة الصيانة. يسمى هذا السيناريو "ترقية اللحاق بالركب". يتجنب السماح بترقية تجمعات الوكلاء بإصدار مختلف عن مستوى التحكم AKS.
سبب آخر وراء إمكانية ترقية تجمع عامل بشكل غير متوقع هو عدم وجود تكوين صيانة محدد، أو إذا تم حذفه. في هذه الحالة، ستتم ترقية نظام مجموعة مع ترقية تلقائية ولكن بدون تكوين صيانة في أوقات عشوائية (جدول احتياطي)، والتي قد تكون إطارا زمنيا غير المرغوب فيه.
هل هناك أي أفضل الممارسات لتكوينات الصيانة؟
نوصي بتعيين جدول تحديثات أمان نظام التشغيل للعقدة إلى إيقاع أسبوعي إذا كنت تستخدم القناة
NodeImage
، لأنه يتم شحن صورة عقدة جديدة كل أسبوع. يمكنك أيضا الاشتراك في القناةSecurityPatch
لتلقي تحديثات الأمان اليومية.قم بتعيين جدول الترقية التلقائية إلى إيقاع شهري للبقاء على اطلاع بنهج دعم Kubernetes N-2.
للحصول على مناقشة مفصلة حول أفضل ممارسات الترقية والاعتبارات الأخرى، راجع تصحيح AKS وإرشادات الترقية.
هل يمكنني تكوين جميع مجموعاتي في اشتراك واحد لاستخدام نفس تكوين الصيانة؟
لا نوصي باستخدام نفس تكوين الصيانة لمجموعات متعددة في اشتراك واحد، لأن القيام بذلك يمكن أن يؤدي إلى أخطاء تقييد ARM التي تتسبب في فشل ترقيات نظام المجموعة. بدلا من ذلك، نوصي بتقسيم نوافذ الصيانة لكل نظام مجموعة لتجنب هذه الأخطاء.
الخطوات التالية
- للبدء في ترقية نظام مجموعة AKS، راجع خيارات الترقية لمجموعات AKS.
Azure Kubernetes Service