استخدام هوية مدارة في خدمة 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-identity
pod . يمكن تكوين AzurePodIdentityException CRD لإعلامaad-pod-identity
أي طلبات إلى نقطة نهاية بيانات التعريف التي تنشأ من جراب يطابق التسميات المحددة في CRD يجب أن تكون مدعومة دون أي معالجة في NMI. يجب استبعاد وحدات pod ذات تسميةkubernetes.azure.com/managedby: aks
في مساحة اسم kube-system فيaad-pod-identity
من خلال تكوين AzurePodIdentityException CRD.- لمزيد من المعلومات، راجع تعطيل هوية Microsoft Entra ID-pod ل pod أو تطبيق معين.
- لتكوين استثناء، قم بتثبيت YAML استثناء هيئة التصنيع العسكري.
- لا تدعم 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 المدارة الخاصة بك.
إشعار
إذا كانت مجموعتك تستخدم هوية مدارة بالفعل وتم تغيير الهوية، على سبيل المثال قمت بتحديث نوع هوية نظام المجموعة من المعين من قبل النظام إلى المعين من قبل المستخدم، فهناك تأخير لمكونات وحدة التحكم للتبديل إلى الهوية الجديدة. تستمر مكونات وحدة التحكم في استخدام الهوية القديمة حتى تنتهي صلاحية الرمز المميز الخاص بها. بعد تحديث الرمز المميز، يقومون بالتبديل إلى الهوية الجديدة. قد تستغرق هذه العملية عدة ساعات.
إنشاء مجموعة موارد Azure باستخدام
az group create
الأمر .az group create --name myResourceGroup --location westus2
إنشاء نظام مجموعة AKS باستخدام
az aks create
الأمر .az aks create -g myResourceGroup -n myManagedCluster --enable-managed-identity
احصل على بيانات الاعتماد للوصول إلى نظام المجموعة باستخدام
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
تأكد من أن نظام مجموعة AKS الخاص بك يستخدم الهوية المدارة المعينة من قبل المستخدم باستخدام
az aks show
الأمر .az aks show -g <RGName> -n <ClusterName> --query "servicePrincipalProfile"
إذا كان نظام المجموعة الخاص بك يستخدم هوية مدارة، يظهر
clientId
الإخراج بقيمة msi. يظهر نظام المجموعة الذي يستخدم كيان الخدمة معرف كائن. على سبيل المثال:{ "clientId": "msi" }
بعد تأكيد أن نظام المجموعة الخاص بك يستخدم هوية مدارة، ابحث عن معرف مورد الهوية المدارة
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
إذا لم يكن لديك هوية مدارة 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" }
تحديث نظام المجموعة الخاص بك مع الهويات الموجودة باستخدام
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.