استخدم علامات Azure في Azure Kubernetes Service (AKS)

باستخدام Azure Kubernetes Service (AKS)، يمكنك تعيين علامات Azure على مجموعة AKS والموارد ذات الصلة باستخدام Azure Resource Manager وAzure CLI. يمكنك أيضا استخدام بيانات Kubernetes لتعيين علامات Azure لموارد معينة. علامات Azure تعد مورد تعقب مفيد لعمليات أعمال معينة، مثل استرداد الرسوم.

هذه المقالة توضح كيفية تعيين علامات Azure لمجموعات AKS والموارد ذات الصلة.

قبل البدء

راجع المعلومات التالية قبل البدء:

  • تنطبق العلامات التي تم تعيينها على نظام مجموعة AKS على جميع الموارد المتعلقة بالمجموعة، ولكن ليس تجمعات العقد. هذه العملية تستبدل قيم المفاتيح الموجودة.
  • العلامات التي تم تعيينها على تجمع عقدة فحسب تنطبق على الموارد المتعلقة بتجمع العقدة هذا. هذه العملية تستبدل قيم المفاتيح الموجودة. الموارد خارج تجمع العقدة هذا لا تتأثر، بما في ذلك الموارد لبقية المجموعة وتجمعات العقد الأخرى.
  • عناوين IP العامة والملفات والأقراص يمكن أن تحتوي على علامات تم تعيينها بواسطة Kubernetes من خلال بيان Kubernetes. تحافظ العلامات التي تم تعيينها بهذه الطريقة على قيم Kubernetes، حتى إذا قمت بتحديثها لاحقا باستخدام أسلوب مختلف. عند إزالة عناوين IP أو الملفات أو الأقراص العامة من خلال Kubernetes، تتم إزالة أي علامات تم تعيينها بواسطة Kubernetes. لا تتأثر العلامات الموجودة على تلك الموارد التي لا يتتبعها Kubernetes.

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

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

القيود

  • علامات Azure تحتوي على مفاتيح غير حساسة لحالة الأحرف للعمليات، مثل عند استردادك لعلامة عن طريق البحث في المفتاح. في هذه الحالة، يتم تحديث علامة بالمفتاح المحدد أو استردادها بغض النظر عن الغلاف. قيم العلامة حساسة لحالة الأحرف.
  • في AKS، إذا تم تعيين علامات متعددة مع مفاتيح متطابقة لكن بشكل كتابة مختلف، العلامات المستخدمة بالترتيب الأبجدي. على سبيل المثال، {"Key1": "val1", "kEy1": "val2", "key1": "val3"} ينتج Key1 ويتم val1 تعيينه.
  • بالنسبة للموارد المشتركة، لا يمكن للعلامات تحديد الانقسام في استخدام الموارد بمفردها.

علامات Azure ومجموعات AKS

عند إنشاء أو تحديث نظام مجموعة AKS مع المعلمة --tags ، يتم تعيين ما يلي علامات Azure التي حددتها:

  • مجموعة AKS نفسها والموارد ذات الصلة:
    • جدول مسار
    • عنوان IP عام
    • موازن التحميل
    • مجموعة أمان الشبكة
    • الشبكة الظاهرية
    • kubelet msi المدار بواسطة AKS
    • الوظيفة الإضافية التي تديرها AKS msi
    • منطقة DNS الخاصة المقترنة بالمجموعة الخاصة
    • نقطة النهاية الخاصة المقترنة بالمجموعة الخاصة
  • مجموعة موارد العقدة

إشعار

Azure Private DNS يدعم 15 علامة فقط. لمزيد من المعلومات، راجع موارد العلامة.

إنشاء علامات أو تحديثها على نظام مجموعة AKS

قم بإنشاء مجموعة AKS جديدة

هام

إذا كنت تستخدم موارد موجودة عند إنشاء مجموعة جديدة، مثل عنوان IP أو جدول التوجيه، فإن az aks create الأمر يحل محل مجموعة العلامات. إذا قمت بحذف نظام المجموعة لاحقا، فستتم إزالة أي علامات تم تعيينها بواسطة نظام المجموعة.

  1. إنشاء نظام مجموعة وتعيين علامات Azure باستخدام az aks create الأمر مع المعلمة --tags .

    إشعار

    لتعيين العلامات على تجمع العقدة الأولي، ومجموعة مقياس الجهاز الظاهري، وكل مثيل لمجموعة مقياس الجهاز الظاهري المقترن بتجمع العقدة الأولي، يمكنك أيضا تعيين المعلمة --nodepool-tags .

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags dept=IT costcenter=9999 \
        --generate-ssh-keys
    
  2. تحقق من تطبيق العلامات على نظام المجموعة والموارد ذات الصلة باستخدام az aks show الأمر .

    az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'
    

    يظهر إخراج المثال التالي العلامات المطبقة على نظام المجموعة:

    {
      "clusterTags": {
        "dept": "IT",
        "costcenter": "9999"
      }
    }
    

تحديث نظام مجموعة AKS موجود

هام

يؤدي تعيين العلامات على نظام مجموعة باستخدام az aks update الأمر إلى الكتابة فوق مجموعة العلامات. على سبيل المثال، إذا كانت مجموعتك تحتوي على العلامات dept=IT و costcenter=9999، وكنت تستخدم az aks update مع فريق العلامات =alpha و costcenter=1234، فإن القائمة الجديدة للعلامات ستكون team=alpha و costcenter=1234.

  1. تحديث العلامات على نظام مجموعة موجود باستخدام az aks update الأمر مع المعلمة --tags .

    az aks update \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --tags team=alpha costcenter=1234
    
  2. تحقق من تطبيق العلامات على نظام المجموعة والموارد ذات الصلة باستخدام az aks show الأمر .

    az aks show --resource-group myResourceGroup --name myAKSCluster --query '[tags]'
    

    يظهر إخراج المثال التالي العلامات المطبقة على نظام المجموعة:

    {
      "clusterTags": {
        "team": "alpha",
        "costcenter": "1234"
      }
    }
    

إضافة علامات إلى تجمعات العقد

يمكنك تطبيق علامة Azure على تجمعات العقد جديدة أو موجودة في نظام المجموعة AKS. يتم تطبيق العلامات المطبقة على تجمع عقدة على كل عقدة داخل تجمع العقدة ويتم استمرارها من خلال الترقيات. كما يتم تطبيق العلامات على العقد الجديدة المضافة إلى تجمع عقدة أثناء عمليات توسعة أفقية. يمكن أن تساعد إضافة علامة في مهام مثل تتبع النهج أو تقدير التكلفة.

عند إنشاء تجمع عقدة أو تحديثه باستخدام المعلمة --tags ، يتم تعيين العلامات التي تحددها إلى الموارد التالية:

  • تجمع العقدة.
  • مجموعة مقياس الجهاز الظاهري وكل مثيل لمجموعة مقياس الجهاز الظاهري المرتبط بتجمع العقدة.

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

  1. إنشاء تجمع عقدة مع علامة Azure باستخدام az aks nodepool add الأمر مع المعلمة --tags .

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name tagnodepool \
        --node-count 1 \
        --tags abtest=a costcenter=5555 \
        --no-wait
    
  2. تحقق من تطبيق العلامات على تجمع العقدة az aks show باستخدام الأمر .

    az aks show --resource-group myResourceGroup --name myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'
    

    يظهر إخراج المثال التالي العلامات المطبقة على تجمع العقدة:

    [
      {
        "nodepoolName": "nodepool1",
        "tags": null
      },
      {
        "nodepoolName": "tagnodepool",
        "tags": {
          "abtest": "a",
          "costcenter": "5555"
        }
      }
    ]
    

تحديث تجمع عقدة موجود

هام

يؤدي تعيين العلامات على تجمع عقدة az aks nodepool update باستخدام الأمر إلى الكتابة فوق مجموعة العلامات. على سبيل المثال، إذا كان تجمع العقدة يحتوي على العلامات abtest=a وcostcenter=5555، وتستخدم az aks nodepool update مع العلامات appversion=0.0.2 وcostcenter=4444، فإن القائمة الجديدة للعلامات ستكون appversion=0.0.2 وcostcenter=4444.

  1. تحديث تجمع عقدة بعلامة Azure باستخدام az aks nodepool update الأمر .

    az aks nodepool update \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name tagnodepool \
        --tags appversion=0.0.2 costcenter=4444 \
        --no-wait
    
  2. تحقق من تطبيق العلامات على تجمع العقدة باستخدام az aks show الأمر .

    az aks show --resource-group myResourceGroup --name myAKSCluster --query 'agentPoolProfiles[].{nodepoolName:name,tags:tags}'
    

    يظهر إخراج المثال التالي العلامات المطبقة على تجمع العقدة:

    [
      {
        "nodepoolName": "nodepool1",
        "tags": null
      },
      {
        "nodepoolName": "tagnodepool",
        "tags": {
          "appversion": "0.0.2",
          "costcenter": "4444"
        }
      }
    ]
    

إضافة علامات باستخدام Kubernetes

هام

يؤدي تعيين العلامات على الملفات والأقراص وIPs العامة باستخدام Kubernetes إلى تحديث مجموعة العلامات. على سبيل المثال، إذا كان القرص يحتوي على العلامات dept=IT وcostcenter=5555، وكنت تستخدم Kubernetes لتعيين فريق العلامات =beta وcostcenter=3333، ستكون قائمة العلامات الجديدة dept=IT وteam=beta وcostcenter=3333.

تحتفظ أي تحديثات تجريها على العلامات من خلال Kubernetes بالقيمة التي تم تعيينها من خلال Kubernetes. على سبيل المثال، إذا كان القرص يحتوي على العلامات dept=IT وcostcenter=5555 التي تم تعيينها بواسطة Kubernetes، وتستخدم المدخل لتعيين فريق العلامات team=beta وcostcenter=3333، ستكون قائمة العلامات الجديدة dept=IT وteam=beta وcostcenter=5555. إذا أزلت بعد ذلك القرص من خلال Kubernetes، فسيكون لدى القرص فريق العلامة =beta.

يمكنك تطبيق علامات Azure على عناوين IP والأقراص والملفات العامة باستخدام بيان Kubernetes.

  • بالنسبة إلى عناوين IP العامة، استخدم service.beta.kubernetes.io/azure-pip-tags ضمن التعليقات التوضيحية. على سبيل المثال:

    apiVersion: v1
    kind: Service
    metadata:
      annotations:
        service.beta.kubernetes.io/azure-pip-tags: costcenter=3333,team=beta
    spec:
      ...
    
  • بالنسبة للملفات والأقراص، استخدم العلامات ضمن المعلمات. على سبيل المثال:

    ---
    apiVersion: storage.k8s.io/v1
    ...
    parameters:
      ...
      tags: costcenter=3333,team=beta
    ...
    

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

تعرف على المزيد حول استخدام التسميات في نظام مجموعة AKS.