البرنامج التعليمي - ترقية نظام مجموعة 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.28.9 ويسرد الإصدارات المتوفرة ضمن
upgrades
:{ "agentPoolProfiles": null, "controlPlaneProfile": { "kubernetesVersion": "1.28.9", ... "upgrades": [ { "isPreview": null, "kubernetesVersion": "1.29.4" }, { "isPreview": null, "kubernetesVersion": "1.29.2" } ] }, ... }
ترقية نظام مجموعة AKS
يتم تطويق عقد AKS بعناية واستنزافها لتقليل أي اضطرابات محتملة للتطبيقات قيد التشغيل. أثناء هذه العملية، تنفذ AKS الخطوات التالية:
- إضافة عقدة مخزن مؤقت جديدة (أو العديد من العقد كما تم تكوينها في الحد الأقصى للطفرة) إلى المجموعة التي تقوم بتشغيل إصدار Kubernetes المحدد.
- يطوق ويصرف إحدى العقد القديمة لتقليل تعطيل التطبيقات قيد التشغيل. إذا كنت تستخدم الحد الأقصى من الارتفاع المفاجئ، فإنه يطوق ويصرف العديد من العقد في نفس الوقت مثل عدد عقد المخزن المؤقت المحددة.
- عندما يتم استنزاف العقدة القديمة بالكامل، يتم إعادة تصورها لتلقي الإصدار الجديد وتصبح عقدة المخزن المؤقت للعقدة التالية المراد ترقيتها.
- تتكرر هذه العملية حتى تتم ترقية كافة العقد في الكتلة.
- في نهاية العملية، يتم حذف عقدة المخزن المؤقت الأخيرة، مع الحفاظ على عدد عقدة العامل الحالية ورصيد المنطقة.
إشعار
إذا لم يتم تحديد تصحيح، يقوم نظام المجموعة بالترقية تلقائيا إلى أحدث تصحيح GA للإصدار الثانوي المحدد. على سبيل المثال، تعيين --kubernetes-version
إلى 1.28
النتائج في ترقية نظام المجموعة إلى 1.28.9
.
لمزيد من المعلومات، راجع ترقيات الإصدار الثانوي ل Kubernetes المدعومة في AKS.
يمكنك إما ترقية نظام المجموعة يدويا أو تكوين ترقيات نظام المجموعة التلقائية. نوصي بتكوين ترقيات نظام المجموعة التلقائية للتأكد من أن مجموعتك تعمل دائما بأحدث إصدار من Kubernetes.
ترقية نظام المجموعة يدويا
قم بترقية نظام المجموعة باستخدام
az aks upgrade
الأمر .az aks upgrade \ --resource-group myResourceGroup \ --name myAKSCluster \ --kubernetes-version KUBERNETES_VERSION
ستتم مطالبتك بتأكيد عملية الترقية، وتأكيد رغبتك في ترقية مستوى التحكم وجميع تجمعات العقد إلى الإصدار المحدد من Kubernetes:
Are you sure you want to perform this operation? (y/N): y Since control-plane-only argument is not specified, this will upgrade the control plane AND all nodepools to version 1.29.2. Continue? (y/N): y
إشعار
يمكنك ترقية إصدار ثانوي واحد فقط في كل مرة. على سبيل المثال، يمكنك الترقية من 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.29.2. لاحظ أن
kubernetesVersion
يظهر الآن 1.29.2:{ ... "agentPoolProfiles": [ { ... "count": 3, "currentOrchestratorVersion": "1.29.2", "maxPods": 110, "name": "nodepool1", "nodeImageVersion": "AKSUbuntu-2204gen2containerd-202405.27.0", "orchestratorVersion": "1.29.2", "osType": "Linux", "upgradeSettings": { "drainTimeoutInMinutes": null, "maxSurge": "10%", "nodeSoakDurationInMinutes": null, "undrainableNodeBehavior": null }, "vmSize": "Standard_DS2_v2", ... } ], ... "currentKubernetesVersion": "1.29.2", "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.29.2", "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
يظهر إخراج المثال التالي بعض الأحداث المذكورة أعلاه أثناء الترقية:
LAST SEEN TYPE REASON OBJECT MESSAGE ... 5m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 5m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Deleting node aks-nodepool1-96663640-vmss000000 from API server 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully reimaged node: aks-nodepool1-96663640-vmss000000 4m Normal Upgrade node/aks-nodepool1-96663640-vmss000000 Successfully upgraded node: aks-nodepool1-96663640-vmss000000 4m Normal Drain node/aks-nodepool1-96663640-vmss000000 Draining node: aks-nodepool1-96663640-vmss000000 ...
التحقق من صحة ترقية
تأكد من نجاح الترقية
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.29.2 1.29.2 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.
Azure Kubernetes Service