إشعار
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تسجيل الدخول أو تغيير الدلائل.
يتطلب الوصول إلى هذه الصفحة تخويلاً. يمكنك محاولة تغيير الدلائل.
إذا كان لديك تجمعات عقد متعددة، فقد تحتاج إلى إضافة تسمية أثناء إنشاء تجمع العقدة. تعالج تسميات Kubernetes قواعد الجدولة للعقد. يمكنك إضافة تسميات إلى تجمع عقدة في أي وقت وتطبيقها على جميع العقد في تجمع العقدة.
في هذا الدليل الإرشادي، ستتعلم كيفية استخدام التسميات في نظام مجموعة خدمة Azure Kubernetes (AKS).
المتطلبات الأساسية
تحتاج إلى الإصدار 2.2.0 من Azure CLI أو تثبيتها وتكوينها لاحقًا. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.
إنشاء نظام مجموعة AKS باستخدام تسمية
يمكنك إنشاء نظام مجموعة AKS مع تسميات العقدة لتعيين بيانات تعريف المفتاح/القيمة لجدولة حمل العمل.
export RANDOM_SUFFIX=$(openssl rand -hex 3)
export RESOURCE_GROUP="myResourceGroup$RANDOM_SUFFIX"
export AKS_CLUSTER_NAME="myAKSCluster$RANDOM_SUFFIX"
az group create --name $RESOURCE_GROUP --location $REGION
النتائج:
{
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx",
"location": "eastus2",
"managedBy": null,
"name": "myResourceGroupxxx",
"properties": {
"provisioningState": "Succeeded"
},
"tags": null,
"type": "Microsoft.Resources/resourceGroups"
}
إنشاء مجموعة AKS التي تحدد تسميات العقدة (على سبيل المثال، dept=IT، costcenter=9000):
az aks create \
--resource-group $RESOURCE_GROUP \
--name $AKS_CLUSTER_NAME \
--node-count 2 \
--nodepool-labels dept=IT costcenter=9000 \
--generate-ssh-keys --location $REGION
النتائج:
{
"aadProfile": null,
"addonProfiles": {},
"agentPoolProfiles": [
{
"count": 2,
"enableAutoScaling": null,
"mode": "System",
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
}
],
"dnsPrefix": "myaksclusterxxx-dns",
"fqdn": "myaksclusterxxx-xxxxxxxx.hcp.eastus2.azmk8s.io",
"id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/myResourceGroupxxx/providers/Microsoft.ContainerService/managedClusters/myAKSClusterxxx",
"location": "eastus2",
"name": "myAKSClusterxxx",
"resourceGroup": "myResourceGroupxxx"
}
تحقق من تعيين التسميات:
az aks get-credentials --resource-group $RESOURCE_GROUP --name $AKS_CLUSTER_NAME --overwrite-existing
kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
إنشاء تجمع عقدة مع تسمية
يمكنك إنشاء تجمع عقدة إضافي مع تسميات لاحتياجات جدولة محددة.
export NODEPOOL_NAME="labelnp"
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--node-count 1 \
--labels dept=HR costcenter=5000
فيما يلي مثال الإخراج من الأمر الذي az aks nodepool list يظهر تجمع عقدة labelnp هو إنشاء العقد مع nodeLabels المحددة:
az aks nodepool list --resource-group $RESOURCE_GROUP --cluster-name $AKS_CLUSTER_NAME
النتائج:
[
{
"count": 2,
"name": "nodepool1",
"nodeLabels": {
"costcenter": "9000",
"dept": "IT"
}
},
{
"count": 1,
"name": "labelnp",
"nodeLabels": {
"costcenter": "5000",
"dept": "HR"
},
"provisioningState": "Creating"
}
]
تحقق من تعيين التسميات:
kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
تحديث التسميات على تجمعات العقد الموجودة
يمكنك تحديث التسميات على تجمع عقدة موجود. لاحظ أن تحديث التسميات سيستبدل التسميات القديمة.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $AKS_CLUSTER_NAME \
--name $NODEPOOL_NAME \
--labels dept=ACCT costcenter=6000
تحقق من تعيين التسميات الجديدة:
kubectl get nodes --show-labels | grep -e "costcenter=6000" -e "dept=ACCT"
التسميات غير المتوفرة
تسميات النظام المحجوزة
منذ إصدار AKS 2021-08-19، أوقفت AKS القدرة على إجراء تغييرات على التسميات المحجوزة ل AKS. تؤدي محاولة تغيير هذه التسميات إلى ظهور رسالة خطأ.
التسميات التالية هي تسميات محجوزة من AKS. يحدد استخدام العقدة الظاهرية ما إذا كانت هذه التسميات يمكن أن تكون ميزة نظام مدعومة على العقد الظاهرية. لا تتوفر بعض الخصائص التي تغيرها ميزات النظام هذه على العقد الظاهرية لأنها تتطلب تعديل المضيف.
| تسمية | القيمة | مثال/خيارات | استخدام العقدة الظاهرية |
|---|---|---|---|
kubernetes.azure.com/agentpool |
<اسم تجمع العامل> | nodepool1 |
متشابه |
kubernetes.io/arch |
<وقت التشغيل. جوارتش> | amd64 |
غير متوفر |
kubernetes.io/os |
<نوع نظام التشغيل> | Linux/Windows |
متشابه |
node.kubernetes.io/instance-type |
<حجم الجهاز الظاهري> | Standard_NC6s_v3 |
ظاهري |
topology.kubernetes.io/region |
<منطقة Azure> | westus2 |
متشابه |
topology.kubernetes.io/zone |
<منطقة Azure> | 0 |
متشابه |
kubernetes.azure.com/cluster |
<MC_RgName> | MC_aks_myAKSCluster_westus2 |
متشابه |
kubernetes.azure.com/managedby |
aks |
aks |
غير متوفر |
kubernetes.azure.com/mode |
<الوضع> |
User أو system |
المستخدم |
kubernetes.azure.com/role |
agent | Agent |
متشابه |
kubernetes.azure.com/scalesetpriority (مهمل) |
<أولوية VMSS> |
spot (regular غير مكتوب على العقد العادية). أفضل kubernetes.azure.com/priority بدلا من ذلك. |
غير متوفر |
kubernetes.azure.com/priority |
<أولوية الآلة الافتراضية> |
spot أو regular |
غير متوفر |
kubernetes.io/hostname |
<اسم المضيف> | aks-nodepool-00000000-vmss000000 |
متشابه |
kubernetes.azure.com/storageprofile |
<ملف تعريف تخزين قرص نظام التشغيل> | Managed |
غير متوفر |
kubernetes.azure.com/storagetier |
<طبقة تخزين قرص نظام التشغيل> | Premium_LRS |
غير متوفر |
kubernetes.azure.com/node-image-version |
<إصدار VHD> | AKSUbuntu-1804-2020.03.05 |
إصدار العقدة الظاهرية |
kubernetes.azure.com/network-name |
<اسم nodepool vnet> | vnetName |
الشبكة الظاهرية للعقدة الظاهرية |
kubernetes.azure.com/network-subnet |
<اسم الشبكة الفرعية nodepool> | subnetName |
اسم الشبكة الفرعية للعقدة الظاهرية |
kubernetes.azure.com/ppg |
<اسم nodepool ppg> | ppgName |
غير متوفر |
kubernetes.azure.com/encrypted-set |
<اسم مجموعة مشفرة nodepool> | encrypted-set-name |
غير متوفر |
kubernetes.azure.com/accelerator |
<مسرع الحل> | nvidia |
غير متوفر |
kubernetes.azure.com/fips_enabled |
<هل FIPS مفعل؟> | true |
غير متوفر |
kubernetes.azure.com/os-sku |
<نظام التشغيل/SKU> | إنشاء أو تحديث نظام التشغيل SKU | Linux |
kubernetes.azure.com/os-sku-effective |
<تم اختيار وحدة SKU الفعلية لنظام التشغيل> |
Ubuntu2204 أو ما شابه (أبدا أوبونتو، دائما ما يكون الإصدار محددا) |
غير متوفر |
kubernetes.azure.com/os-sku-requested |
<وحدة SKU الخاصة بنظام التشغيل التي طلبها المستخدم> |
Ubuntu، Ubuntu2204، أو ما شابه (تطابق تماما مع SKU المطلوبة من API) |
غير متوفر |
kubernetes.azure.com/sku-cpu |
<وحدات معالجة الدماغ NUM> | 4 |
متشابه |
kubernetes.azure.com/sku-memory |
<الذاكرة في GB> | 16 |
متشابه |
kubernetes.azure.com/nodepool-type |
<نوع تجمع العقدة> | VirtualMachineScaleSets |
غير متوفر |
- يتم تضمين نفس الشيء في الأماكن التي لا تختلف فيها القيم المتوقعة للتسميات بين تجمع عقدة قياسي وتجمع عقدة ظاهرية. نظرا لأن جرابات العقدة الظاهرية لا تعرض أي جهاز ظاهري أساسي (VM)، يتم استبدال قيم SKU للجهاز الظاهري بـ SKU Virtual.
- يشير إصدار العقدة الظاهرية إلى الإصدار الحالي من إصدار موصل Kubelet-ACI الظاهري.
- اسم الشبكة الفرعية للعقدة الظاهرية هو اسم الشبكة الفرعية حيث يتم توزيع جرابات العقدة الظاهرية في مثيل حاوية Azure (ACI).
- الشبكة الظاهرية للعقدة الظاهرية هي اسم الشبكة الظاهرية، والتي تحتوي على الشبكة الفرعية حيث يتم توزيع جرابات العقدة الظاهرية على ACI.
- عقد العقد التلقائية للتوفير (Karpenter) تحتوي على تسميات إضافية تتوافق مع المحددات المدعومة.
-
kubernetes.azure.com/network-nameوسيتمkubernetes.azure.com/network-subnetاختصارها إذا كانت أسماء الموارد الأساسية أكبر من 64 حرفا.
البادئات المحجوزة
البادئات التالية هي بادئات AKS المحجوزة ولا يمكن استخدامها لأي عقدة:
- kubernetes.azure.com/
- kubernetes.io/
لمزيد من المعلومات حول البادئات المحجوزة، راجع تسميات Kubernetes المعروفة والتعليقات التوضيحية والملامح.
تسميات مهملة
يتم التخطيط للتسميات التالية للإهمال مع إصدار Kubernetes v1.24. يجب تغيير أي مراجع تسمية إلى البديل الموصى به.
| تسمية | البديل الموصى به | المشرف |
|---|---|---|
| failure-domain.beta.kubernetes.io/region | topology.kubernetes.io/region | كوبرنيتيس |
| failure-domain.beta.kubernetes.io/zone | topology.kubernetes.io/zone | كوبرنيتيس |
| beta.kubernetes.io/arch | kubernetes.io/arch | كوبرنيتيس |
| beta.kubernetes.io/instance-type | node.kubernetes.io/instance-type | كوبرنيتيس |
| beta.kubernetes.io/os | kubernetes.io/os | كوبرنيتيس |
| node-role.kubernetes.io/agent* | kubernetes.azure.com/role=agent | Azure Kubernetes Service |
| kubernetes.io/role* | kubernetes.azure.com/role=agent | Azure Kubernetes Service |
| Agentpool* | kubernetes.azure.com/agentpool | Azure Kubernetes Service |
| StorageProfile* | kubernetes.azure.com/storageprofile | Azure Kubernetes Service |
| تعريف التخزين* | kubernetes.azure.com/storagetier | Azure Kubernetes Service |
| مسرع الحل* | kubernetes.azure.com/accelerator | Azure Kubernetes Service |
*مهمل حديثا. لمزيد من المعلومات، راجع ملاحظات الإصدار.
الخطوات التالية
تعرف على المزيد حول تسميات Kubernetes في وثائق تسميات Kubernetes.