ترقية مستوى التحكم في العنقود لخدمة خدمة Azure Kubernetes ‏(AKS)

تتكون عناقيد خدمة Azure Kubernetes ‏(AKS) من مكونين رئيسيين: مستوى التحكم الذي تديره Azureوتجمعات العقد التي تعمل فيها أحمال عملك. تركز هذه المقالة على ترقية مستوى التحكم بشكل مستقل، مما يسمح لك باعتماد إصدارات Kubernetes جديدة لميزات خوادم API مع إدارة ترقيات تجمع العقد بشكل منفصل.

قبل البدء

  • إذا كنت تستخدم Azure CLI، تتطلب هذه المقالة الإصدار 2.34.1 من Azure CLI أو أحدث. استخدم الأمر az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
  • إذا كنت تستخدم Azure PowerShell، تتطلب هذه المقالة إصدار Azure PowerShell 5.9.0 أو أحدث. استخدم cmdlet Get-InstalledModule -Name Az للعثور على النسخة. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت وحدة Azure PowerShell.
  • يتطلب تنفيذ عمليات الترقية Microsoft.ContainerService/managedClusters/agentPools/write دور RBAC. لمزيد من البحث عن أدوار Azure RBAC، راجع عمليات موفر موارد Azure.
  • يتم تعطيل واجهات برمجة التطبيقات التجريبية بشكل افتراضي عند الترقية إلى نسخ كوبيرنتس 1.30 و1.27 LTS.

Warning

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

نظرة عامة على أنواع ترقيات AKS

يوضح الجدول التالي ثلاثة أنواع من ترقيات AKS، مع تسليط الضوء على نطاقها وحالات استخدامها:

نوع الترقية النطاق حالة الاستخدام
طائرة التحكم فقط خادم API، إلخ، مدير التحكم، الجدولة اختبر واجهات برمجة تطبيقات Kubernetes الجديدة قبل ترقية أعباء العمل
مجموعة كاملة مستوى التحكم وجميع مجموعات العقد ترقية قياسية للحفاظ على تحديث العنقود
مجموعة العقد فقط مجموعات العقد المحددة الإطلاق المدرج بعد ترقية طائرة التحكم

Tip

ترقية مستوى التحكم أولا تتيح لك التحقق من توافق واجهة برمجة تطبيقات Kubernetes قبل التأثير على أحمال العمل الجارية. لاستراتيجيات ترقية تجمع العقد، انظر إعداد الترقيات المتدحرجة.

قواعد ترقية نسخ Kubernetes

عند ترقية مجموعة AKS مدعومة، لا يمكنك تخطي إصدارات Kubernetes الثانوية. يجب إجراء جميع الترقيات بالتتابع حسب رقم الإصدار الثانوي. على سبيل المثال، يسمح بالترقيات بين 1.28.x ->1.29.x أو 1.29.x ->1.30.x . 1.28.x ->1.30.x غير مسموح به.

يمكن أن يكون مستوى التحكم متقدما على نسختين ثانويتين من مجموعات العقد. على سبيل المثال، إذا كان مستوى التحكم لديك عند 1.30.x، يمكن أن تكون مجموعات العقد عند 1.28.x، 1.29.x، أو 1.30.x.

تحقق من وجود تحديثات متاحة ل AKS

Tip

للبقاء على اطلاع بأحدث إصدارات وتحديثات AKS، راجع متتبع إصدارات AKS.

تحقق من وجود إصدارات Kubernetes المتاحة لمجموعة AKS الخاصة بك باستخدام az aks get-upgrades الأمر.

az aks get-upgrades --resource-group <resource-group-name> --name <cluster-name> --output table

يظهر إخراج المثال التالي الإصدار الحالي ك 1.28.9 ويسرد الإصدارات المتوفرة ضمن upgrades:

Name     ResourceGroup          MasterVersion    Upgrades
-------  ---------------        ---------------  --------------
default  <resource-group-name>  1.28.9           1.29.2, 1.29.4

ترقية مستوى التحكم AKS فقط

  1. قم بترقية مستوى التحكم باستخدام az aks upgrade الأمر مع العلم --control-plane-only . المثال التالي يطور مستوى التحكم إلى إصدار Kubernetes 1.29.4:

    az aks upgrade \
        --resource-group <resource-group-name> \
        --name <cluster-name> \
        --kubernetes-version 1.29.4 \
        --control-plane-only
    
  2. تأكد من نجاح ترقية طائرة التحكم باستخدام الأمر az aks show .

    az aks show --resource-group <resource-group-name> --name <cluster-name> --output table
    

    يظهر الإخراج المثال التالي أن مستوى التحكم يعمل الآن على 1.29.4:

    Name            Location    ResourceGroup          KubernetesVersion    ProvisioningState    Fqdn
    ------------    ----------  ---------------        -------------------  -------------------  ------------------------------------------------
    <cluster-name>  eastus      <resource-group-name>  1.29.4               Succeeded            <cluster-name>-dns-123abcd4.hcp.eastus.azmk8s.io
    
  3. تحقق من بقاء إصدارات تجمع العقد دون تغيير باستخدام أمر [az aks nodepool list][az-aks-nodepool-list].

    az aks nodepool list --resource-group <resource-group-name> --cluster-name <cluster-name> --query "[].{Name:name,Version:orchestratorVersion}" --output table
    

    في المخرج، يجب أن تظهر تجمعات العقد إصدار كوبيرنتيز السابق.

ترقية عنقود AKS الكامل

إشعار

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

قم بترقية المجموعة الكاملة (مستوى التحكم وجميع مجموعات العقد) باستخدام az aks upgrade الأمر. المثال التالي يطور العنقود إلى إصدار Kubernetes 1.29.4:

az aks upgrade \
    --resource-group <resource-group-name> \
    --name <cluster-name> \
    --kubernetes-version 1.29.4

الأسئلة المتداولة

لماذا تم ترقية مجموعات العقد الخاصة بي بينما كنت فقط أطور مستوى التحكم؟

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

هل يمكنني ترقية مجموعات العقد قبل مستوى التحكم؟

لا يجب أن تكون نسخة مستوى التحكم دائما مساوية أو أكبر من أي نسخة من مجموعة العقد. يجب عليك ترقية مستوى التحكم أولا.

كم يستغرق ترقية طائرة التحكم؟

عادة ما تكتمل ترقيات مستوى التحكم خلال 5-15 دقيقة، حسب تكوين العنقود وحمل منطقة Azure. ترقيات تجمع العقد تستغرق وقتا أطول لأنها تتطلب تفريغ وإعادة تصوير العقد.

حل مشاكل ترقية مستوى التحكم

لا توجد ترقيات متاحة

إذا az aks get-upgrades لم تظهر أي ترقيات متاحة، فقد يكون مجموعتك التالية:

  • أنا بالفعل على أحدث إصدار مدعوم.
  • على نسخة غير مدعومة تتطلب الترحيل.

بالنسبة للإصدارات غير المدعومة، أنشئ مجموعة جديدة مع نسخة مدعومة وقم بترحيل أعباء العمل.

فشل التحديث بسبب واجهات برمجة التطبيقات المهجورة

قبل الترقية، تحقق من وجود واجهات برمجة التطبيقات القديمة باستخدام أدوات مثل kube-no-trouble (kubent):

kubent

قم بتحديث بياناتك لاستخدام إصدارات API المدعومة قبل الترقية.