استخدم التسميات في مجموعة خدمة Azure Kubernetes (AKS)

إذا كان لديك تجمعات عقد متعددة، فقد تحتاج إلى إضافة تسمية أثناء إنشاء تجمع العقدة. تعالج تسميات Kubernetes قواعد الجدولة للعقد. يمكنك إضافة تسميات إلى تجمع عقدة في أي وقت وتطبيقها على جميع العقد في تجمع العقدة.

في هذا الدليل الإرشادي، ستتعلم كيفية استخدام التسميات في نظام مجموعة Azure Kubernetes Service (AKS).

المتطلبات الأساسية

تحتاج إلى الإصدار 2.2.0 من Azure CLI أو تثبيتها وتكوينها لاحقًا. قم بتشغيل az --version للعثور على الإصدار. إذا كنت بحاجة إلى التثبيت أو الترقية، فراجع تثبيت Azure CLI.

إنشاء نظام مجموعة AKS باستخدام تسمية

  1. إنشاء نظام مجموعة AKS مع تسمية باستخدام az aks create الأمر وتحديد المعلمة --node-labels لتعيين التسميات الخاصة بك. يجب أن تكون التسميات زوج مفتاح/قيمة وأن يكون لها بناء جملة صالح.

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --node-count 2 \
        --nodepool-labels dept=IT costcenter=9000 \
        --generate-ssh-keys
    
  2. تحقق من تعيين التسميات باستخدام kubectl get nodes --show-labels الأمر .

    kubectl get nodes --show-labels | grep -e "costcenter=9000" -e "dept=IT"
    

إنشاء تجمع عقدة مع تسمية

  1. إنشاء تجمع عقدة مع تسمية باستخدام az aks nodepool add الأمر وتحديد اسم للمعلمات --name والتسميات للمعلمة --labels . يجب أن تكون التسميات أيضًا زوج مفتاح/قيمة وأن يكون لها بناء جملة صالح

    ينشئ الأمر المثال التالي تجمع عقدة يسمى labelnp مع تسميات dept=HR و costcenter=5000.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --node-count 1 \
        --labels dept=HR costcenter=5000 \
        --no-wait
    

    يظهر إخراج المثال التالي من az aks nodepool list الأمر تجمع عقدة labelnp هو Create nodes with the specified nodeLabels:

    [
      {
        ...
        "count": 1,
        ...
        "name": "labelnp",
        "orchestratorVersion": "1.15.7",
        ...
        "provisioningState": "Creating",
        ...
        "nodeLabels":  {
          "costcenter": "5000",
          "dept": "HR"
        },
        ...
      },
     ...
    ]
    
  2. تحقق من تعيين التسميات باستخدام kubectl get nodes --show-labels الأمر .

    kubectl get nodes --show-labels | grep -e "costcenter=5000" -e "dept=HR"
    

تحديث التسميات على تجمعات العقد الموجودة

  1. تحديث تسمية على تجمع عقدة موجود باستخدام az aks nodepool update الأمر . يؤدي تحديث التسميات على تجمعات العقد الموجودة إلى استبدال التسميات القديمة بالتسميات الجديدة. يجب أن تكون التسميات زوج مفتاح/قيمة وأن يكون لها بناء جملة صالح.

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name labelnp \
        --labels dept=ACCT costcenter=6000 \
        --no-wait
    
  2. تحقق من تعيين التسميات باستخدام kubectl get nodes --show-labels الأمر .

    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 وقت التشغيل.GOARCH ‏‫غير متوفر‬
kubernetes.io/os <نوع نظام التشغيل> Linux، Windows متشابه
node.kubernetes.io/instance-type <حجم الجهاز الظاهري> Standard_NC6s_v3 الأجهزة
topology.kubernetes.io/region <منطقة Azure> غرب الولايات المتحدة2 متشابه
topology.kubernetes.io/zone <منطقة Azure> 0 متشابه
kubernetes.azure.com/cluster <MC_RgName> MC_aks_myAKSCluster_westus2 متشابه
kubernetes.azure.com/mode <الوضع> المستخدم أو النظام المستخدم
kubernetes.azure.com/role agent المندوب متشابه
kubernetes.azure.com/scalesetpriority <أولوية VMSS> موضعي أو عادي ‏‫غير متوفر‬
kubernetes.io/hostname <اسم المضيف> aks-nodepool-00000000-vmss000000 متشابه
kubernetes.azure.com/storageprofile <ملف تعريف تخزين قرص نظام التشغيل> مُدار ‏‫غير متوفر‬
kubernetes.azure.com/storagetier <طبقة تخزين قرص نظام التشغيل> Premium_LRS ‏‫غير متوفر‬
kubernetes.azure.com/instance-sku <عائلة SKU> Standard_N الأجهزة
kubernetes.azure.com/node-image-version <إصدار VHD> AKSUbuntu-1804-2020.03.05 إصدار العقدة الظاهرية
kubernetes.azure.com/subnet <اسم الشبكة الفرعية nodepool> subnetName اسم الشبكة الفرعية للعقدة الظاهرية
kubernetes.azure.com/vnet <اسم nodepool vnet> vnetName الشبكة الظاهرية للعقدة الظاهرية
kubernetes.azure.com/ppg <nodepool ppg name> ppgName ‏‫غير متوفر‬
kubernetes.azure.com/encrypted-set <اسم مجموعة مشفرة nodepool> encrypted-set-name ‏‫غير متوفر‬
kubernetes.azure.com/accelerator <مسرع الحل> ⁧⁩نفيديا ‏‫غير متوفر‬
kubernetes.azure.com/fips_enabled <هل تم تمكين fips؟> صحيح ‏‫غير متوفر‬
kubernetes.azure.com/os-sku <os/sku> إنشاء أو تحديث نظام التشغيل SKU Linux
  • يتم تضمين نفس الشيء في الأماكن التي لا تختلف فيها القيم المتوقعة للتسميات بين تجمع عقدة قياسي وتجمع عقدة ظاهرية. نظرا لأن جرابات العقدة الظاهرية لا تعرض أي جهاز ظاهري أساسي (VM)، يتم استبدال قيم SKU للجهاز الظاهري بـ SKU Virtual.
  • يشير إصدار العقدة الظاهرية إلى الإصدار الحالي من إصدار موصل Kubelet-ACI الظاهري.
  • اسم الشبكة الفرعية للعقدة الظاهرية هو اسم الشبكة الفرعية حيث يتم توزيع جرابات العقدة الظاهرية في مثيل حاوية Azure (ACI).
  • الشبكة الظاهرية للعقدة الظاهرية هي اسم الشبكة الظاهرية، والتي تحتوي على الشبكة الفرعية حيث يتم توزيع جرابات العقدة الظاهرية على ACI.

البادئات المحجوزة

البادئات التالية هي بادئات AKS المحجوزة ولا يمكن استخدامها لأي عقدة:

  • kubernetes.azure.com/
  • kubernetes.io/

لمزيد من المعلومات حول البادئات المحجوزة، راجع تسميات Kubernetes المعروفة والتعليقات التوضيحية والملامح.

تسميات مهملة

يتم التخطيط للتسميات التالية للإهمال مع إصدار Kubernetes v1.24. يجب تغيير أي مراجع تسمية إلى البديل الموصى به.

التسمية البديل الموصى به المشرف
failure-domain.beta.kubernetes.io/region topology.kubernetes.io/region Kubernetes
failure-domain.beta.kubernetes.io/zone topology.kubernetes.io/zone Kubernetes
beta.kubernetes.io/arch kubernetes.io/arch Kubernetes
beta.kubernetes.io/instance-type node.kubernetes.io/instance-type Kubernetes
beta.kubernetes.io/os kubernetes.io/os Kubernetes
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
Storagetier* kubernetes.azure.com/storagetier Azure Kubernetes Service
مسرع الحل* kubernetes.azure.com/accelerator Azure Kubernetes Service

*مهمل حديثا. لمزيد من المعلومات، راجع ملاحظات الإصدار.

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

تعرف على المزيد حول تسميات Kubernetes في وثائق تسميات Kubernetes.