الاتصال إلى مجموعة 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 المتصلة بشكل افتراضي.

  1. تعيين المتغيرات المطلوبة. استبدل العناصر النائبة بالقيم الفعلية ذات الصلة ببيئة 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)
    
  2. احصل على أسماء عقد نظام المجموعة المتوفرة.

    az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
    
  3. عينة الإخراج:

    "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs"
    "mynexusk8scluster-0b32128d-control-plane-qq5jm"
    
  4. تعيين اسم عقدة نظام المجموعة إلى متغير VM_NAME.

    VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    
  5. قم بتشغيل الأمر التالي إلى 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 ما يلزم للاتصال بالمجموعة من أي مكان، حتى خارج جدار الحماية الذي يحيط به.

  1. تعيين CLUSTER_NAMEالمتغيرات RESOURCE_GROUP و SUBSCRIPTION_ID .

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. الاستعلام عن مجموعة الموارد المدارة مع 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)
    
  3. يبدأ الأمر التالي وكيل connectedk8s الذي يسمح لك بالاتصال بخادم Kubernetes API لمجموعة Nexus Kubernetes المحددة.

    az connectedk8s proxy -n $CLUSTER_NAME  -g $MANAGED_RESOURCE_GROUP &
    
  4. استخدم kubectl لإرسال الطلبات إلى نظام المجموعة:

    kubectl get pods -A
    

    يجب أن تشاهد الآن استجابة من المجموعة التي تحتوي على قائمة بجميع العقد.

إشعار

إذا رأيت رسالة الخطأ "فشل نشر الرمز المميز للوصول إلى وكيل العميلFailed للاتصال ب MSI"، فقد تحتاج إلى إجراء az login لإعادة المصادقة باستخدام Azure.

الوصول إلى عقد نظام المجموعة عبر Azure Arc ل Kubernetes

بمجرد الاتصال بنظام مجموعة عبر Arc ل Kubernetes، يمكنك الاتصال بعقدة Kubernetes الفردية باستخدام kubectl debug الأمر لتشغيل حاوية مميزة على العقدة الخاصة بك.

  1. سرد العقد في مجموعة 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
    
  2. ابدأ حاوية مميزة على العقدة الخاصة بك واتصل بها:

    $> 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 في سطر الأوامر.

  3. عند الانتهاء من جراب تصحيح الأخطاء، أدخل 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

  1. قم بتعيين متغيرات RESOURCE_GROUP CLUSTER_NAME SUBSCRIPTION_ID لمطابقة البيئة الخاصة بك.

    RESOURCE_GROUP="myResourceGroup"
    CLUSTER_NAME="myNexusK8sCluster"
    SUBSCRIPTION_ID="<Subscription ID>"
    
  2. نفذ الأمر التالي للحصول على عنوان 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)}'
    
  3. فيما يلي عينة إخراج الأمر.

    {
      "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، اتبع الخطوات التالية:

  1. انتقل إلى مدخل Microsoft Azure وسجل الدخول باستخدام اسم المستخدم وكلمة المرور.
  2. اكتب 'Kubernetes Cluster (Operator Nexus)' في مربع البحث وحدد خدمة 'Kubernetes Cluster' من قائمة النتائج.

لقطة شاشة لاستعراض خدمة Nexus Kubernetes.

  1. ابحث عن مورد 'Nexus Kubernetes cluster' المحدد الذي تحتاج إليه لاستخدام البحث.

لقطة شاشة لاستعراض مجموعة Nexus Kubernetes.

  1. بمجرد العثور على المورد الصحيح عن طريق مطابقة اسمه مع اسم نظام المجموعة، حدد المورد للانتقال إلى الصفحة الرئيسية "مجموعة Kubernetes".

لقطة شاشة للصفحة الرئيسية لمجموعة Nexus Kubernetes.

  1. بمجرد العثور على المورد الصحيح عن طريق مطابقة اسمه مع اسم نظام المجموعة، انتقل إلى قسم "عقد نظام مجموعة Kubernetes" في القائمة اليمنى.

لقطة شاشة لاستعراض عقد نظام مجموعة Nexus Kubernetes.

  1. حدد اسم عقدة Kubernetes الذي تهتم به للاطلاع على تفاصيله.
  2. تحقق من علامة التبويب "الشبكات المرفقة" للعثور على عنوان IP الخاص بالعقدة "شبكة الطبقة 3" التي تستخدم كشبكة CNI.

لقطة شاشة لاستعراض شبكات عقدة نظام مجموعة Nexus Kubernetes.

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

جرب المقالات التالية لمعرفة المزيد حول مجموعة Azure Operator Nexus Kubernetes.