استخدام هوية مدارة في خدمة Azure Kubernetes (AKS)

تتطلب مجموعات Azure Kubernetes Service (AKS) هوية للوصول إلى موارد Azure مثل موازنات التحميل والأقراص المدارة. يمكن أن تكون الهوية هوية مدارة أو كيان خدمة.

توفر هذه المقالة تفاصيل حول كيفية تمكين أنواع الهوية المدارة التالية على مجموعة AKS جديدة أو موجودة:

  • الهوية المُدارة التي يُعيّنها النظام
  • إحضار الهوية المدارة المعينة من قبل المستخدم
  • هوية Kubelet المدارة التي تم إنشاؤها مسبقا

نظرة عامة

عند نشر نظام مجموعة AKS، يتم إنشاء هوية مدارة يعينها النظام تلقائيا، ويتم إدارتها بواسطة النظام الأساسي ل Azure، لذلك لا تتطلب منك توفير أي أسرار أو تدويرها. لمزيد من المعلومات، راجع الهويات المدارة لموارد Azure.

لا تقوم AKS تلقائيا بإنشاء كيان خدمة، لذلك يجب عليك إنشاء كيان. تنتهي صلاحية المجموعات التي تستخدم كيان خدمة في النهاية، ويجب تجديد كيان الخدمة لتجنب التأثير على مصادقة نظام المجموعة مع الهوية. تضيف إدارة كيانات الخدمة التعقيد، لذلك من الأسهل استخدام الهويات المدارة بدلا من ذلك. تنطبق نفس متطلبات الأذونات على كل من أساسيات كيان الخدمة والهويات المدارة. تستخدم الهويات المُدارة المصادقة المستندة إلى الشهادة. تنتهي صلاحية بيانات اعتماد كل هوية مدارة لمدة 90 يوما ويتم طرحها بعد 45 يوما.

تستخدم AKS كلًا من أنواع الهوية المدارة المعينة من قبل النظام والمخصصة من قبل المستخدم، وهذه الهويات غير قابلة للتغيير. لا ينبغي الخلط بين أنواع الهوية هذه مع هوية حمل عمل Microsoft Entra، والمخصصة للاستخدام من قبل تطبيق يعمل على جراب.

هام

تم إهمال الهوية مصدر مفتوح التي تديرها Microsoft Entra pod (معاينة) في خدمة Azure Kubernetes في 10/24/2022، وأرشفة المشروع في سبتمبر 2023. لمزيد من المعلومات، راجع إشعار الإهمال. تبدأ الوظيفة الإضافية المدارة AKS في الإهمال في سبتمبر 2024.

نوصي بمراجعة نظرة عامة هوية حمل عمل Microsoft Entra أولا. تستبدل مصادقة هوية حمل العمل الإدخال الهوية المدارة بواسطة Microsoft Entra pod (معاينة) وهي الطريقة الموصى بها لتمكين تطبيق يعمل على جراب لمصادقة نفسه مقابل خدمات Azure الأخرى التي تدعمه.

قبل البدء

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

  • لاستخدام هوية مدارة من kubelet تم إنشاؤها مسبقا، تحتاج إلى تثبيت الإصدار 2.26.0 من Azure CLI أو أحدث.

  • لتحديث الهوية المدارة على مجموعة موجودة، تحتاج إلى تثبيت الإصدار 2.49.0 من Azure CLI أو أحدث.

القيود

  • المستأجرون الذين ينقلون أو يرحلون مجموعة مدارة ممكنة للهوية غير مدعومة.
  • إذا كان نظام المجموعة يحتوي على هوية مدارة بواسطة Microsoft Entra () ممكنةaad-pod-identity، تقوم قرون الهوية المدارة بالعقدة (NMI) بتعديل iptables للعقد لاعتراض المكالمات إلى نقطة نهاية بيانات تعريف مثيل Azure (IMDS). يعني هذا التكوين أن أي طلب يتم إجراؤه على نقطة نهاية بيانات التعريف يتم اعتراضه بواسطة NMI، حتى إذا لم يستخدم aad-pod-identitypod . يمكن تكوين AzurePodIdentityException CRD لإعلام aad-pod-identity أي طلبات إلى نقطة نهاية بيانات التعريف التي تنشأ من جراب يطابق التسميات المحددة في CRD يجب أن تكون مدعومة دون أي معالجة في NMI. يجب استبعاد وحدات pod ذات تسمية kubernetes.azure.com/managedby: aks في مساحة اسم kube-system في aad-pod-identity من خلال تكوين AzurePodIdentityException CRD.
  • لا تدعم AKS استخدام هوية مدارة معينة من قبل النظام عند استخدام منطقة DNS خاصة مخصصة.

ملخص الهويات المدارة

تستخدم AKS العديد من الهويات المدارة للخدمات المدمجة والإضافات.

الهوية الاسم حالة الاستخدام الأذونات الافتراضية أحضر هويتك الخاصة
وحدة التحكم اسم نظام المجموعة AKS تستخدم بواسطة مكونات وحدة التحكم AKS لإدارة موارد نظام المجموعة بما في ذلك موازنات تحميل الدخول و IPs العامة المدارة بواسطة AKS، وأداة التحجيم التلقائي لنظام المجموعة، وقرص Azure، والملف، وبرامج تشغيل Blob CSI. دور المساهم لمجموعة موارد العقدة مدعوم
Kubelet مجموعة AKS اسم عامل التخزين المؤقت المصادقة باستخدام Azure Container Registry (ACR). N/A (ل kubernetes v1.15+) مدعوم
الوظيفة الإضافية AzureNPM لا توجد هوية مطلوبة. ‏‫غير متوفر‬ لا
الوظيفة الإضافية رصد شبكة AzureCNI لا توجد هوية مطلوبة. ‏‫غير متوفر‬ لا
الوظيفة الإضافية نهج azure- (حارس البوابة) لا توجد هوية مطلوبة. ‏‫غير متوفر‬ لا
الوظيفة الإضافية نهج azure- لا توجد هوية مطلوبة. ‏‫غير متوفر‬ لا
الوظيفة الإضافية Calico لا توجد هوية مطلوبة. ‏‫غير متوفر‬ لا
الوظيفة الإضافية لوحة المعلومات لا توجد هوية مطلوبة. ‏‫غير متوفر‬ لا
الوظيفة الإضافية توجيه التطبيق إدارة شهادات Azure DNS وAzure Key Vault دور مستخدم Key Vault Secrets ل Key Vault، ودور المساهم في منطقة DNZ لمناطق DNS، ودور المساهم في منطقة DNS الخاصة لمناطق DNS الخاصة لا
الوظيفة الإضافية HTTPApplicationRouting إدارة موارد الشبكة المطلوبة. دور القارئ لمجموعة موارد العقدة، دور المساهم لمنطقة DNS لا
الوظيفة الإضافية بوابة تطبيق Ingress إدارة موارد الشبكة المطلوبة. دور المساهم لمجموعة موارد العقدة لا
الوظيفة الإضافية omsagent يستخدم لإرسال مقاييس AKS إلى Azure Monitor. دور مراقبة القياسات Publisher لا
الوظيفة الإضافية Virtual-Node (ACIConnector) إدارة موارد الشبكة المطلوبة لمثيلات حاوية Azure (ACI). دور المساهم لمجموعة موارد العقدة لا
الوظيفة الإضافية تحليل التكلفة يستخدم لجمع بيانات تخصيص التكلفة
هوية حمل العمل معرف حمل عمل Microsoft Entra تمكين التطبيقات من الوصول إلى موارد السحابة بأمان باستخدام معرف حمل عمل Microsoft Entra. ‏‫غير متوفر‬ لا

تمكين الهويات المدارة على نظام مجموعة AKS جديد

إشعار

تنشئ AKS هوية kubelet المعينة من قبل المستخدم في مجموعة موارد العقدة إذا لم تحدد هوية kubelet المدارة الخاصة بك.

إشعار

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

  1. إنشاء مجموعة موارد Azure باستخدام az group create الأمر .

    az group create --name myResourceGroup --location westus2
    
  2. إنشاء نظام مجموعة AKS باستخدام az aks create الأمر .

    az aks create -g myResourceGroup -n myManagedCluster --enable-managed-identity
    
  3. احصل على بيانات الاعتماد للوصول إلى نظام المجموعة باستخدام az aks get-credentials الأمر .

    az aks get-credentials --resource-group myResourceGroup --name myManagedCluster
    

تمكين الهويات المدارة على مجموعة AKS موجودة

لتحديث نظام مجموعة AKS الحالي الذي يستخدم كيان خدمة لاستخدام هوية مدارة معينة من قبل النظام، قم بتشغيل az aks update الأمر .

az aks update -g myResourceGroup -n myManagedCluster --enable-managed-identity

بعد تحديث نظام المجموعة الخاص بك، تستخدم وحدة التحكم والقرون الهوية المدارة. يستمر Kubelet في استخدام كيان الخدمة حتى تقوم بترقية agentpool الخاص بك. يمكنك استخدام الأمر على az aks nodepool upgrade --resource-group myResourceGroup --cluster-name myAKSCluster --name mynodepool --node-image-only العقد للتحديث إلى هوية مدارة. تؤدي ترقية تجمع العقدة إلى التوقف عن العمل لمجموعة AKS الخاصة بك حيث يتم تطويق/استنزاف العقد في تجمعات العقد وإعادة تصورها.

إشعار

ضع المعلومات التالية في الاعتبار عند تحديث نظام المجموعة:

  • يعمل التحديث فقط إذا كان هناك تحديث VHD للاستهلاك. إذا كنت تقوم بتشغيل أحدث VHD، فستحتاج إلى الانتظار حتى يتوفر VHD التالي من أجل إجراء التحديث.

  • يضمن Azure CLI تعيين إذن الملحق بشكل صحيح بعد الترحيل. إذا كنت لا تستخدم Azure CLI لتنفيذ عملية الترحيل، فأنت بحاجة إلى معالجة إذن هوية الملحق بنفسك. للحصول على مثال باستخدام قالب Azure Resource Manager (ARM)، راجع تعيين أدوار Azure باستخدام قوالب ARM.

  • إذا كان نظام المجموعة الخاص بك يستخدم --attach-acr للسحب من الصور من Azure Container Registry، فأنت بحاجة إلى تشغيل az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR resource ID> الأمر بعد تحديث نظام المجموعة الخاص بك للسماح ل kubelet الذي تم إنشاؤه حديثا والمستخدم للهوية المدارة بالحصول على إذن السحب من ACR. وإلا، فلن تتمكن من السحب من ACR بعد التحديث.

إضافة تعيين دور للهوية المدارة

عند إنشاء شبكة ظاهرية خاصة بك واستخدامها، وإرفاق أقراص Azure أو عنوان IP ثابت أو جدول التوجيه أو هوية kubelet المعينة من قبل المستخدم حيث تكون الموارد خارج مجموعة موارد العقدة العاملة، يضيف Azure CLI تعيين الدور تلقائيا. إذا كنت تستخدم قالب ARM أو أسلوبا آخر، فأنت بحاجة إلى استخدام المعرف الأساسي للهوية المدارة لنظام المجموعة لتنفيذ تعيين دور.

إذا كنت لا تستخدم Azure CLI، ولكنك تستخدم VNet الخاص بك، أو إرفاق أقراص Azure، أو عنوان IP ثابت، أو جدول التوجيه، أو هوية kubelet المعينة من قبل المستخدم خارج مجموعة موارد العقدة العاملة، نوصي باستخدام الهوية المدارة المعينة من قبل المستخدم لمستوى التحكم. لكي تستخدم وحدة التحكم هوية مدارة معينة من قبل النظام، لا يمكننا الحصول على معرف الهوية قبل إنشاء نظام المجموعة، ما يؤخر تعيين الدور من التنفيذ.

الحصول على المعرف الأساسي للهوية المدارة

  • احصل على المعرف الأساسي للهوية الموجودة باستخدام az identity show الأمر .

    az identity show --ids <identity-resource-id>
    

    يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:

    {
      "clientId": "<client-id>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity",
      "location": "eastus",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

إضافة تعيين دور

بالنسبة إلى VNet أو قرص Azure المرفق أو عنوان IP ثابت أو جدول التوجيه خارج مجموعة موارد عقدة العامل الافتراضية، تحتاج إلى تعيين Contributor الدور على مجموعة الموارد المخصصة.

  • تعيين الدور على Contributor مجموعة الموارد المخصصة باستخدام az role assignment create الأمر .

    az role assignment create --assignee <control-plane-identity-principal-id> --role "Contributor" --scope "<custom-resource-group-resource-id>"
    

بالنسبة لهوية kubelet المعينة من قبل المستخدم خارج مجموعة موارد عقدة العامل الافتراضية، تحتاج إلى تعيين دور عامل تشغيل الهوية المدارة على هوية kubelet للهوية المدارة لمستوى التحكم.

  • تعيين الدور على Managed Identity Operator هوية kubelet باستخدام az role assignment create الأمر .

    az role assignment create --assignee  <control-plane-identity-principal-id> --role "Managed Identity Operator" --scope "<kubelet-identity-resource-id>"
    

إشعار

قد يستغرق الأمر ما يصل إلى 60 دقيقة للأذونات الممنوحة للهوية المدارة لنظام المجموعة الخاص بك للتعبئة.

إحضار هويتك المدارة

إنشاء نظام مجموعة باستخدام الهوية المدارة المعينة من قبل المستخدم

تتيح الهوية المدارة المخصصة المعينة من قبل المستخدم لمستوى التحكم الوصول إلى الهوية الموجودة قبل إنشاء نظام المجموعة. تمكن هذه الميزة سيناريوهات مثل استخدام VNet مخصص أو نوع صادر من UDR مع هوية مدارة تم إنشاؤها مسبقا.

إشعار

لا يتم دعم مناطق USDOD Central وUSDOD East وUSGov Iowa في سحابة Azure US Government.

تنشئ AKS هوية kubelet المعينة من قبل المستخدم في مجموعة موارد العقدة إذا لم تحدد هوية kubelet المدارة الخاصة بك.

  • إذا لم يكن لديك هوية مدارة، فبادر بإنشاء هوية باستخدام az identity create الأمر .

    az identity create --name myIdentity --resource-group myResourceGroup
    

    يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:

    {                                  
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
      "location": "westus2",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

إشعار

قد يستغرق الأمر ما يصل إلى 60 دقيقة للأذونات الممنوحة للهوية المدارة لنظام المجموعة الخاص بك للتعبئة.

  • قبل إنشاء نظام المجموعة، أضف تعيين الدور للهوية المدارة az role assignment create باستخدام الأمر .

  • إنشاء نظام المجموعة باستخدام الهوية المدارة المعينة من قبل المستخدم.

    az aks create \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --network-plugin azure \
        --vnet-subnet-id <subnet-id> \
        --dns-service-ip 10.2.0.10 \
        --service-cidr 10.2.0.0/24 \
        --enable-managed-identity \
        --assign-identity <identity-resource-id>
    

تحديث الهوية المدارة على نظام مجموعة موجود

إشعار

لا يؤدي ترحيل هوية مدارة لمستوى التحكم، من تعيين النظام إلى تعيين المستخدم، إلى أي وقت تعطل لمستوى التحكم وتجمعات الوكلاء. وفي الوقت نفسه، تستمر مكونات وحدة التحكم في استخدام الهوية القديمة المعينة من قبل النظام لعدة ساعات حتى تحديث الرمز المميز التالي.

  • إذا لم يكن لديك هوية مدارة، فبادر بإنشاء هوية باستخدام az identity create الأمر .

    az identity create --name myIdentity --resource-group myResourceGroup
    

    يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:

    {                                  
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
      "location": "westus2",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    
  • بعد إنشاء الهوية المدارة المخصصة المعينة من قبل المستخدم لمستوى التحكم، أضف تعيين الدور للهوية المدارة az role assignment create باستخدام الأمر .

  • تحديث نظام المجموعة الخاص بك مع الهويات الموجودة باستخدام az aks update الأمر . تأكد من توفير معرف المورد للهوية المدارة لمستوى التحكم عن طريق تضمين الوسيطة assign-identity .

    az aks update \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --enable-managed-identity \
        --assign-identity <identity-resource-id> 
    

    يجب أن يشبه الإخراج الخاص بك لتحديث نظام المجموعة الناجح باستخدام الهوية المدارة kubelet الخاصة بك إخراج المثال التالي:

      "identity": {
        "principalId": null,
        "tenantId": null,
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
            "clientId": "<client-id>",
            "principalId": "<principal-id>"
          }
        }
      },
    

استخدام هوية مدارة kubelet تم إنشاؤها مسبقًا

تتيح هوية kubelet الوصول إلى الهوية الموجودة قبل إنشاء نظام المجموعة. تمكن هذه الميزة سيناريوهات مثل الاتصال بـ ACR مع هوية مدارة تم إنشاؤها مسبقا.

قيود هوية kubelet التي تم إنشاؤها مسبقا

  • يعمل فقط مع نظام مجموعة مدارة معينة للعميل.
  • لا يتم دعم منطقتي شرق الصين وشمال الصين في Microsoft Azure التي تديرها 21Vianet.

إنشاء الهويات المُدارة التي يعينها المستخدم

الهوية المدارة لمستوى التحكم

  • إذا لم يكن لديك هوية مدارة لمستوى التحكم، فبادر بإنشاء واحدة باستخدام az identity create.

    az identity create --name myIdentity --resource-group myResourceGroup
    

    يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:

    {                                  
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity", 
      "location": "westus2",
      "name": "myIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

الهوية المدارة kubelet

  • إذا لم يكن لديك هوية مدارة kubelet، قم بإنشاء واحدة باستخدام az identity create الأمر .

    az identity create --name myKubeletIdentity --resource-group myResourceGroup
    

    يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:

    {
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity", 
      "location": "westus2",
      "name": "myKubeletIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    

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

الآن يمكنك إنشاء نظام مجموعة AKS الخاص بك مع الهويات الموجودة لديك. تأكد من توفير معرف المورد للهوية المدارة لمستوى التحكم عن طريق تضمين الوسيطة assign-identity والهوية المدارة kubelet باستخدام الوسيطة assign-kubelet-identity .

  • إنشاء نظام مجموعة AKS مع الهويات الموجودة باستخدام az aks create الأمر .

    az aks create \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --network-plugin azure \
        --vnet-subnet-id <subnet-id> \
        --dns-service-ip 10.2.0.10 \
        --service-cidr 10.2.0.0/24 \
        --enable-managed-identity \
        --assign-identity <identity-resource-id> \
        --assign-kubelet-identity <kubelet-identity-resource-id>
    

    يجب أن يشبه إنشاء نظام مجموعة AKS الناجح باستخدام الهوية المدارة kubelet الخاصة بك إخراج المثال التالي:

      "identity": {
        "principalId": null,
        "tenantId": null,
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
            "clientId": "<client-id>",
            "principalId": "<principal-id>"
          }
        }
      },
      "identityProfile": {
        "kubeletidentity": {
          "clientId": "<client-id>",
          "objectId": "<object-id>",
          "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
        }
      },
    

تحديث نظام مجموعة موجود باستخدام هوية kubelet

تحذير

يؤدي تحديث الهوية المدارة kubelet إلى ترقية تجمعات العقد، مما يؤدي إلى توقف نظام مجموعة AKS حيث يتم تطويق/استنزاف العقد في تجمعات العقدة وإعادة تصورها.

إشعار

إذا كان نظام المجموعة الخاص بك يستخدم --attach-acr للسحب من الصور من Azure Container Registry، فأنت بحاجة إلى تشغيل az aks update --resource-group myResourceGroup --name myAKSCluster --attach-acr <ACR Resource ID> الأمر بعد تحديث نظام المجموعة الخاص بك للسماح ل kubelet الذي تم إنشاؤه حديثا والمستخدم للهوية المدارة بالحصول على إذن السحب من ACR. وإلا لن تتمكن من سحب ACR بعد الترقية.

الحصول على الهوية المدارة لمستوى التحكم الحالي لمجموعة AKS

  1. تأكد من أن نظام مجموعة AKS الخاص بك يستخدم الهوية المدارة المعينة من قبل المستخدم باستخدام az aks show الأمر .

    az aks show -g <RGName> -n <ClusterName> --query "servicePrincipalProfile"
    

    إذا كان نظام المجموعة الخاص بك يستخدم هوية مدارة، يظهر clientId الإخراج بقيمة msi. يظهر نظام المجموعة الذي يستخدم كيان الخدمة معرف كائن. على سبيل المثال:

    {
      "clientId": "msi"
    }
    
  2. بعد تأكيد أن نظام المجموعة الخاص بك يستخدم هوية مدارة، ابحث عن معرف مورد الهوية المدارة az aks show باستخدام الأمر .

    az aks show -g <RGName> -n <ClusterName> --query "identity"
    

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

    {
      "principalId": null,
      "tenantId": null,
      "type": "UserAssigned",
      "userAssignedIdentities": <identity-resource-id>
          "clientId": "<client-id>",
          "principalId": "<principal-id>"
    },
    

تحديث نظام المجموعة باستخدام هوية kubelet

  1. إذا لم يكن لديك هوية مدارة kubelet، قم بإنشاء واحدة باستخدام az identity create الأمر .

    az identity create --name myKubeletIdentity --resource-group myResourceGroup
    

    يجب أن يشبه الإخراج الخاص بك إخراج المثال التالي:

    {
      "clientId": "<client-id>",
      "clientSecretUrl": "<clientSecretUrl>",
      "id": "/subscriptions/<subscriptionid>/resourcegroups/myResourceGroup/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity",
      "location": "westus2",
      "name": "myKubeletIdentity",
      "principalId": "<principal-id>",
      "resourceGroup": "myResourceGroup",                       
      "tags": {},
      "tenantId": "<tenant-id>",
      "type": "Microsoft.ManagedIdentity/userAssignedIdentities"
    }
    
  2. تحديث نظام المجموعة الخاص بك مع الهويات الموجودة باستخدام az aks update الأمر . تأكد من توفير معرف المورد للهوية المدارة لمستوى التحكم عن طريق تضمين الوسيطة assign-identity والهوية المدارة kubelet للوسيطة assign-kubelet-identity .

    az aks update \
        --resource-group myResourceGroup \
        --name myManagedCluster \
        --enable-managed-identity \
        --assign-identity <identity-resource-id> \
        --assign-kubelet-identity <kubelet-identity-resource-id>
    

    يجب أن يشبه الإخراج الخاص بك لتحديث نظام المجموعة الناجح باستخدام الهوية المدارة kubelet الخاصة بك إخراج المثال التالي:

      "identity": {
        "principalId": null,
        "tenantId": null,
        "type": "UserAssigned",
        "userAssignedIdentities": {
          "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myIdentity": {
            "clientId": "<client-id>",
            "principalId": "<principal-id>"
          }
        }
      },
      "identityProfile": {
        "kubeletidentity": {
          "clientId": "<client-id>",
          "objectId": "<object-id>",
          "resourceId": "/subscriptions/<subscriptionid>/resourcegroups/resourcegroups/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myKubeletIdentity"
        }
      },
    

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

  • استخدم قوالب Azure Resource Manager لإنشاء مجموعة مدارة ممكنة للهوية.
  • تعرف على كيفية [استخدام kubelogin][kubelogin-authentication] لجميع أساليب مصادقة Microsoft Entra المدعومة في AKS.