إيقاف ترقيات نظام مجموعة Azure Kubernetes Service (AKS) تلقائيا على تغييرات كسر واجهة برمجة التطبيقات

توضح هذه المقالة كيفية إيقاف ترقيات نظام مجموعة Azure Kubernetes Service (AKS) تلقائيا على تغييرات كسر واجهة برمجة التطبيقات.

نظرة عامة

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

يمكنك تكوين نظام مجموعة AKS لإيقاف عمليات الترقية التي تتكون تلقائيا من تغيير إصدار ثانوي مع واجهات برمجة التطبيقات المهملة وتنبيهك إلى المشكلة. تساعدك هذه الميزة على تجنب الاضطرابات غير المتوقعة وتمنحك الوقت لمعالجة واجهات برمجة التطبيقات المهملة قبل متابعة الترقية.

قبل البدء

قبل البدء، تأكد من تلبية المتطلبات الأساسية التالية:

  • عملية الترقية هي تغيير إصدار ثانوي Kubernetes لمستوى التحكم في نظام المجموعة.
  • إصدار Kubernetes الذي تقوم بالترقية إليه هو 1.26 أو أحدث.
  • يجب أن يحدث آخر استخدام شوهد لواجهات برمجة التطبيقات المهملة للإصدار المستهدف الذي تقوم بالترقية إليه في غضون 12 ساعة قبل عملية الترقية. تسجل AKS الاستخدام كل ساعة، لذلك لا يضمن ظهور أي استخدام لواجهات برمجة التطبيقات المهملة في غضون ساعة واحدة في الكشف.

التخفيف من عمليات الترقية المتوقفة

إذا استوفيت المتطلبات الأساسية، فحاول إجراء ترقية وتلقيت رسالة خطأ مشابهة لرسالة الخطأ التالية:

Bad Request({
  "code": "ValidationError",
  "message": "Control Plane upgrade is blocked due to recent usage of a Kubernetes API deprecated in the specified version. Please refer to https://kubernetes.io/docs/reference/using-api/deprecation-guide to migrate the usage. To bypass this error, set enable-force-upgrade in upgradeSettings.overrideSettings. Bypassing this error without migrating usage will result in the deprecated Kubernetes API calls failing. Usage details: 1 error occurred:\n\t* usage has been detected on API flowcontrol.apiserver.k8s.io.prioritylevelconfigurations.v1beta1, and was recently seen at: 2023-03-23 20:57:18 +0000 UTC, which will be removed in 1.26\n\n",
  "subcode": "UpgradeBlockedOnDeprecatedAPIUsage"
})

لديك خياران للتخفيف من المشكلة: يمكنك إزالة استخدام واجهات برمجة التطبيقات المهملة (مستحسن) أو تجاوز التحقق من الصحة لتجاهل تغييرات واجهة برمجة التطبيقات.

  1. في مدخل Microsoft Azure، انتقل إلى مورد نظام المجموعة وحدد تشخيص المشكلات وحلها

  2. حدد Create و Upgrade و Delete و Scale>Kubernetes API مهملة.

    لقطة شاشة لمدخل Azure تعرض قسم

  3. انتظر 12 ساعة من وقت مشاهدة آخر استخدام مهمل لواجهة برمجة التطبيقات. تحقق من الفعل في استخدام واجهة برمجة التطبيقات المهملة لمعرفة ما إذا كانت ساعة. إذا كانت ساعة، يمكنك الانتظار حتى ينخفض الاستخدام إلى الصفر. (يمكنك أيضا التحقق من استخدام واجهة برمجة التطبيقات السابق عن طريق تمكين رؤى الحاوية واستكشاف سجلات تدقيق kube.)

  4. أعد محاولة ترقية نظام المجموعة.

تجاوز التحقق من الصحة لتجاهل تغييرات واجهة برمجة التطبيقات

إشعار

يتطلب هذا الأسلوب استخدام الإصدار 2.57 من Azure CLI أو أحدث. إذا كان ملحق CLI للمعاينة مثبتا لديك، فستحتاج إلى التحديث إلى الإصدار أو الإصدار 3.0.0b10 الأحدث. لا ينصح بهذا الأسلوب، حيث قد لا تعمل واجهات برمجة التطبيقات المهملة في إصدار Kubernetes المستهدف على المدى الطويل. نوصي بإزالتها في أقرب وقت ممكن بعد اكتمال الترقية.

  1. تجاوز التحقق من الصحة لتجاهل تغييرات كسر واجهة برمجة التطبيقات واستدعاء ترقية. حدد العلامة enable-force-upgrade وقم بتعيين الخاصية upgrade-override-until لتعريف نهاية النافذة التي يتم خلالها تجاوز التحقق من الصحة. إذا لم يتم تعيين أي قيمة، تعيين النافذة افتراضيا إلى ثلاثة أيام من الوقت الحالي. يجب أن يكون التاريخ والوقت المحددان في المستقبل.

    az aks upgrade --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME --kubernetes-version $KUBERNETES_VERSION --enable-force-upgrade --upgrade-override-until 2023-10-01T13:00:00Z
    

    إشعار

    Z هو معين المنطقة لإزاحة التوقيت العالمي المتفق عليه/GMT الصفرية، والمعروفة أيضا باسم وقت "الزولو". يعين هذا المثال نهاية النافذة إلى 13:00:00 GMT. لمزيد من المعلومات، راجع تمثيلات التاريخ والوقت المجمعة.

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

توضح لك هذه المقالة كيفية إيقاف ترقيات نظام مجموعة AKS تلقائيا على تغييرات كسر واجهة برمجة التطبيقات. لمعرفة المزيد حول المزيد من خيارات الترقية لمجموعات AKS، راجع خيارات الترقية لمجموعات Azure Kubernetes Service (AKS).