إنشاء نظام مجموعة Azure Kubernetes Service (AKS) يستخدم مناطق التوفر
توضح هذه المقالة كيفية إنشاء نظام مجموعة AKS ونشر مكونات العُقد عبر مناطق التوفر.
قبل البدء
- تحتاج إلى تثبيت الإصدار 2.0.76 أو الأحدث من Azure CLI وتكوينها. قم بتشغيل
az --version
للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI. - اقرأ نظرة عامة على مناطق التوفر في AKS لفهم فوائد وقيود استخدام مناطق التوفر في AKS.
قوالب Azure Resource Manager ومناطق التوفر
ضع التفاصيل التالية في الاعتبار عند إنشاء مجموعة AKS مع مناطق التوفر باستخدام قالب Azure Resource Manager:
- إذا قمت بتعريف قيمة خالية بشكل صريح في قالب، على سبيل المثال،
"availabilityZones": null
، يعامل القالب الخاصية كما لو أنها غير موجودة. وهذا يعني أن نظام المجموعة لا يتم نشره في منطقة توفر. - إذا لم تقم بتضمين الخاصية
"availabilityZones":
في القالب، فلن يتم نشر نظام المجموعة في منطقة توفر. - لا يمكنك تحديث إعدادات مناطق التوفر على مجموعة موجودة، حيث يختلف السلوك عند تحديث نظام مجموعة AKS باستخدام قوالب Azure Resource Manager. إذا قمت بتعيين قيمة فارغة بشكل صريح في القالب الخاص بك لمناطق التوفر وتحديث نظام المجموعة الخاص بك، فإنه لا يحدث نظام المجموعة لمناطق التوفر. ومع ذلك، إذا حذفت خاصية مناطق التوفر باستخدام صيغة مثل
"availabilityZones": []
، فإن النشر يحاول تعطيل مناطق التوفر على أنظمة مجموعات AKS الحالية ويفشل.
إنشاء نظام مجموعة AKS عبر مناطق التوفر
عند إنشاء نظام مجموعة باستخدام az aks create
الأمر ، --zones
تحدد المعلمة مناطق التوفر لنشر عقد العامل فيها. لا يتم التحكم في مناطق التوفر التي يتم نشر مكونات وحدة التحكم المدارة فيها بواسطة هذه المعلمة. يتم نشرها تلقائيا عبر جميع مناطق التوفر (إذا كانت موجودة) في المنطقة أثناء نشر نظام المجموعة.
توضح أوامر المثال التالي كيفية إنشاء مجموعة موارد ومجموعة AKS بإجمالي ثلاث عقد. عقدة عامل واحدة في المنطقة 1، وواحدة في 2، ثم واحدة في 3.
إنشاء مجموعة موارد باستخدام
az group create
الأمر .az group create --name $RESOURCE_GROUP --location $LOCATION
إنشاء نظام مجموعة AKS باستخدام
az aks create
الأمر مع المعلمة--zones
.az aks create \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --generate-ssh-keys \ --vm-set-type VirtualMachineScaleSets \ --load-balancer-sku standard \ --node-count 3 \ --zones 1 2 3
يستغرق إنشاء نظام مجموعة AKS بضع دقائق.
عند تحديد المنطقة التي يجب أن تنتمي إليها عقدة جديدة، يستخدم تجمع عقدة AKS المحدد موازنة منطقة أفضل جهد تقدمها مجموعات مقياس الجهاز الظاهري Azure الأساسية. تجمع عقدة AKS "متوازن" عندما يكون لكل منطقة نفس عدد الأجهزة الظاهرية أو +- جهاز ظاهري واحد في جميع المناطق الأخرى لمجموعة المقياس.
التحقق من نشر العُقد عبر المناطق
عندما تكون المجموعة جاهزة، قم بإدراج منطقة التوفر التي توجد بها عقد العامل في مجموعة التحجيم.
احصل على بيانات اعتماد نظام مجموعة AKS باستخدام
az aks get-credentials
الأمر :az aks get-credentials --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME
سرد العقد في نظام المجموعة باستخدام
kubectl describe
الأمر وتصفية القيمةtopology.kubernetes.io/zone
.kubectl describe nodes | grep -e "Name:" -e "topology.kubernetes.io/zone"
يُظهر مثال الناتج التالي العُقد الثلاثة الموزعة عبر المنطقة المحددة ومناطق التوفر، مثل eastus2-1 لمنطقة التوفر الأولى وeastus2-2 لمنطقة التوفر الثانية:
Name: aks-nodepool1-28993262-vmss000000 topology.kubernetes.io/zone=eastus2-1 Name: aks-nodepool1-28993262-vmss000001 topology.kubernetes.io/zone=eastus2-2 Name: aks-nodepool1-28993262-vmss000002 topology.kubernetes.io/zone=eastus2-3
أثناء إضافة المزيد من العقد إلى تجمع عامل، يقوم النظام الأساسي Azure تلقائيا بتوزيع الأجهزة الظاهرية الأساسية عبر مناطق التوفر المحددة.
باستخدام إصدارات Kubernetes 1.17.0 والإصدارات الأحدث، تستخدم AKS التسمية topology.kubernetes.io/zone
والمهملة failure-domain.beta.kubernetes.io/zone
. يمكنك الحصول على نفس النتيجة من تشغيل kubectl describe nodes
الأمر في المثال السابق باستخدام الأمر التالي:
kubectl get nodes -o custom-columns=NAME:'{.metadata.name}',REGION:'{.metadata.labels.topology\.kubernetes\.io/region}',ZONE:'{metadata.labels.topology\.kubernetes\.io/zone}'
يشبه المثال التالي الإخراج بمزيد من التفاصيل المطولة:
NAME REGION ZONE
aks-nodepool1-34917322-vmss000000 eastus eastus-1
aks-nodepool1-34917322-vmss000001 eastus eastus-2
aks-nodepool1-34917322-vmss000002 eastus eastus-3
التحقق من نشر الجراب عبر المناطق
كما هو موثق في الملصقات المعروفة والتعليقات التوضيحية والعيوب، تستخدم Kubernetes الملصق topology.kubernetes.io/zone
لنشر الجرابات تلقائياً في خدمة أو وحدة تحكم النسخ المتماثل عبر المناطق المختلفة المتاحة. في هذا المثال، يمكنك اختبار التسمية وتوسيع نطاق مجموعتك من 3 إلى 5 عقد للتحقق من انتشار الجراب بشكل صحيح.
قم بتحجيم نظام مجموعة AKS من 3 إلى 5 عقد باستخدام
az aks scale
الأمر مع--node-count
تعيين إلى5
.az aks scale \ --resource-group $RESOURCE_GROUP \ --name $CLUSTER_NAME \ --node-count 5
عند اكتمال عملية المقياس، تحقق من توزيع الجراب عبر المناطق باستخدام الأمر التالي
kubectl describe
:kubectl describe nodes | grep -e "Name:" -e "topology.kubernetes.io/zone"
يظهر إخراج المثال التالي العقد الخمس الموزعة عبر المنطقة المحددة ومناطق التوفر، مثل eastus2-1 لمنطقة التوفر الأولى و eastus2-2 لمنطقة التوفر الثانية:
Name: aks-nodepool1-28993262-vmss000000 topology.kubernetes.io/zone=eastus2-1 Name: aks-nodepool1-28993262-vmss000001 topology.kubernetes.io/zone=eastus2-2 Name: aks-nodepool1-28993262-vmss000002 topology.kubernetes.io/zone=eastus2-3 Name: aks-nodepool1-28993262-vmss000003 topology.kubernetes.io/zone=eastus2-1 Name: aks-nodepool1-28993262-vmss000004 topology.kubernetes.io/zone=eastus2-2
نشر تطبيق NGINX مع ثلاث نسخ متماثلة
kubectl create deployment
باستخدام الأوامر التالية وkubectl scale
:kubectl create deployment nginx --image=mcr.microsoft.com/oss/nginx/nginx:1.15.5-alpine kubectl scale deployment nginx --replicas=3
تحقق من توزيع الجراب عبر المناطق باستخدام الأمر التالي
kubectl describe
:kubectl describe pod | grep -e "^Name:" -e "^Node:"
يظهر إخراج المثال التالي القرون الثلاثة الموزعة عبر المنطقة المحددة ومناطق التوفر، مثل eastus2-1 لمنطقة التوفر الأولى و eastus2-2 لمنطقة التوفر الثانية:
Name: nginx-6db489d4b7-ktdwg Node: aks-nodepool1-28993262-vmss000000/10.240.0.4 Name: nginx-6db489d4b7-v7zvj Node: aks-nodepool1-28993262-vmss000002/10.240.0.6 Name: nginx-6db489d4b7-xz6wj Node: aks-nodepool1-28993262-vmss000004/10.240.0.8
كما ترى من الإخراج السابق، يتم تشغيل أول جراب على العقدة 0 الموجودة في منطقة
eastus2-1
التوفر . يتم تشغيل الجراب الثاني على العقدة 2، المقابلة لeastus2-3
، والثالثة في العقدة 4، فيeastus2-2
. دون أي تكوين إضافي، ينشر Kubernetes القرون بشكل صحيح عبر جميع مناطق التوفر الثلاث.
الخطوات التالية
وصفت هذه المقالة كيفية إنشاء نظام مجموعة AKS باستخدام مناطق التوفر. لمعرفة المزيد من الاعتبارات بشأن أنظمة المجموعات المتاحة بدرجة عالية، راجع أفضل الممارسات لاستمرارية الأعمال والتعافي من الكوارث في AKS.
Azure Kubernetes Service