استخدام الاتصال Cluster للاتصال بمجموعات Kubernetes التي تدعم Azure Arc
باستخدام Cluster الاتصال، يمكنك الاتصال بأمان بمجموعات Kubernetes التي تدعم Azure Arc دون الحاجة إلى تمكين أي منفذ وارد على جدار الحماية. يتيح الوصول إلى apiserver مجموعة Kubernetes التي تدعم Azure Arc السيناريوهات التالية:
- تمكين تصحيح الأخطاء التفاعلية واستكشاف الأخطاء وإصلاحها.
- توفير وصول الكتلة إلى خدمات Azure للمواقع المخصصة والموارد الأخرى التي تم إنشاؤها فوقها.
تتوفر نظرة عامة مفاهيمية لهذه الميزة في مقالة Kubernetes التي تدعم Azure Arc - Cluster connect .
المتطلبات الأساسية
قم بتثبيت
connectedk8sملحق Azure CLI للإصدار >= 1.2.5:az extension add --name connectedk8sإذا سبق لك تثبيت الإضافة، فقم بتحديث الإضافة
connectedk8sإلى أحدث إصدار:az extension update --name connectedk8sمجموعة Kubernetes المتصلة الحالية والممكّنة من Azure Arc.
- إذا لم تكن قد قمت بتوصيل مجموعة بعد، فاستخدم ميزة التشغيل السريع.
- قم بترقية وكلائك إلى الإصدار >= 1.5.3.
قم بتمكين نقاط النهاية أدناه للوصول الصادر بالإضافة إلى النقاط المذكورة ضمن توصيل مجموعة Kubernetes ب Azure Arc:
نقطة النهاية المنفذ *.servicebus.windows.net443 guestnotificationservice.azure.com,*.guestnotificationservice.azure.com443 استبدل العناصر النائبة وقم بتشغيل الأمر أدناه لتعيين متغيرات البيئة المستخدمة في هذا المستند:
CLUSTER_NAME=<cluster-name> RESOURCE_GROUP=<resource-group-name> ARM_ID_CLUSTER=$(az connectedk8s show -n $CLUSTER_NAME -g $RESOURCE_GROUP --query id -o tsv)
تمكين ميزة الاتصال الكتلة
يمكنك تمكين الاتصال نظام المجموعة على أي نظام مجموعة Kubernetes ممكنة من Azure Arc عن طريق تشغيل الأمر التالي على جهاز حيث kubeconfig يتم توجيه الملف إلى مجموعة القلق:
az connectedk8s enable-features --features cluster-connect -n $CLUSTER_NAME -g $RESOURCE_GROUP
خيار مصادقة Azure Active Directory
احصل على المقترن
objectIdبكيان Azure AD الخاص بك:لحساب مستخدم Azure AD:
AAD_ENTITY_OBJECT_ID=$(az ad signed-in-user show --query objectId -o tsv)لتطبيق Azure AD:
AAD_ENTITY_OBJECT_ID=$(az ad sp show --id <id> --query objectId -o tsv)
تفويض الكيان بالأذونات المناسبة:
إذا كنت تستخدم Kubernetes ClusterRoleBinding الأصلي أو RoleBinding للتحقق من التخويل على المجموعة، مع
kubeconfigتوجيه الملف إلى الكتلة الخاصة بك للوصول المباشر، فيمكنك إنشاء ملف تم تعيينه إلى كيان Azure AD (أصل الخدمة أو المستخدم) الذي يحتاج إلى الوصول إلىapiserverهذه المجموعة. مثال:kubectl create clusterrolebinding admin-user-binding --clusterrole cluster-admin --user=$AAD_ENTITY_OBJECT_IDإذا كنت تستخدم Azure RBAC لعمليات التحقق من التخويل على المجموعة، فيمكنك إنشاء تعيين دور Azure تم تعيينه إلى كيان Azure AD. مثال:
az role assignment create --role "Azure Arc Kubernetes Viewer" --assignee $AAD_ENTITY_OBJECT_ID --scope $ARM_ID_CLUSTER
خيار مصادقة الرمز المميز لحساب الخدمة
باستخدام الملف الذي
kubeconfigapiserverيشير إلى مجموعة Kubernetes الخاصة بك، قم بإنشاء حساب خدمة في أي مساحة اسم (يقوم الأمر التالي بإنشائه في مساحة الاسم الافتراضية):kubectl create serviceaccount admin-userإنشاء ClusterRoleBinding أو RoleBinding لمنح حساب الخدمة هذا الأذونات المناسبة على نظام المجموعة. مثال:
kubectl create clusterrolebinding admin-user-binding --clusterrole cluster-admin --serviceaccount default:admin-userالحصول على الرمز المميز لحساب الخدمة باستخدام الأوامر التالية
SECRET_NAME=$(kubectl get serviceaccount admin-user -o jsonpath='{$.secrets[0].name}')TOKEN=$(kubectl get secret ${SECRET_NAME} -o jsonpath='{$.data.token}' | base64 -d | sed $'s/$/\\\n/g')
الوصول إلى مجموعتك
قم بإعداد kubeconfig المستند إلى الاتصال المجموعة اللازمة للوصول إلى مجموعتك استنادا إلى خيار المصادقة المستخدم:
في حالة استخدام خيار مصادقة Azure Active Directory، بعد تسجيل الدخول إلى Azure CLI باستخدام كيان Azure AD محل الاهتمام، احصل على الاتصال
kubeconfigCluster اللازمة للاتصال بالمجموعة من أي مكان (حتى من خارج جدار الحماية المحيط بالكتلة):az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUPفي حالة استخدام خيار مصادقة حساب الخدمة، احصل على الاتصال
kubeconfigالمجموعة اللازمة للاتصال بالمجموعة من أي مكان:az connectedk8s proxy -n $CLUSTER_NAME -g $RESOURCE_GROUP --token $TOKEN
استخدم
kubectlلإرسال الطلبات إلى المجموعة:kubectl get podsيجب أن تشاهد الآن استجابة من الكتلة التي تحتوي على قائمة بجميع القرون تحت
defaultمساحة الاسم.
القيود المعروفة
عند تقديم طلبات إلى مجموعة Kubernetes، إذا كان كيان Azure AD المستخدم جزءا من أكثر من 200 مجموعة، ملاحظة الخطأ التالي لأن هذا قيد معروف:
You must be logged in to the server (Error:Error while retrieving group info. Error:Overage claim (users with more than 200 group membership) is currently not supported.
لتجاوز هذا الخطأ:
- قم بإنشاء مدير خدمة، والذي من غير المرجح أن يكون عضوا في أكثر من 200 مجموعة.
- سجل الدخول إلى Azure CLI باستخدام مبدأ الخدمة قبل تشغيل
az connectedk8s proxyالأمر.
الخطوات التالية
إعداد Azure AD RBAC على مجموعاتك