استخدام الصيانة المخطط لها لجدولة الترقيات والتحكم فيها لنظام مجموعة خدمة Azure Kubernetes

توضح هذه المقالة كيفية استخدام الصيانة المخطط لها لجدولة ترقيات صورة المجموعة والعقدة والتحكم فيها في خدمة Azure Kubernetes (AKS).

يتم إجراء الصيانة المنتظمة على نظام مجموعة AKS تلقائيا. هناك نوعان من عمليات الصيانة:

  • تتضمن الصيانة التي بدأتها AKS الإصدارات الأسبوعية التي تقوم بها AKS للحفاظ على نظام المجموعة الخاص بك محدثا بأحدث الميزات والإصلاحات.
  • تتضمن الصيانة التي بدأها المستخدم الترقيات التلقائية لنظام المجموعة وتحديثاتالأمان التلقائية لنظام تشغيل العقدة (OS).

عند استخدام ميزة الصيانة المخطط لها في AKS، يمكنك تشغيل كلا النوعين من الصيانة في إيقاع من اختيارك لتقليل تأثير حمل العمل. يمكنك استخدام الصيانة المخطط لها لجدولة توقيت الترقيات التلقائية، ولكن تمكين الصيانة المخطط لها أو تعطيلها لن يؤدي إلى تمكين الترقيات التلقائية أو تعطيلها.

قبل البدء

  • تفترض هذه المقالة أن لديك تجمع AKS قائمًا. إذا لم يكن لديك نظام مجموعة AKS، فشاهد إنشاء نظام مجموعة AKS.
  • إذا كنت تستخدم Azure CLI، قم بالترقية إلى أحدث إصدار باستخدام az upgrade الأمر .

الاعتبارات

عند استخدام الصيانة المخطط لها، تنطبق الاعتبارات التالية:

  • تحتفظ AKS بالحق في كسر نوافذ الصيانة المخطط لها لعمليات الصيانة غير المخطط لها والتفاعلية العاجلة أو الحرجة. قد تعمل عمليات الصيانة هذه خلال أو notAllowedTimenotAllowedDates الفترات المحددة في التكوين الخاص بك.
  • تعتبر عمليات الصيانة أفضل جهد فقط ولا يضمن حدوثها داخل نافذة محددة.

جدولة أنواع التكوين للصيانة المخطط لها

تتوفر ثلاثة أنواع لتكوين الجدول للصيانة المخطط لها:

  • 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 تنطبق هذه الخاصية فقط عند إنشاء نافذة الصيانة باستخدام ملف تكوين. غير قابل للتطبيق

تحتوي aksManagedAutoUpgradeSchedule نافذة الصيانة أو aksManagedNodeOSUpgradeSchedule على الخصائص التالية:

Name الوصف القيمة الافتراضية
utcOffset المنطقة الزمنية لصيانة نظام المجموعة. +00:00
startDate التاريخ الذي تبدأ فيه نافذة الصيانة حيز التنفيذ. التاريخ الحالي في وقت الإنشاء
startTime وقت بدء الصيانة، استنادا إلى المنطقة الزمنية التي يحددها utcOffset. غير قابل للتطبيق
schedule تكرار الترقية. تتوفر ثلاثة أنواع: Weeklyو AbsoluteMonthlyو.RelativeMonthly غير قابل للتطبيق
intervalDays الفاصل الزمني بالأيام لتشغيل الصيانة. لا ينطبق إلا على aksManagedNodeOSUpgradeSchedule. غير قابل للتطبيق
intervalWeeks الفاصل الزمني بالأسابيع لتشغيل الصيانة. غير قابل للتطبيق
intervalMonths الفاصل الزمني بالأشهر لتشغيل الصيانة. غير قابل للتطبيق
dayOfWeek اليوم المحدد من الأسبوع لبدء الصيانة. غير قابل للتطبيق
durationHours مدة النافذة للصيانة لتشغيلها. غير قابل للتطبيق
notAllowedDates مجموعة من التواريخ التي لا يمكن للصيانة تشغيلها، والتي تحددها start الخصائص التابعة.end لا ينطبق إلا عند إنشاء نافذة الصيانة باستخدام ملف تكوين. غير قابل للتطبيق

أنواع الجدولة

تتوفر أربعة أنواع جداول متوفرة: Dailyو WeeklyAbsoluteMonthlyو و.RelativeMonthly

Weeklyأنواع الجدولة AbsoluteMonthlyو و RelativeMonthly قابلة للتطبيق فقط على aksManagedClusterAutoUpgradeScheduleaksManagedNodeOSUpgradeSchedule والتكوينات. 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"
    }
}

القيم الصالحة لتضمين weekIndexFirstوFourthSecondThird.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 إلى قدر معين من الوقت لأخذ نافذة الصيانة في الاعتبار. نوصي ب 24 ساعة على الأقل بين إنشاء تكوين الصيانة أو تحديثه ووقت البدء المجدول.

    تأكد أيضا من بدء تشغيل نظام المجموعة عند بدء نافذة الصيانة المخطط لها. إذا تم إيقاف نظام المجموعة، يتم إلغاء تخصيص وحدة التحكم الخاصة بها ولا يمكن تنفيذ أي عمليات.

  • لماذا تمت ترقية أحد تجمعات الوكلاء خارج نافذة الصيانة؟

    إذا لم تتم ترقية تجمع الوكلاء (على سبيل المثال، لأن ميزانيات تعطيل الجراب حالت دون ذلك)، فقد تتم ترقيته لاحقا، خارج نافذة الصيانة. يسمى هذا السيناريو "ترقية اللحاق بالركب". يتجنب السماح بترقية تجمعات الوكلاء بإصدار مختلف عن مستوى التحكم AKS.

  • هل هناك أي أفضل الممارسات لتكوينات الصيانة؟

    نوصي بتعيين جدول تحديثات أمان نظام التشغيل للعقدة إلى إيقاع أسبوعي إذا كنت تستخدم القناة NodeImage ، لأنه يتم شحن صورة عقدة جديدة كل أسبوع. يمكنك أيضا الاشتراك في القناة SecurityPatch لتلقي تحديثات الأمان اليومية.

    قم بتعيين جدول الترقية التلقائية إلى إيقاع شهري للبقاء على اطلاع بنهج دعم Kubernetes N-2.

    للحصول على مناقشة مفصلة حول أفضل ممارسات الترقية والاعتبارات الأخرى، راجع تصحيح AKS وإرشادات الترقية.

الخطوات التالية