مشاركة عبر


قم بإنشاء وتكوين مجموعة Azure Kubernetes Services (AKS) لاستخدام العُقد الافتراضية في مدخل Microsoft Azure

تمكن العقد الظاهرية اتصال الشبكة بين القرون التي تعمل في مجموعات Azure Container Instances (ACI) وAzure Kubernetes Service (AKS). لتوفير هذا الاتصال، يتم إنشاء شبكة فرعية افتراضية وتعيين الأذونات المفوضة. تعمل العُقد الظاهرية فقط مع مجموعات AKS التي تم إنشاؤها باستخدام شبكة متقدمة (Azure CNI). يتم إنشاء مجموعات AKS مع الشبكات الأساسية (kubenet) بشكل افتراضي.

توضح هذه المقالة كيفية إنشاء شبكة ظاهرية وشبكات فرعية، ثم نشر مجموعة AKS التي تستخدم شبكة متقدمة باستخدام مدخل Microsoft Azure.

إشعار

للحصول على نظرة عامة حول توفر منطقة العقدة الظاهرية وقيودها، راجع استخدام العقد الظاهرية في AKS.

قبل البدء

تحتاج إلى موفر خدمة ACI مسجل في اشتراكك.

  • تحقق من حالة تسجيل موفر ACI باستخدام az provider list الأمر .

    az provider list --query "[?contains(namespace,'Microsoft.ContainerInstance')]" -o table
    

    يظهر إخراج المثال التالي موفر Microsoft.ContainerInstance مسجل:

    Namespace                    RegistrationState    RegistrationPolicy
    ---------------------------  -------------------  --------------------
    Microsoft.ContainerInstance  Registered           RegistrationRequired
    
  • إذا كان الموفر غير مسجل، فقم بتسجيله باستخدام az provider register الأمر .

    az provider register --namespace Microsoft.ContainerInstance
    

إنشاء نظام مجموعة AKS

  1. انتقل إلى الصفحة الرئيسية لمدخل Microsoft Azure.
  2. حدد Create a resource>Containers.
  3. في مورد Azure Kubernetes Service (AKS)، حدد Create.
  4. في صفحة Basics ، قم بتكوين الخيارات التالية:
    • تفاصيل المشروع: حدد اشتراك Azure، ثم حدد أو أنشئ مجموعة موارد Azure، مثل myResourceGroup.
    • تفاصيل نظام المجموعة: أدخل اسم مجموعة Kubernetes، مثل myAKSCluster. حدد منطقة وإصدار Kubernetes لمجموعة AKS.
  5. حدد Next: Node pools وتحقق من *Enable virtual nodes. لقطة شاشة توضح إنشاء نظام مجموعة مع تمكين العقد الظاهرية على مدخل Microsoft Azure. يتم تمييز الخيار
  6. حدد "Review + create".
  7. بعد اكتمال التحقق من الصحة، حدد Create.

بشكل افتراضي، تنشئ هذه العملية هوية نظام مجموعة مدارة، والتي تستخدم لاتصال نظام المجموعة والتكامل مع خدمات Azure الأخرى. لمزيد من المعلومات، راجع استخدام الهويات المدارة. يمكنك أيضًا استخدام مدير الخدمة باعتباره هوية المجموعة الخاصة بك.

تقوم هذه العملية بتكوين نظام المجموعة للشبكات المتقدمة والعقد الظاهرية لاستخدام الشبكة الفرعية لشبكة Azure الظاهرية الخاصة بها. لقد فوضت الشبكة الفرعية أذونات لتوصيل موارد Azure بين نظام مجموعة AKS. إذا لم يكن لديك بالفعل شبكة فرعية مفوضة، يقوم مدخل Azure بإنشاء وتكوين شبكة Azure الظاهرية والشبكة الفرعية مع العقد الظاهرية.

الاتصال بنظام المجموعة

Azure Cloud Shell هو shell تفاعلي مجاني يمكنك استخدامه لتشغيل الخطوات الواردة في هذه المقالة. يحتوي على أدوات Azure الشائعة المثبتة مسبقًا والمهيئة للاستخدام مع حسابك. لإدارة نظام مجموعة Kubernetes، استخدم سطر أوامر العميل Kubernetes، kubectl. تم تثبيت العميل kubectl مسبقًا في Azure Cloud Shell.

  1. قم بتكوين kubectl للاتصال بنظام مجموعة Kubernetes باستخدام أمر az aks get-credentials. يعرض المثال التالي بيانات اعتماد اسم الكتلة myAKSCluster في مجموعة الموارد المسماة myResourceGroup:

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. تحقق من الاتصال بالمجموعة باستخدام kubectl get nodes.

    kubectl get nodes
    

    يظهر إخراج المثال التالي عقدة الجهاز الظاهري الفردية التي تم إنشاؤها وعقدة Linux الظاهرية المسماة virtual-node-aci-linux:

    NAME                           STATUS    ROLES     AGE       VERSION
    virtual-node-aci-linux         Ready     agent     28m       v1.11.2
    aks-agentpool-14693408-0       Ready     agent     32m       v1.11.2
    

نشر تطبيق نموذج

  1. في Azure Cloud Shell، أنشئ ملفا باسم virtual-node.yaml وانسخه في YAML التالي:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: aci-helloworld
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: aci-helloworld
      template:
        metadata:
          labels:
            app: aci-helloworld
        spec:
          containers:
          - name: aci-helloworld
            image: mcr.microsoft.com/azuredocs/aci-helloworld
            ports:
            - containerPort: 80
          nodeSelector:
            kubernetes.io/role: agent
            beta.kubernetes.io/os: linux
            type: virtual-kubelet
          tolerations:
          - key: virtual-kubelet.io/provider
            operator: Exists
    

    يحدد YAML nodeSelector والتفاوت، والذي يسمح بجدولة الجراب على العقدة الظاهرية. يتم تعيين عنوان IP داخلي للحجرة من الشبكة الفرعية لشبكة Azure الظاهرية المفوضة للاستخدام مع العُقد الظاهرية.

  2. قم بتشغيل التطبيق باستخدام kubectl apply الأمر .

    kubectl apply -f virtual-node.yaml
    
  3. عرض الحجيرات المجدولة على العقدة kubectl get pods باستخدام الأمر مع الوسيطة -o wide .

    kubectl get pods -o wide
    

    يظهر virtual-node-helloworld إخراج المثال التالي الجراب المجدول على العقدة virtual-node-linux .

    NAME                                     READY     STATUS    RESTARTS   AGE       IP           NODE
    virtual-node-helloworld-9b55975f-bnmfl   1/1       Running   0          4m        10.241.0.4   virtual-node-aci-linux
    

إشعار

إذا كنت تستخدم صورًا مخزنة في Azure Container Registry، فقم بتكوين سر Kubernetes واستخدمه. أحد قيود العقد الظاهرية هو أنه لا يمكنك استخدام المصادقة الأساسية لخدمة Microsoft Entra المتكاملة. إذا كنت لا تستخدم سرّاً، فإن pods المجدولة على العُقد الظاهرية تفشل في البدء والإبلاغ عن الخطأ HTTP response status code 400 error code "InaccessibleImage".

اختبار pod العُقدة الظاهرية

لاختبار pod التي تعمل على العُقدة الظاهرية، استعرض للوصول إلى التطبيق التجريبي باستخدام عميل ويب. يتم تعيين عنوان IP داخلي للجراب، بحيث يمكنك بسهولة اختبار الاتصال من جراب آخر على نظام مجموعة AKS.

  1. إنشاء حاوية اختبار وإرفاق جلسة طرفية بها باستخدام الأمر التالي kubectl run .

    kubectl run -it --rm virtual-node-test --image=mcr.microsoft.com/dotnet/runtime-deps:6.0
    
  2. تثبيت curl في pod باستخدام الأمر التالي apt-get .

    apt-get update && apt-get install -y curl
    
  3. الوصول إلى عنوان الجراب الخاص بك باستخدام الأمر التالي curl وتوفير عنوان IP الداخلي الخاص بك.

    curl -L http://10.241.0.4
    

    يظهر إخراج المثال المكثف التالي التطبيق التجريبي.

    <html>
    <head>
      <title>Welcome to Azure Container Instances!</title>
    </head>
    [...]
    
  4. أغلق جلسة المحطة الطرفية إلى جراب الاختبار الخاص بك باستخدام exit، والذي يحذف أيضا الجراب.

    exit
    

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

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

تكون العقد الظاهرية عبارة عن مكوّن واحد من حل التحجيم في AKS. لمزيد من المعلومات حول حلول التحجيم، راجع المقالات التالية: