إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
في خدمة 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.31 أو أحدث. للعثور على الإصدار، قم بتشغيل az --version الأمر . إذا كنت بحاجة إلى تثبيت أو ترقية، راجع تثبيت Azure CLI.
تحتاج إلى تثبيت وتكوين Azure PowerShell الإصدار 7.5.0 أو أحدث. للعثور على الإصدار، قم بتشغيل Get-InstalledModule -Name Az الأمر . إذا كنت بحاجة إلى تثبيت أو ترقية، راجع تثبيت Azure PowerShell.
قبل أن تبدأ، تأكد من أن لديك المتطلبات التالية:
- اشتراك Azure نشط.
- تم تثبيت Terraform محليا.
- تم تثبيت Azure CLI وتسجيل الدخول.
- أذونات لإنشاء وإدارة موارد AKS.
حدد اشتراكك:
az account set --subscription <subscription-id>
القيود
تنطبق القيود التالية عند إنشاء وإدارة الكتل 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. - يجب أن تحتوي تجمعات النظام على عقدتين على الأقل، لكن التوصية هي ثلاث عقد. يمكن أن تحتوي تجمعات عقد المستخدم على صفر عقد أو أكثر.
- تتطلب مجموعات عقد النظام وحدة تخزين VM تحتوي على الأقل من 4 vCPU و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 جديدة، يتم تعيين تجمع العقدة الأولي افتراضيا إلى وضع من النوع system. عندما تقوم بإنشاء مجموعات عقدة جديدة باستخدام New-AzAksNodePool، فإن تجمعات العقد هذه عبارة عن تجمعات عقد مستخدم. يمكن تحديث وضع مجموعة العقدة في أي وقت.
أنشئ متغيرات لمجموعة الموارد، واسم العنقود، والموقع للأوامر المستخدمة في هذا المقال. تحدد هذه المقالة القيم أو يمكنك استخدام قيمك الخاصة.
$ResourceGroup="myResourceGroup"
$ClusterName="myAKSCluster"
$Location="eastus"
$NewSystemNP="systempool"
$NewNodePool="mynodepool"
في المثال التالي سيتم إنشاء مجموعة موارد تسمى myResourceGroup في منطقة الشرقيين.
New-AzResourceGroup -ResourceGroupName $ResourceGroup -Location $Location
استخدم New-AzAksCluster cmdlet لإنشاء نظام مجموعة AKS. ينشئ المثال التالي مجموعة تسمى myAKSCluster مع تجمع نظام مخصص واحد يحتوي على عقدتين. بالنسبة لأحمال عمل الإنتاج الخاصة بك، تأكد من استخدام تجمعات عقد النظام مع ثلاث عقد على الأقل. تستغرق العملية عدة دقائق لإكمالها.
New-AzAksCluster -ResourceGroupName $ResourceGroup -Name $ClusterName -NodeCount 2 -GenerateSshKey
استخدم تكوين Terraform التالي لإنشاء عنقود AKS مع مجموعة عقد نظام.
إنشاء ملف تكوين Terraform
أنشئ ملفا باسم main.tf، وأضف التكوين المشترك التالي:
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {
features {}
}
إنشاء مجموعة موارد
أضف تكوين مجموعة الموارد التالي:
resource "azurerm_resource_group" "rg" {
name = "aks-system-pool-rg"
location = "East US"
}
تستخدم مجموعة الموارد لتنظيم وإدارة موارد Azure.
قم بإنشاء مجموعة AKS جديدة
أضف التكوين التالي لإنشاء عنقود AKS. يتم إنشاء تجمع العقد الأولي كمجموعة عقد نظام وهو مطلوب لتشغيل العنقود.
resource "azurerm_kubernetes_cluster" "aks" {
name = "aks-system-pool-cluster"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
dns_prefix = "akssystempool"
default_node_pool {
name = "systemnp"
vm_size = "Standard_D4s_v5"
node_count = 2
min_count = 2
max_count = 3
max_pods = 30
enable_auto_scaling = true
}
identity {
type = "SystemAssigned"
}
network_profile {
network_plugin = "azure"
load_balancer_sku = "standard"
}
}
إضافة تجمع عقدة نظام مخصص إلى مجموعة 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
يمكنك إضافة واحد أو أكثر من تجمعات عقدة النظام إلى مجموعات AKS الموجودة. التوصية هي جدولة وحدات التطبيقات الخاصة بك على تجمعات عقد المستخدمين، وتخصيص مجموعات عقد النظام فقط للوحدات الحيوية للنظام. إضافة المزيد من تجمعات عقد النظام يمنع قرون التطبيق المارقة من حذف جرابات النظام عن طريق الخطأ. فرض السلوك مع الصبغة CriticalAddonsOnly=true:NoSchedule لتجمعات عقد النظام.
يضيف الأمر التالي مجموعة عقد مخصصة من نوع System الوضع مع ثلاث عقد.
$systempoolparams = @{
ResourceGroupName = $ResourceGroup
ClusterName = $ClusterName
Name = $NewSystemNP
Count = 3
Mode = 'System'
NodeTaint = 'CriticalAddonsOnly=true:NoSchedule'
}
New-AzAksNodePool @systempoolparams
أضف مجموعة عقد ثانية مهيأة كمجموعة عقد نظام لعزل أعباء العمل الحرجة في النظام.
resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
name = "systempool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 3
mode = "System"
max_pods = 30
node_taints = [
"CriticalAddonsOnly=true:NoSchedule"
]
}
هذا التكوين يطبق التلوث CriticalAddonsOnly=true:NoSchedule بحيث لا يتم جدولة أحمال العمل في تجمع عقد النظام المخصص.
إضافة تجمع عقد المستخدم
لفصل أحمال العمل بين التطبيقات ومكونات النظام، أضف مجموعة عقد مستخدمين.
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
name = "userpool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 2
mode = "User"
max_pods = 30
enable_auto_scaling = true
min_count = 2
max_count = 4
}
توفر مجموعات عقد المستخدمين بيئة مخصصة لوحدات التطبيقات.
الفحص النهائي قبل النشر
يجب أن تشمل:main.tf
- Terraform وتكوين المزود
- مجموعة الموارد
- مجموعة AKS مع تجمع عقد النظام الافتراضي
- تجمع عقد النظام المخصص
- مجموعة عقد مستخدم اختيارية، إذا لزم الأمر
يبدو التكوين المكتمل مشابها للمثال التالي:
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name = "aks-system-pool-rg"
location = "East US"
}
resource "azurerm_kubernetes_cluster" "aks" {
name = "aks-system-pool-cluster"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
dns_prefix = "akssystempool"
default_node_pool {
name = "systemnp"
vm_size = "Standard_D4s_v5"
node_count = 2
min_count = 2
max_count = 3
max_pods = 30
enable_auto_scaling = true
}
identity {
type = "SystemAssigned"
}
network_profile {
network_plugin = "azure"
load_balancer_sku = "standard"
}
}
resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
name = "systempool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 3
mode = "System"
max_pods = 30
node_taints = [
"CriticalAddonsOnly=true:NoSchedule"
]
}
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
name = "userpool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 2
mode = "User"
max_pods = 30
enable_auto_scaling = true
min_count = 2
max_count = 4
}
تحقق من صحة التكوين
شغل الأوامر التالية لتنسيق وتهيئة والتحقق من التكوين:
terraform fmt
terraform init
terraform validate
مراجعة خطة التنفيذ
شغل الأمر التالي لمراجعة خطة التنفيذ قبل النشر:
terraform plan
تطبيق التكوين
شغل الأمر التالي لإنشاء مجموعات تجمع العقد والعقد في AKS:
terraform apply
تحقق من النشر
تحقق من تكوين مجموعة عقد النظام المخصصة:
az aks nodepool show \
--resource-group aks-system-pool-rg \
--cluster-name aks-system-pool-cluster \
--name systempool
راجع المخرجات وتأكد من أن مجموعة العقد معدة مع mode تعيين على System.
اتصل بالمجموعة وقم بإدراج العقد:
az aks get-credentials \
--resource-group aks-system-pool-rg \
--name aks-system-pool-cluster
kubectl get nodes
إظهار تفاصيل مجموعة العقدة
يمكنك التحقق من تفاصيل تجمع العقدة الخاص بك مع الأمر التالي.
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"
}
يمكنك التحقق من تفاصيل تجمع العقدة الخاص بك مع الأمر التالي.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewSystemNP |
Select-Object -Property Count, Mode, Name, NodeTaints
يتم تعريف وضع من نوع النظام لمجموعة عقدة النظام، ويتم تعريف وضع من النوع المستخدم لتجمعات عقدة المستخدم. بالنسبة لتجمع النظام، تحقق من أن التلوث مضبوط على CriticalAddonsOnly=true:NoSchedule، مما يمنع جدولة كبسولات التطبيقات في هذا التجمع العقدي.
Count Mode Name NodeTaints
----- ---- ---- ----------
3 System systempool {CriticalAddonsOnly=true:NoSchedule}
تم تضمين هذه الخطوة في خطوة التحقق من النشر في القسم السابق.
يتم تعريف وضع من نوع النظام لمجموعة عقدة النظام، ويتم تعريف وضع من النوع المستخدم لتجمعات عقدة المستخدم. بالنسبة لتجمع النظام، تحقق من تعيين nodeTaints الخاصية على CriticalAddonsOnly=true:NoSchedule، مما يمنع جدولة كبسولات التطبيقات على هذا التجمع العقدي.
تحديث نظام المجموعة الموجودة ومجموعة عقدة المستخدم
إشعار
يجب استخدام نسخة 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
إشعار
يجب استخدام نسخة API أو 2020-03-01 أكبر لضبط وضع تجمع عقد النظام. المجموعات التي تم إنشاؤها على إصدارات API أقدم من 2020-03-01 تحتوي فقط على تجمعات عقد المستخدمين نتيجة لذلك. للحصول على وظائف ومزايا تجمع العقد في النظام على العناقيد القديمة، قم بتحديث وضع مجموعات العقد الحالية بالأوامر التالية في أحدث إصدار من Azure PowerShell.
يمكنك تغيير الأنماط لكل من مجموعات عقد النظام وتجمعات عقد المستخدمين. يمكنك تغيير تجمع عقد النظام إلى تجمع عقد مستخدم فقط إذا كان هناك تجمع عقد نظام آخر موجود بالفعل في عنقود AKS.
شغل هذا الأمر لإنشاء مجموعة عقد جديدة لوضع النظام.
$newpoolparams = @{
ResourceGroupName = $ResourceGroup
ClusterName = $ClusterName
Name = $NewNodePool
Count = 3
Mode = 'System'
}
New-AzAksNodePool @newpoolparams
يمكنك التحقق من الوضع بالأمر التالي.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
Select-Object -Property Mode
Mode
----
System
شغل هذا الأمر لتحويل مجموعة عقد النظام إلى تجمع عقد مستخدم.
$updateuserpoolparams = @{
ResourceGroupName = $ResourceGroup
ClusterName = $ClusterName
Name = $NewNodePool
Mode = 'User'
}
Update-AzAksNodePool @updateuserpoolparams
يمكنك التحقق من الوضع بالأمر التالي.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
Select-Object -Property Mode
Mode
----
User
لتغيير وضع تجمع عقد موجود، قم بتحديث القيمة mode في تكوين Terraform وإعادة تطبيق النشر.
على سبيل المثال، التكوين التالي يغير تجمع user_pool العقد إلى تجمع عقد نظام:
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
name = "userpool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 2
mode = "System"
max_pods = 30
enable_auto_scaling = true
min_count = 2
max_count = 4
}
بعد تحديث الإعدادات، قم بتشغيل:
terraform plan
terraform apply
لتغيير تجمع عقد النظام المخصص إلى تجمع عقد المستخدم، قم بتحديث mode القيمة ل system_pool to User وإعادة تطبيق التكوين.
حذف مجموعة عقدة نظام
إشعار
لاستخدام مجموعات عقد النظام على مجموعات 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 قبل إصدار 2020-03-01API، أضف مجموعة عقد نظام جديدة، ثم احذف تجمع العقد الافتراضي الأصلي.
يجب أن يكون لديك على الأقل اثنتان من مجموعات عقدة النظام على نظام المجموعة AKS قبل أن تتمكن من حذف إحداهما.
الأوامر التالية تطلب منك تأكيد حذف مجموعة العقد. اكتب Y للتأكيد.
Remove-AzAksNodePool $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool
بعد حذف تجمع عقد النظام، يجب أن يكون لديك تجمع عقد النظام الأصلي الذي تم إنشاؤه مع العنقود، ومجموعة عقد النظام التي أنشأتها في القسم تضيف تجمع عقد نظام مخصص إلى عنقود AKS موجود.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName
يجب أن يحتوي العنقود دائما على مجموعة عقد نظام واحدة على الأقل. إذا كان لدى العنقود أكثر من مجموعة عقد نظام، يمكنك إزالة واحدة عن طريق حذف كتلة الموارد الخاصة بها من تكوين Terraform وتطبيق التغيير.
على سبيل المثال، قم بإزالة system_pool كتلة الموارد ثم شغل:
terraform plan
terraform apply
تنظيف الموارد
عندما تحذف مجموعة الموارد في عنقود AKS، يتم حذف جميع موارد العنقود ومجموعة موارد العقد ذات الصلة (MC_) بذلك.
لحذف المجموعة، استخدم الأمر az group delete لحذف مجموعة موارد AKS:
az group delete --name $RESOURCE_GROUP --yes --no-wait
لحذف نظام المجموعة، استخدم الأمر Remove-AzResourceGroup لحذف مجموعة موارد AKS:
Remove-AzResourceGroup -Name $ResourceGroup -Force
عندما تنتهي، قم بإزالة الموارد:
terraform destroy
الخطوات التالية
في هذه المقالة، تعلمت كيفية إنشاء وإدارة تجمعات عقدة النظام في مجموعةAKS. للحصول على معلومات حول كيفية بدء وإيقاف تجمعات عقد AKS، راجع بدء وإيقاف تجمعات عقد AKS.