البرنامج التعليمي - ترقية نظام مجموعة Azure Kubernetes Service (AKS)

كجزء من دورة حياة التطبيق والكتلة، قد تحتاج إلى الترقية إلى أحدث إصدار متوفر من Kubernetes. يمكنك ترقية نظام مجموعة Azure Kubernetes Service (AKS) باستخدام Azure CLI أو Azure PowerShell أو مدخل Azure.

في هذا البرنامج التعليمي، الجزء السابع من سبعة، يمكنك ترقية نظام مجموعة AKS. ‏‫ستتعلم كيفية:

  • تحديد إصدارات Kubernetes الحالية والمتاحة.
  • ترقية عقد Kubernetes الخاصة بك.
  • التحقق من صحة ترقية ناجحة.

قبل البدء

في البرامج التعليمية السابقة، قمت بحزم تطبيق في صورة حاوية وتحميل صورة الحاوية إلى Azure Container Registry (ACR). قمت أيضا بإنشاء مجموعة AKS ونشر تطبيق إليها. إذا لم تكن قد أكملت هذه الخطوات وتريد المتابعة، فابدأ بالبرنامج التعليمي 1 - إعداد التطبيق ل AKS.

إذا كنت تستخدم Azure CLI، يتطلب هذا البرنامج التعليمي الإصدار 2.34.1 من Azure CLI أو أحدث. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

إذا كنت تستخدم Azure PowerShell، يتطلب هذا البرنامج التعليمي الإصدار 5.9.0 من Azure PowerShell أو أحدث. قم بتشغيل Get-InstalledModule -Name Az للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت وحدة Azure PowerShell.

قم بالحصول على إصدارات نظام المجموعة المتوفرة

  • قبل الترقية، تحقق من إصدارات Kubernetes المتوفرة لنظام المجموعة باستخدام az aks get-upgrades الأمر .

    az aks get-upgrades --resource-group myResourceGroup --name myAKSCluster
    

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

    {
      "agentPoolProfiles": null,
      "controlPlaneProfile": {
        "kubernetesVersion": "1.26.6",
        ...
        "upgrades": [
          {
            "isPreview": null,
            "kubernetesVersion": "1.27.1"
          },
          {
            "isPreview": null,
            "kubernetesVersion": "1.27.3"
          }
        ]
      },
      ...
    }
    

ترقية نظام مجموعة AKS

يتم تطويق عقد AKS بعناية واستنزافها لتقليل أي اضطرابات محتملة للتطبيقات قيد التشغيل. أثناء هذه العملية، تنفذ AKS الخطوات التالية:

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

إشعار

إذا لم يتم تحديد تصحيح، يقوم نظام المجموعة بالترقية تلقائيا إلى أحدث تصحيح GA للإصدار الثانوي المحدد. على سبيل المثال، تعيين --kubernetes-version إلى 1.21 النتائج في ترقية نظام المجموعة إلى 1.21.9.

لمزيد من المعلومات، راجع ترقيات الإصدار الثانوي ل Kubernetes المدعومة في AKS.

يمكنك إما ترقية نظام المجموعة يدويا أو تكوين ترقيات نظام المجموعة التلقائية. نوصي بتكوين ترقيات نظام المجموعة التلقائية للتأكد من أن مجموعتك تعمل دائما بأحدث إصدار من Kubernetes.

ترقية نظام المجموعة يدويا

  • قم بترقية نظام المجموعة باستخدام az aks upgrade الأمر .

    az aks upgrade \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --kubernetes-version KUBERNETES_VERSION
    

    إشعار

    يمكنك ترقية إصدار ثانوي واحد فقط في كل مرة. على سبيل المثال، يمكنك الترقية من 1.14.x إلى 1.15.x، ولكن لا يمكنك الترقية من 1.14.x إلى 1.16.x مباشرة. للترقية من 1.14.x إلى 1.16.x، يجب أولا الترقية من 1.14.x إلى 1.15.x، ثم إجراء ترقية أخرى من 1.15.x إلى 1.16.x.

    يظهر إخراج المثال التالي نتيجة الترقية إلى 1.27.3. لاحظ أن kubernetesVersion يظهر الآن 1.27.3:

    {
      "agentPoolProfiles": [
        {
          "count": 3,
          "maxPods": 110,
          "name": "nodepool1",
          "osType": "Linux",
          "vmSize": "Standard_DS1_v2",
        }
      ],
      "dnsPrefix": "myAKSClust-myResourceGroup-19da35",
      "enableRbac": false,
      "fqdn": "myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io",
      "id": "/subscriptions/<Subscription ID>/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster",
      "kubernetesVersion": "1.27.3",
      "location": "eastus",
      "name": "myAKSCluster",
      "type": "Microsoft.ContainerService/ManagedClusters"
    }
    

تكوين ترقيات نظام المجموعة التلقائية

  • قم بتعيين قناة ترقية تلقائية على نظام المجموعة باستخدام az aks update الأمر مع تعيين المعلمة --auto-upgrade-channel إلى patch.

    az aks update --resource-group myResourceGroup --name myAKSCluster --auto-upgrade-channel patch
    

لمزيد من المعلومات، راجع ترقية نظام مجموعة خدمة Azure Kubernetes (AKS) تلقائيا.

ترقية صور عقدة AKS

يوفر AKS بانتظام صور عقدة جديدة. يتم تحديث صور عقدة Linux أسبوعيا، ويتم تحديث صور عقدة Windows شهريا. نوصي بترقية صور العقدة بشكل متكرر لاستخدام أحدث ميزات AKS وتحديثات الأمان. لمزيد من المعلومات، راجع ترقية صور العقدة في خدمة Azure Kubernetes (AKS). لتكوين ترقيات صورة العقدة التلقائية، راجع ترقية صور نظام تشغيل عقدة نظام مجموعة Azure Kubernetes Service (AKS) تلقائيا.

عرض أحداث الترقية

إشعار

عند ترقية نظام المجموعة الخاص بك، قد تحدث أحداث Kubernetes التالية على العقد:

  • الطفرة: إنشاء عقدة طفرة.
  • استنزاف: إخلاء الحجيرات من العقدة. كل جراب لديه مهلة خمس دقائق لإكمال الإخلاء.
  • التحديث: نجح تحديث عقدة أو فشل.
  • حذف: حذف عقدة زيادة.
  • عرض أحداث الترقية في مساحات الأسماء الافتراضية kubectl get events باستخدام الأمر .

    kubectl get events --field-selector source=upgrader
    

    يظهر إخراج المثال التالي بعض الأحداث المذكورة أعلاه أثناء الترقية:

    ...
    default 2m1s Normal Drain node/aks-nodepool1-96663640-vmss000001 Draining node: [aks-nodepool1-96663640-vmss000001]
    ...
    default 9m22s Normal Surge node/aks-nodepool1-96663640-vmss000002 Created a surge node [aks-nodepool1-96663640-vmss000002 nodepool1] for agentpool %!s(MISSING)
    ...
    

التحقق من صحة ترقية

  • تأكد من نجاح الترقية az aks show باستخدام الأمر .

    az aks show --resource-group myResourceGroup --name myAKSCluster --output table
    

    يظهر إخراج المثال التالي نظام مجموعة AKS الذي يقوم بتشغيل KubernetesVersion 1.27.3:

    Name          Location    ResourceGroup    KubernetesVersion    CurrentKubernetesVersion  ProvisioningState    Fqdn
    ------------  ----------  ---------------  -------------------  ------------------------  -------------------  ----------------------------------------------------------------
    myAKSCluster  eastus      myResourceGroup  1.27.3               1.27.3                    Succeeded            myaksclust-myresourcegroup-19da35-bd54a4be.hcp.eastus.azmk8s.io
    

قم بحذف نظام المجموعة

نظرا لأن هذا البرنامج التعليمي هو الجزء الأخير من السلسلة، فقد ترغب في حذف مجموعة AKS لتجنب تكبد رسوم Azure.

  • قم بإزالة مجموعة الموارد وخدمة الحاوية وجميع الموارد ذات الصلة باستخدام az group delete الأمر .

    az group delete --name myResourceGroup --yes --no-wait
    

إشعار

عند حذف نظام المجموعة، لا تتم إزالة أساس خدمة Microsoft Entra المستخدم بواسطة نظام مجموعة AKS. للحصول على خطوات حول كيفية إزالة أساس الخدمة، راجع الاعتبارات الأساسية لخدمة AKS وحذفها. إذا استخدمت هوية مدارة، تتم إدارة الهوية بواسطة النظام الأساسي ولا تتطلب توفير أي أسرار أو تدويرها.

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

في هذا البرنامج التعليمي، قمت بترقية Kubernetes في مجموعة AKS. لقد تعرفت على كيفية:

  • تحديد إصدارات Kubernetes الحالية والمتاحة.
  • ترقية عقد Kubernetes الخاصة بك.
  • التحقق من صحة ترقية ناجحة.

لمزيد من المعلومات حول AKS، راجع نظرة عامة على AKS. للحصول على إرشادات حول كيفية إنشاء حلول كاملة باستخدام AKS، راجع إرشادات حل AKS.