الاتصال إلى مجموعة Azure Operator Nexus Kubernetes
طوال دورة حياة مجموعة Azure Operator Nexus Kubernetes، تحتاج في النهاية إلى الوصول مباشرة إلى عقدة نظام المجموعة. قد يكون هذا الوصول لعمليات الصيانة أو جمع السجل أو استكشاف الأخطاء وإصلاحها. يمكنك الوصول إلى عقدة من خلال المصادقة، والتي تختلف الأساليب اعتمادا على أسلوب الاتصال الخاص بك. يمكنك المصادقة بشكل آمن مقابل عقد نظام المجموعة من خلال خيارين تمت مناقشهما في هذه المقالة. لأسباب أمنية، لا تتعرض عقد نظام المجموعة للإنترنت. بدلا من ذلك، للاتصال مباشرة بعقد نظام المجموعة، تحتاج إلى استخدام عنوان kubectl debug
IP للمضيف أو من jumpbox.
المتطلبات الأساسية
- تم نشر مجموعة Azure Operator Nexus Kubernetes في مجموعة موارد في اشتراك Azure الخاص بك.
- مفتاح SSH الخاص لعقد نظام المجموعة.
- إلى SSH باستخدام عنوان IP للعقدة، يجب نشر جهاز ظاهري jumpbox على نفس شبكة واجهة شبكة الحاوية (CNI) كعقد نظام المجموعة.
الوصول إلى عقد نظام المجموعة عبر Azure Arc للخوادم
az ssh arc
يسمح الأمر للمستخدمين بالوصول عن بعد إلى جهاز ظاهري لنظام المجموعة تم توصيله ب Azure Arc. هذه الطريقة هي طريقة آمنة ل SSH في عقدة نظام المجموعة مباشرة من سطر الأوامر، مما يجعلها طريقة سريعة وفعالة للإدارة عن بعد.
إشعار
عقد مجموعة عامل التشغيل Nexus Kubernetes هي خوادم Arc المتصلة بشكل افتراضي.
تعيين المتغيرات المطلوبة. استبدل العناصر النائبة بالقيم الفعلية ذات الصلة ببيئة Azure وكتلة Nexus Kubernetes.
RESOURCE_GROUP="myResourceGroup" # Resource group where the Nexus Kubernetes cluster is deployed CLUSTER_NAME="myNexusK8sCluster" # Name of the Nexus Kubernetes cluster SUBSCRIPTION_ID="<Subscription ID>" # Azure subscription ID ADMIN_USERNAME="azureuser" # Username for the cluster administrator (--admin-username parameter value used during cluster creation) SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>" # Path to the SSH private key file MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)
احصل على أسماء عقد نظام المجموعة المتوفرة.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
عينة الإخراج:
"mynexusk8scluster-0b32128d-agentpool1-md-7h9t4" "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs" "mynexusk8scluster-0b32128d-control-plane-qq5jm"
تعيين اسم عقدة نظام المجموعة إلى متغير VM_NAME.
VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
قم بتشغيل الأمر التالي إلى SSH في عقدة نظام المجموعة.
az ssh arc --subscription $SUBSCRIPTION_ID \ --resource-group $MANAGED_RESOURCE_GROUP \ --name $VM_NAME \ --local-user $ADMIN_USERNAME \ --private-key-file $SSH_PRIVATE_KEY_FILE
الوصول إلى العقد باستخدام واجهة برمجة تطبيقات Kubernetes
يتطلب هذا الأسلوب استخدام kubectl debug
الأمر . يقتصر هذا الأسلوب على الحاويات وقد يفوته مشكلات نظام أوسع، على عكس SSH (باستخدام "az ssh arc" أو IP المباشر)، والذي يوفر الوصول الكامل إلى العقدة والتحكم فيها.
الوصول إلى واجهة برمجة تطبيقات Kubernetes عبر Azure Arc ل Kubernetes
إشعار
عند إنشاء مجموعة Nexus Kubernetes، تقوم Nexus تلقائيا بإنشاء مجموعة موارد مدارة مخصصة لتخزين موارد نظام المجموعة، داخل هذه المجموعة، يتم إنشاء مورد نظام المجموعة المتصل ب Arc.
للوصول إلى نظام المجموعة الخاص بك، تحتاج إلى إعداد اتصال kubeconfig
نظام المجموعة . بعد تسجيل الدخول إلى Azure CLI باستخدام كيان Microsoft Entra ذي الصلة، يمكنك الحصول على kubeconfig
ما يلزم للاتصال بالمجموعة من أي مكان، حتى خارج جدار الحماية الذي يحيط به.
تعيين
CLUSTER_NAME
المتغيراتRESOURCE_GROUP
وSUBSCRIPTION_ID
.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
الاستعلام عن مجموعة الموارد المدارة مع
az
وتخزينها فيMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
يبدأ الأمر التالي وكيل connectedk8s الذي يسمح لك بالاتصال بخادم Kubernetes API لمجموعة Nexus Kubernetes المحددة.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
استخدم
kubectl
لإرسال الطلبات إلى نظام المجموعة:kubectl get pods -A
يجب أن تشاهد الآن استجابة من المجموعة التي تحتوي على قائمة بجميع العقد.
إشعار
إذا رأيت رسالة الخطأ "فشل نشر الرمز المميز للوصول إلى وكيل العميلFailed للاتصال ب MSI"، فقد تحتاج إلى إجراء az login
لإعادة المصادقة باستخدام Azure.
الوصول إلى عقد نظام المجموعة عبر Azure Arc ل Kubernetes
بمجرد الاتصال بنظام مجموعة عبر Arc ل Kubernetes، يمكنك الاتصال بعقدة Kubernetes الفردية باستخدام kubectl debug
الأمر لتشغيل حاوية مميزة على العقدة الخاصة بك.
سرد العقد في مجموعة Nexus Kubernetes الخاصة بك:
$> kubectl get nodes NAME STATUS ROLES AGE VERSION mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-agentpool1-md-c6xbs Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-control-plane-qq5jm Ready <none> 124m v1.24.9
ابدأ حاوية مميزة على العقدة الخاصة بك واتصل بها:
$> kubectl debug node/mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 -it --image=mcr.microsoft.com/cbl-mariner/base/core:2.0 Creating debugging pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg with container debugger on node mynexusk8scluster-0b32128d-agentpool1-md-7h9t4. If you don't see a command prompt, try pressing enter. root [ / ]#
تتيح هذه الحاوية المميزة الوصول إلى العقدة. تنفيذ الأوامر على عقدة نظام المجموعة عن طريق تشغيل
chroot /host
في سطر الأوامر.عند الانتهاء من جراب تصحيح الأخطاء، أدخل
exit
الأمر لإنهاء جلسة shell التفاعلية. بعد الخروج من shell، تأكد من حذف pod:kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
إنشاء اتصال shell تفاعلي بعقدة باستخدام عنوان IP
الاتصال إلى عقدة نظام المجموعة من Azure jumpbox
خيار آخر للاتصال بأمان بعقدة مجموعة Azure Operator Nexus Kubernetes هو إعداد وصول مباشر إلى شبكة CNI الخاصة بنظام المجموعة من Azure jumpbox VM. باستخدام هذا الأسلوب، يمكنك SSH في عقد نظام المجموعة، وتنفيذ الأوامر أيضا kubectl
مقابل نظام المجموعة باستخدام kubeconfig
الملف.
تواصل مع مسؤول الشبكة لإعداد اتصال مباشر من Azure jumpbox VM إلى شبكة CNI الخاصة بنظام المجموعة.
الاتصال إلى عقدة نظام المجموعة من jumpbox المحلي
إنشاء وصول مباشر إلى CNI الخاص بالمجموعة (واجهة شبكة الحاوية) من داخل مربع الانتقال المحلي. يمكنك هذا الوصول المباشر من SSH في عقد نظام المجموعة، ويسمح لك بتنفيذ kubectl
الأوامر باستخدام kubeconfig
الملف.
تواصل مع مسؤول الشبكة لإعداد هذا الاتصال المباشر بشبكة CNI الخاصة بالمجموعة.
عنوان IP لعقد نظام المجموعة
قبل أن تتمكن من الاتصال بعقد نظام المجموعة، تحتاج إلى العثور على عنوان IP للعقد. يمكن العثور على عنوان IP للعقد باستخدام مدخل Azure أو Azure CLI.
استخدام Azure CLI
قم بتعيين متغيرات RESOURCE_GROUP CLUSTER_NAME SUBSCRIPTION_ID لمطابقة البيئة الخاصة بك.
RESOURCE_GROUP="myResourceGroup" CLUSTER_NAME="myNexusK8sCluster" SUBSCRIPTION_ID="<Subscription ID>"
نفذ الأمر التالي للحصول على عنوان IP للعقد.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[] | select(any(.networkAttachments[]; .networkAttachmentName == "defaultcni")) | {name: .name, ipv4Address: (.networkAttachments[] | select(.networkAttachmentName == "defaultcni").ipv4Address)}'
فيما يلي عينة إخراج الأمر.
{ "name": "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4", "ipv4Address": "10.5.54.47" } { "name": "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs", "ipv4Address": "10.5.54.48" } { "name": "mynexusk8scluster-0b32128d-control-plane-qq5jm", "ipv4Address": "10.5.54.46" }
استخدام مدخل Microsoft Azure
للعثور على عنوان IP للجهاز الظاهري ل SSH، اتبع الخطوات التالية:
- انتقل إلى مدخل Microsoft Azure وسجل الدخول باستخدام اسم المستخدم وكلمة المرور.
- اكتب 'Kubernetes Cluster (Operator Nexus)' في مربع البحث وحدد خدمة 'Kubernetes Cluster' من قائمة النتائج.
- ابحث عن مورد 'Nexus Kubernetes cluster' المحدد الذي تحتاج إليه لاستخدام البحث.
- بمجرد العثور على المورد الصحيح عن طريق مطابقة اسمه مع اسم نظام المجموعة، حدد المورد للانتقال إلى الصفحة الرئيسية "مجموعة Kubernetes".
- بمجرد العثور على المورد الصحيح عن طريق مطابقة اسمه مع اسم نظام المجموعة، انتقل إلى قسم "عقد نظام مجموعة Kubernetes" في القائمة اليمنى.
- حدد اسم عقدة Kubernetes الذي تهتم به للاطلاع على تفاصيله.
- تحقق من علامة التبويب "الشبكات المرفقة" للعثور على عنوان IP الخاص بالعقدة "شبكة الطبقة 3" التي تستخدم كشبكة CNI.
الخطوات التالية
جرب المقالات التالية لمعرفة المزيد حول مجموعة Azure Operator Nexus Kubernetes.