التشغيل السريع: وصل نظام مجموعة Kubernetes قائم بالفعل ب Azure Arc

ابدأ باستخدام Kubernetes التي تدعم Azure Arc باستخدام Azure CLI أو Azure PowerShell لتوصيل مجموعة Kubernetes موجودة ب Azure Arc.

لإلقاء نظرة تصورية على توصيل المجموعات ب Azure Arc، راجع نظرة عامة على عامل Kubernetes الممكن في Azure Arc. لتجربة الأشياء في تجربة عينة/تدريب، قم بزيارة Azure Arc Jumpstart.

المتطلبات الأساسية

بالإضافة إلى هذه المتطلبات الأساسية، تأكد من تلبية جميع متطلبات الشبكة ل Kubernetes التي تدعم Azure Arc.

  • حساب Azure مع اشتراك نشط. أنشئ حساباً مجاناً.

  • فهم أساسي للمفاهيم الأساسية ل Kubernetes.

  • هوية (مستخدم أو كيان خدمة) يمكن استخدامها لتسجيل الدخول إلى Azure CLI وتوصيل نظام المجموعة الخاص بك ب Azure Arc.

  • أحدث إصدار من Azure CLI.

  • أحدث إصدار من ملحق connectedk8s Azure CLI، مثبت عن طريق تشغيل الأمر التالي:

    az extension add --name connectedk8s
    
  • نظام مجموعة Kubernetes قيد التشغيل. إذا لم يكن لديك واحد، يمكنك إنشاء نظام مجموعة مستخدماً أحد هذه الخيارات:

  • ما لا يقل عن 850 ميغابايت مجانا لعوامل Arc التي سيتم نشرها على نظام المجموعة، والقدرة على استخدام ما يقرب من 7٪ من وحدة المعالجة المركزية واحدة.

  • ملف kubeconfig والسياق يشير إلى نظام المجموعة الخاص بك.

تسجيل موفري Kubernetes الممكنة في Azure Arc

  1. أدخل الأوامر التالية:

    az provider register --namespace Microsoft.Kubernetes
    az provider register --namespace Microsoft.KubernetesConfiguration
    az provider register --namespace Microsoft.ExtendedLocation
    
  2. راقب عملية التسجيل. يمكن أن يستمر التسجيل لأكثر من 10 دقائق.

    az provider show -n Microsoft.Kubernetes -o table
    az provider show -n Microsoft.KubernetesConfiguration -o table
    az provider show -n Microsoft.ExtendedLocation -o table
    

    بمجرد التسجيل، ستظهر لك RegistrationState تغيير حالة مساحة الأسماء هذه إلى Registered.

إنشاء مجموعة موارد

شغّل الأمر التالي:

az group create --name AzureArcTest --location EastUS --output table

إخراج:

Location    Name
----------  ------------
eastus      AzureArcTest

الاتصال مجموعة Kubernetes موجودة

قم بتشغيل الأمر التالي لتوصيل نظام المجموعة الخاص بك. ينشر هذا الأمر عوامل Azure Arc إلى نظام المجموعة ويثبت Helm v. 3.6.3 إلى .azure مجلد جهاز التوزيع. يتم استخدام تثبيت Helm 3 هذا فقط ل Azure Arc، ولا يزيل أو يغير أي إصدارات مثبتة مسبقا من Helm على الجهاز.

في هذا المثال، اسم نظام المجموعة هو AzureArcTest1.

az connectedk8s connect --name AzureArcTest1 --resource-group AzureArcTest

إخراج:

Helm release deployment succeeded

    {
      "aadProfile": {
        "clientAppId": "",
        "serverAppId": "",
        "tenantId": ""
      },
      "agentPublicKeyCertificate": "xxxxxxxxxxxxxxxxxxx",
      "agentVersion": null,
      "connectivityStatus": "Connecting",
      "distribution": "gke",
      "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1",
      "identity": {
        "principalId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "tenantId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
        "type": "SystemAssigned"
      },
      "infrastructure": "gcp",
      "kubernetesVersion": null,
      "lastConnectivityTime": null,
      "location": "eastus",
      "managedIdentityCertificateExpirationTime": null,
      "name": "AzureArcTest1",
      "offering": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "AzureArcTest",
      "tags": {},
      "totalCoreCount": null,
      "totalNodeCount": null,
      "type": "Microsoft.Kubernetes/connectedClusters"
    }

تلميح

يعمل الأمر أعلاه بدون معلمة الموقع المحددة على إنشاء مورد Kubernetes الممكن له في Azure Arc في نفس موقع مجموعة الموارد. لإنشاء مورد Kubernetes مفعل في Azure Arc في موقع مختلف، حدد إما --location <region> أو-l <region> عند تشغيل az connectedk8s connect الأمر.

هام

إذا فشل النشر بسبب خطأ في المهلة، فراجع دليل استكشاف الأخطاء وإصلاحها للحصول على تفاصيل حول كيفية حل هذه المشكلة.

الاتصال باستخدام خادم وكيل خارجي

إذا كان نظام المجموعة الخاص بك خلف خادم وكيل صادر، يجب توجيه الطلبات عبر خادم الوكيل الصادر.

  1. على جهاز التوزيع، قم بتعيين متغيرات البيئة المطلوبة ل Azure CLI لاستخدام خادم الوكيل الصادر:

    export HTTP_PROXY=<proxy-server-ip-address>:<port>
    export HTTPS_PROXY=<proxy-server-ip-address>:<port>
    export NO_PROXY=<cluster-apiserver-ip-address>:<port>
    
  2. في مجموعة Kubernetes، قم بتشغيل أمر الاتصال مع proxy-https المعلمات و proxy-http المحددة. إذا تم إعداد الخادم الوكيل الخاص بك مع كل من HTTP وHTTPS، فتأكد من استخدام --proxy-http لوكيل HTTP ووكيل --proxy-https HTTPS. إذا كان الخادم الوكيل الخاص بك يستخدم HTTP فقط، يمكنك استخدام هذه القيمة لكلا المعلمتين.

    az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-https https://<proxy-server-ip-address>:<port> --proxy-http http://<proxy-server-ip-address>:<port> --proxy-skip-range <excludedIP>,<excludedCIDR> --proxy-cert <path-to-cert-file>
    

إشعار

  • بعض طلبات الشبكة مثل تلك التي تتضمن اتصالات بين خدمة إلى خدمة داخل نظام المجموعة تحتاج إلى أن يتم فصلها عن حركة البيانات التي يتم توجيهها عبر خادم الوكيل الخارجي للاتصال. يمكن استخدام المعلمة --proxy-skip-range لتحديد نطاق CIDR ونقاط النهاية بطريقة مفصولة بفاصلة بحيث لا ينتقل أي اتصال من العوامل إلى نقاط النهاية هذه عبر الوكيل الخارجي. وكحد أدنى، يجب تحديد نطاق CIDR للخدمات في نظام المجموعة كقيمة لهذه المعلمة. على سبيل المثال، لنقل إرجاع kubectl get svc -A قائمة بالخدمات حيث تحتوي كافة الخدمات على قيم ClusterIP في النطاق 10.0.0.0/16. ثم القيمة التي يجب تحديدها --proxy-skip-range هي 10.0.0.0/16,kubernetes.default.svc,.svc.cluster.local,.svc .
  • --proxy-http، و--proxy-https، و--proxy-skip-range هي المتوقعة في معظم بيئات الوكيل الخارجي. تكون --proxy-cert مطلوبة فقط إذا كنت بحاجة إلى إدخال شهادات موثوقة متوقعة بالوكالة في مخزن الشهادات الموثوق به من وكيل pods.
  • يجب تكوين الوكيل الصادر للسماح باتصالات websocket.

بالنسبة إلى خوادم الوكيل الصادرة حيث يجب توفير شهادة موثوق بها فقط دون إدخالات نقطة نهاية الخادم الوكيل، az connectedk8s connect يمكن تشغيلها مع الإدخال المحدد فقط --proxy-cert . في حالة توقع عدة شهادات موثوق بها، يمكن توفير سلسلة الشهادات المجمعة في ملف واحد باستخدام المعلمة --proxy-cert .

إشعار

  • --custom-ca-cert هو اسم مستعار ل --proxy-cert. يمكن استخدام أي من المعلمات بالتبادل. تمرير كلتا المعلمتين في نفس الأمر سيحترم المعلمة التي تم تمريرها مؤخرا.

قم بتشغيل أمر الاتصال مع المعلمة --proxy-cert المحددة:

az connectedk8s connect --name <cluster-name> --resource-group <resource-group> --proxy-cert <path-to-cert-file>

التحقق من اتصال نظام المجموعة

شغّل الأمر التالي:

az connectedk8s list --resource-group AzureArcTest --output table

إخراج:

Name           Location    ResourceGroup
-------------  ----------  ---------------
AzureArcTest1  eastus      AzureArcTest

إشعار

بعد ضم نظام المجموعة، يستغرق عرض بيانات تعريف نظام المجموعة حوالي من 5 لـ 10 دقائق (إصدار نظام المجموعة، إصدار الوكيل، عدد العقد، إلخ) على صفحة نظرة عامة لمورد Kubernetes المفعل في Azure Arc في مدخل Azure.

تلميح

للمساعدة في استكشاف المشكلات وإصلاحها أثناء توصيل نظام المجموعة، راجع تشخيص مشكلات الاتصال لمجموعات Kubernetes الممكنة في Azure Arc.

عرض عوامل Azure Arc ل Kubernetes

ينشر Kubernetes الذي يدعم Azure Arc العديد من العوامل في azure-arc مساحة الاسم.

  1. عرض عمليات النشر والتخزين المحمول حسب الطلب باستخدام:

    kubectl get deployments,pods -n azure-arc
    
  2. تحقق من أن جميع التخزين المخزون حسب الطلب في Running حالة.

    إخراج:

     NAME                                        READY   UP-TO-DATE   AVAILABLE   AGE
     deployment.apps/cluster-metadata-operator   1/1     1            1           13d
     deployment.apps/clusterconnect-agent        1/1     1            1           13d
     deployment.apps/clusteridentityoperator     1/1     1            1           13d
     deployment.apps/config-agent                1/1     1            1           13d
     deployment.apps/controller-manager          1/1     1            1           13d
     deployment.apps/extension-manager           1/1     1            1           13d
     deployment.apps/flux-logs-agent             1/1     1            1           13d
     deployment.apps/kube-aad-proxy              1/1     1            1           13d
     deployment.apps/metrics-agent               1/1     1            1           13d
     deployment.apps/resource-sync-agent         1/1     1            1           13d
    
     NAME                                            READY   STATUS    RESTARTS   AGE
     pod/cluster-metadata-operator-9568b899c-2stjn   2/2     Running   0          13d
     pod/clusterconnect-agent-576758886d-vggmv       3/3     Running   0          13d
     pod/clusteridentityoperator-6f59466c87-mm96j    2/2     Running   0          13d
     pod/config-agent-7cbd6cb89f-9fdnt               2/2     Running   0          13d
     pod/controller-manager-df6d56db5-kxmfj          2/2     Running   0          13d
     pod/extension-manager-58c94c5b89-c6q72          2/2     Running   0          13d
     pod/flux-logs-agent-6db9687fcb-rmxww            1/1     Running   0          13d
     pod/kube-aad-proxy-67b87b9f55-bthqv             2/2     Running   0          13d
     pod/metrics-agent-575c565fd9-k5j2t              2/2     Running   0          13d
     pod/resource-sync-agent-6bbd8bcd86-x5bk5        2/2     Running   0          13d
    

لمزيد من المعلومات حول هذه العوامل، راجع نظرة عامة على عامل Kubernetes الممكن في Azure Arc.

تنظيف الموارد

تستطيع حذف مورد Kubernetes المفعل في AzureArc، وأي موارد تكوين ذات صلة وأي عوامل قيد التشغيل على نظام المجموعة باستخدام Azure CLI مستخدمًا الأمر التالي:

az connectedk8s delete --name AzureArcTest1 --resource-group AzureArcTest

إذا فشلت عملية الحذف، فاستخدم الأمر التالي لفرض الحذف (إضافة -y إذا كنت تريد تجاوز موجه التأكيد):

az connectedk8s delete -n AzureArcTest1 -g AzureArcTest --force

يمكن أيضا استخدام هذا الأمر إذا واجهت مشكلات عند إنشاء نشر نظام مجموعة جديد (بسبب عدم إزالة الموارد التي تم إنشاؤها مسبقا بالكامل).

إشعار

يؤدي حذف مورد Kubernetes الذي يدعم Azure Arc باستخدام مدخل Microsoft Azure إلى إزالة أي موارد تكوين مقترنة، ولكنه لا يزيل أي عوامل تعمل على نظام المجموعة. أفضل الممارسات هي حذف مورد Kubernetes الذي يدعم Azure Arc باستخدام az connectedk8s delete المورد في مدخل Microsoft Azure بدلا من حذفه.

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