ترقية صور عقدة خدمة Azure Kubernetes Service (AKS)

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

توضح هذه المقالة كيفية ترقية صور عقدة نظام مجموعة AKS وكيفية تحديث صور تجمع العقد دون ترقية إصدار Kubernetes. للحصول على معلومات حول ترقية إصدار Kubernetes لنظام المجموعة، راجع ترقية نظام مجموعة AKS.

إشعار

يجب أن تستخدم الكتلة AKS مجموعات مقياس الجهاز الظاهري للعقد.

لا يمكن الرجوع إلى إصدار صورة عقدة (على سبيل المثال AKSUbuntu-2204 إلى AKSUbuntu-1804، أو AKSUbuntu-2204-202308.01.0 إلى AKSUbuntu-2204-202307.27.0).

التحقق من ترقيات صورة العقدة المتوفرة

تحقق من ترقيات صورة العقدة المتوفرة az aks nodepool get-upgrades باستخدام الأمر .

az aks nodepool get-upgrades \
    --nodepool-name mynodepool \
    --cluster-name myAKSCluster \
    --resource-group myResourceGroup

يظهر latestNodeImageVersionالإخراج ، كما في المثال التالي:

{
  "id": "/subscriptions/XXXX-XXX-XXX-XXX-XXXXX/resourcegroups/myResourceGroup/providers/Microsoft.ContainerService/managedClusters/myAKSCluster/agentPools/mynodepool/upgradeProfiles/default",
  "kubernetesVersion": "1.17.11",
  "latestNodeImageVersion": "AKSUbuntu-1604-2020.10.28",
  "name": "default",
  "osType": "Linux",
  "resourceGroup": "myResourceGroup",
  "type": "Microsoft.ContainerService/managedClusters/agentPools/upgradeProfiles",
  "upgrades": null
}

يظهر AKSUbuntu-1604-2020.10.28 إخراج المثال على أنه latestNodeImageVersion.

قارن أحدث إصدار مع إصدار صورة العقدة az aks nodepool show الحالية باستخدام الأمر .

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --query nodeImageVersion

يجب أن يبدو المخرج الخاص بك مشابهًا للمثال التالي:

"AKSUbuntu-1604-2020.10.08"

في هذا المثال، هناك ترقية إصدار صورة عقدة متوفرة، وهي من إصدار AKSUbuntu-1604-2020.10.08 إلى إصدار AKSUbuntu-1604-2020.10.28.

ترقية جميع صور العقدة في جميع تجمعات العقد

قم بترقية صورة العقدة az aks upgrade باستخدام الأمر مع العلامة --node-image-only .

az aks upgrade \
    --resource-group myResourceGroup \
    --name myAKSCluster \
    --node-image-only

يمكنك التحقق من حالة صور العقدة kubectl get nodes باستخدام الأمر .

إشعار

قد يختلف هذا الأمر قليلا اعتمادا على shell الذي تستخدمه. لمزيد من المعلومات حول بيئات Windows وPowerShell، راجع وثائق Kubernetes JSONPath.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

عند اكتمال الترقية، استخدم az aks show الأمر للحصول على تفاصيل تجمع العقدة المحدثة. يتم عرض صورة العقدة الحالية في الخاصية nodeImageVersion.

az aks show \
    --resource-group myResourceGroup \
    --name myAKSCluster

ترقية مجموعة عقدة معينة

لتحديث صورة نظام التشغيل لتجمع عقدة دون إجراء ترقية نظام مجموعة Kubernetes، استخدم az aks nodepool upgrade الأمر مع العلامة --node-image-only .

az aks nodepool upgrade \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --node-image-only

يمكنك التحقق من حالة صور العقدة kubectl get nodes باستخدام الأمر .

إشعار

قد يختلف هذا الأمر قليلا اعتمادا على shell الذي تستخدمه. لمزيد من المعلومات حول بيئات Windows وPowerShell، راجع وثائق Kubernetes JSONPath.

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

عند اكتمال الترقية، استخدم az aks nodepool show الأمر للحصول على تفاصيل تجمع العقدة المحدثة. يتم عرض صورة العقدة الحالية في الخاصية nodeImageVersion.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

ترقية صور العقدة مع ارتفاع العقدة

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

إذا كنت ترغب في زيادة سرعة الترقيات، فاستخدم az aks nodepool update الأمر مع العلامة --max-surge لتكوين عدد العقد المستخدمة للترقيات. لمعرفة المزيد حول المقايضات من إعدادات --max-surge المتنوعة، راجع تخصيص ترقية طفرة العقدة.

az aks nodepool update \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool \
    --max-surge 33% \
    --no-wait

يمكنك التحقق من حالة صور العقدة kubectl get nodes باستخدام الأمر .

kubectl get nodes -o jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.metadata.labels.kubernetes\.azure\.com\/node-image-version}{"\n"}{end}'

استخدم az aks nodepool show للحصول على تفاصيل مجموعة العقدة المحدثة. يتم عرض صورة العقدة الحالية في الخاصية nodeImageVersion.

az aks nodepool show \
    --resource-group myResourceGroup \
    --cluster-name myAKSCluster \
    --name mynodepool

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