إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في خدمة Azure Kubernetes (AKS)، يتم تجميع العقد من نفس التكوين معا في <تجمع عقدات>c0nodes. تحتوي مجموعات العقد على الآلات الافتراضية (VM) الأساسية التي تشغل تطبيقاتك. تجمعات عقدة النظام وتجمعات عقدة المستخدم، هما وضعان لتجمع عقدة مختلفة لمجموعات AKS الخاصة بك. توضح هذه المقالة كيفية إدارة تجمعات عقد النظام في AKS. للحصول على معلومات حول كيفية استخدام تجمعات عقد متعددة، راجع إنشاء مجموعات العقد.
-
تجمعات عقد النظام: الغرض الأساسي هو استضافة وحدات النظام الحرجة مثل
CoreDNSوmetrics-server. لا ينبغي استخدام مجموعات عقد النظام لتشغيل تطبيقك. تستخدم مجموعات العقد System Ubuntu Linux أو Azure Linux. - تجمعات عقد المستخدمين: الغرض الأساسي هو استضافة كبسولات التطبيقات وعزل التطبيقات عن تجمع عقد النظام. هذا العزل يمنع التطبيق من التسبب في عدم استقرار في مجموعة عقد النظام الخاص بك. يمكن لمجموعات العقد للمستخدمين استخدام أوبونتو لينكس، Azure لينكس، أو Windows.
يجب أن يحتوي عنقود AKS إنتاجي مع تجمع عقد نظام واحد على الأقل على عقدتين. التوصية بوجود مجموعة AKS إنتاجية مع مجموعة عقد نظام واحدة هي وجود ثلاث عقد على الأقل لتحسين تحمل الأعطال ومناطق التوافر. على سبيل المثال، عدد عقد أمر az aks create الافتراضي هو ثلاث ويقوم بإنشاء عنقود جديد مع مجموعة عقد نظام لينكس واحدة وثلاث عقد لينكس.
من الممكن، ولكن ليس موصى به، جدولة وحدات التطبيقات على مجموعة عقد النظام إذا كان لديك تجمع عقد واحد فقط في عنقود AKS الخاص بك. الحل الأفضل هو إنشاء مجموعة عقد مستخدمين لتطبيقك.
قبل البدء
تحتاج إلى تثبيت وتكوين نسخة Azure CLI 2.3.1 أو أحدث. للعثور على الإصدار، قم بتشغيل az --version الأمر . إذا كنت بحاجة إلى تثبيت أو ترقية، راجع تثبيت Azure CLI.
القيود
تنطبق القيود التالية عند إنشاء وإدارة الكتل AKS التي تدعم مجموعات عقد النظام.
- راجع الحصص النسبية وقيود حجم الجهاز الظاهري وتوافر المنطقة في AKS.
- يجب استخدام نسخة API أو
2020-03-01أكبر لتعيين وضع تجمع العقد. المجموعات التي تم إنشاؤها على إصدارات API أقدم2020-03-01من تحتوي فقط على مجموعات عقد المستخدم، ولكن يمكن ترحيلها لتحتوي على مجموعات عقد النظام باتباع خطوات وضع تجمع التحديث. - يمكن أن يحتوي اسم تجمع العقد على أحرف أبجدية رقمية صغيرة فقط ويجب أن يبدأ بحرف صغير. بالنسبة لتجمعات عقدة Linux، يجب أن يتراوح الطول بين 1 و12 حرفًا. بالنسبة لتجمعات عقد Windows، يجب أن يكون الطول بين حرف واحد وستة حرف.
- وضع تجمع عقدة خاصية مطلوبة ويجب تعيينها بشكل صريح عند استخدام قوالب ARM أو استدعاءات API المباشرة.
تجمعات عقد النظام والمستخدم
بالنسبة لتجمع عقد النظام، يقوم AKS تلقائيا بتعيين التسمية kubernetes.azure.com/mode: system لعقدها. يؤدي ذلك بمنتج AKS لتفضيل جدولة قرون النظام على مجموعة العقد التي تحتوي على هذه التسمية. لا تمنعك هذه التسمية من جدولة جرابات التطبيقات على تجمعات عقد النظام. لكننا نوصي بعزل وحدات النظام الحرجة عن وحدات التطبيقات لمنع الكبسولات التي تم تكوينها بشكل خاطئ أو غير مخطئة من حذف وحدات النظام عن طريق الخطأ.
يمكنك فرض هذا السلوك عن طريق إنشاء مجموعة عقدة نظام مخصصة. استخدم CriticalAddonsOnly=true:NoSchedule taint لمنع قرون التطبيق من الجدولة على مجموعة عقدة النظام.
تحتوي مجموعات عقد النظام على القيود التالية:
- يجب أن تدعم تجمعات عقد النظام ما لا يقل عن 30 قرنة كما هو موضح في صيغة القيمة الدنيا والأقصى للقرون.
- يجب أن تكون مجموعات
osTypeالأنظمة من لينكس. - مجموعات عقد المستخدم
osTypeيمكن أن تكون لينكس أو Windows. - يجب أن تحتوي تجمعات النظام على عقدتين على الأقل، لكن التوصية هي ثلاث عقد. يمكن أن تحتوي تجمعات عقد المستخدم على صفر عقد أو أكثر.
- تتطلب تجمعات عقد النظام وحدة SKU للجهاز الظاهري من 4 وحدات معالجة مركزية ظاهرية على الأقل وذاكرة 4 غيغابايت.
- الأجهزة الافتراضية من سلسلة B غير مدعومة لتجمعات عقد النظام.
- يوصى بثلاث عقد كحد أدنى من 8 وحدات معالجة مركزية ظاهرية أو عقدتين من 16 vCPUs على الأقل (على سبيل المثال، Standard_DS4_v2)، خاصة بالنسبة للمجموعات الكبيرة (النسخ المتماثلة ل Pod CoreDNS المتعددة، 3-4+ الوظائف الإضافية، وما إلى ذلك).
- تتطلب تجمعات العقد الموضعية تجمعات عقدة المستخدم.
- إضافة مجموعة عقد نظام أخرى أو تغيير أي مجموعة عقد هي تجمع عقد النظام لا يؤدي تلقائيا إلى نقل وحدات النظام. يمكن أن تستمر وحدات النظام في التشغيل على نفس تجمع العقدة، حتى إذا قمت بتغييره إلى تجمع عقدة مستخدم. إذا قمت بحذف أو تقليص تجمع عقدة يقوم بتشغيل قرون النظام التي كانت في السابق تجمع عقدة نظام، يتم إعادة توزيع قرون النظام هذه مع الجدولة المفضلة لتجمع عقدة النظام الجديد.
يمكنك القيام بالعمليات التالية باستخدام مجموعة العقد:
- إنشاء مجموعة عقدة نظام مخصص (تفضل جدولة القرون النظام إلى مجموعة عقدة
mode:systemمن ) - تغيير مجموعة عقدة نظام لتكون مجموعة عقدة مستخدم، شريطة أن يكون لديك مجموعة عقدة نظام آخر لتأخذ مكانها في نظام المجموعة AKS.
- تغيير مجموع العقدة للمستخدم ليكون مجموعة عقدة نظام.
- حذف مجموعات عقدة المستخدم.
- يمكنك حذف تجمعات عقدة النظام، شريطة أن يكون لديك تجمع عقدة نظام آخر لتأخذ مكانه في نظام المجموعة AKS.
- يمكن أن يحتوي عنقود AKS على عدة مجموعات عقد نظام ويتطلب على الأقل مجموعة عقد نظام واحدة.
- إذا كنت ترغب في تغيير إعدادات مختلفة غير قابلة للتغيير على مجموعة العقد الموجودة، يمكنك إنشاء مجموعة عقدة جديدة لاستبدالها. مثال على ذلك هو إضافة مجموعة عقد جديدة بإعداد جديد
maxPodsوحذف مجموعة العقد القديمة. - استخدم ترابط العقدة لطلبالعقد التي يمكن جدولتها استنادا إلى تسميات العقدة أو تفضيلها. يمكنك تعيين
keyإلىkubernetes.azure.comوoperatorInوvaluesأوusersystemإلى YAML الخاص بك، وتطبيق هذا التعريف باستخدامkubectl apply -f yourYAML.yaml.
إنشاء نظام مجموعة AKS مع مجموعة عقدة نظام
عند إنشاء مجموعة AKS جديدة، يتم تعيين تجمع العقدة الأولي افتراضيا إلى وضع من النوع System. عند إنشاء مجموعات عقد جديدة مع az aks nodepool add، تكون مجموعات العقد هذه مجموعات عقدة المستخدم ما لم تحدد معلمة الوضع بشكل صريح.
أنشئ متغيرات لمجموعة الموارد، واسم العنقود، والموقع للأوامر المستخدمة في هذا المقال. تحدد هذه المقالة القيم أو يمكنك استخدام قيمك الخاصة.
export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myAKSCluster"
export LOCATION="eastus"
export NEW_SYSTEM_NP="systempool"
export NEW_NODE_POOL="mynodepool"
في المثال التالي سيتم إنشاء مجموعة موارد تسمى myResourceGroup في منطقة الشرقيين.
az group create --name $RESOURCE_GROUP --location $LOCATION
استخدم الأمر az aks create لإنشاء مجموعة AKS. ينشئ المثال التالي مجموعة تسمى myAKSCluster مع تجمع نظام مخصص واحد يحتوي على عقدتين. بالنسبة لأحمال عمل الإنتاج الخاصة بك، تأكد من استخدام تجمعات عقد النظام مع ثلاث عقد على الأقل. تستغرق هذه العملية عدة دقائق لإكمالها.
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-count 2 --generate-ssh-keys
إضافة تجمع عقدة نظام مخصص إلى مجموعة AKS موجودة
يمكنك إضافة واحد أو أكثر من تجمعات عقدة النظام إلى مجموعات AKS الموجودة. التوصية هي جدولة وحدات التطبيقات الخاصة بك على تجمعات عقد المستخدمين، وتخصيص مجموعات عقد النظام فقط للوحدات الحيوية للنظام. هذا الفصل يمنع كبسولات التطبيقات المضطربة من حذف وحدات النظام عن طريق الخطأ. فرض هذا السلوك مع CriticalAddonsOnly=true:NoScheduleلوت لمجموعة عقدة النظام الخاص بك.
يضيف الأمر التالي مجموعة عقد مخصصة من نوع System الوضع مع ثلاث عقد. تضيف الأوامر az aks nodepool add ثلاث عقد بشكل افتراضي، لكنك تستخدم المعلمة --node-count لتحديد عدد العقد التي تريدها.
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_SYSTEM_NP \
--node-count 3 \
--node-taints CriticalAddonsOnly=true:NoSchedule \
--mode System
إظهار تفاصيل مجموعة العقدة
يمكنك التحقق من تفاصيل تجمع العقدة الخاص بك مع الأمر التالي.
az aks nodepool show \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_SYSTEM_NP \
--query "{Count:count, Mode:mode, NodePool:name, NodeTaint:nodeTaints, ResourceGroup:resourceGroup}"
يتم تعريف وضع من نوع النظام لمجموعة عقدة النظام، ويتم تعريف وضع من النوع المستخدم لتجمعات عقدة المستخدم. بالنسبة لتجمع النظام، تحقق من تعيين nodeTaints الخاصية على CriticalAddonsOnly=true:NoSchedule، مما يمنع جدولة كبسولات التطبيقات على هذا التجمع العقدي.
{
"Count": 3,
"Mode": "System",
"NodePool": "systempool",
"NodeTaint": [
"CriticalAddonsOnly=true:NoSchedule"
],
"ResourceGroup": "myResourceGroup"
}
تحديث نظام المجموعة الموجودة ومجموعة عقدة المستخدم
إشعار
يجب استخدام نسخة API أو 2020-03-01 أكبر لضبط وضع تجمع عقد النظام. المجموعات التي تم إنشاؤها على إصدارات API أقدم من 2020-03-01 تحتوي فقط على تجمعات عقد المستخدمين نتيجة لذلك. للحصول على وظائف ومزايا تجمع العقد في المجموعات القديمة، قم بتحديث وضع مجموعات العقد الحالية بالأوامر التالية في أحدث إصدار من Azure CLI.
يمكنك تغيير الأنماط لكل من مجموعات عقد النظام وتجمعات عقد المستخدمين. يمكنك تغيير تجمع عقد النظام إلى تجمع عقد مستخدم فقط إذا كان هناك تجمع عقد نظام آخر موجود بالفعل في عنقود AKS.
شغل هذا الأمر لإنشاء مجموعة عقد جديدة لوضع النظام.
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--node-count 3 \
--mode System
يمكنك التحقق من الوضع بالأمر التالي.
az aks nodepool show \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--query mode --output tsv
System
شغل هذا الأمر لتحويل مجموعة عقد النظام إلى تجمع عقد مستخدم.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--mode User
يمكنك التحقق من تغير الوضع بالأمر التالي.
az aks nodepool show \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--query mode --output tsv
User
شغل هذا الأمر لتحويل تجمع عقد المستخدم إلى تجمع عقد نظام.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--mode System
شغل الأمر السابق للتحقق من تغير الوضع.
حذف مجموعة عقدة نظام
إشعار
لاستخدام مجموعات عقد النظام على مجموعات AKS قبل إصدار 2020-03-01API، أضف مجموعة عقد نظام جديدة، ثم احذف تجمع العقد الافتراضي الأصلي.
يجب أن يكون لديك على الأقل اثنتان من مجموعات عقدة النظام على نظام المجموعة AKS قبل أن تتمكن من حذف إحداهما.
az aks nodepool delete \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL
بعد حذف تجمع عقد النظام، يجب أن يكون لديك تجمع عقد النظام الأصلي الذي تم إنشاؤه مع العنقود، ومجموعة عقد النظام التي أنشأتها في القسم تضيف تجمع عقد نظام مخصص إلى عنقود AKS موجود.
az aks nodepool list \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--query "[].{Name:name, Mode:mode}" --output table
تنظيف الموارد
عندما تحذف مجموعة موارد عنقود AKS، يتم حذف جميع موارد العنقود ومجموعة موارد العقد المرتبطة بها (MC_) أيضا.
لحذف المجموعة، استخدم الأمر az group delete لحذف مجموعة موارد AKS:
az group delete --name $RESOURCE_GROUP --yes --no-wait
الخطوات التالية
في هذه المقالة، تعلمت كيفية إنشاء وإدارة تجمعات عقدة النظام في مجموعةAKS. للحصول على معلومات حول كيفية بدء وإيقاف تجمعات عقد AKS، راجع بدء وإيقاف تجمعات عقد AKS.