أحضر المكوّن الإضافي لواجهة شبكة الحاوية (CNI) مع خدمة Azure Kubernetes (AKS)

لا يوفر Kubernetes نظام واجهة شبكة افتراضيا. بدلا من ذلك، توفر المكونات الإضافية للشبكة هذه الوظيفة. توفر خدمة Azure Kubernetes (AKS) العديد من المكونات الإضافية ل CNI المدعومة. للحصول على معلومات حول المكونات الإضافية المدعومة، راجع مفاهيم شبكة AKS.

تلبي المكونات الإضافية المدعومة معظم احتياجات الشبكات في Kubernetes. ومع ذلك، قد يرغب مستخدمو AKS المتقدمون في استخدام نفس المكون الإضافي CNI المستخدم في بيئات Kubernetes المحلية أو لاستخدام وظائف متقدمة متوفرة في مكونات CNI الإضافية الأخرى.

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

يدعم

لا يمكن أن يساعد دعم Microsoft في المشكلات المتعلقة ب CNI في المجموعات المنشورة مع إحضار واجهة شبكة الحاوية الخاصة بك (BYOCNI). على سبيل المثال، تغطي المشكلات المتعلقة بـ CNI معظم حركة مرور الشرق/الغرب (مجموعة إلى مجموعة)، بالإضافة إلى أوامر kubectl proxy المماثلة. إذا كنت تريد الدعم المرتبط ب CNI، فاستخدم مكونا إضافيا لشبكة AKS مدعوما أو اطلب الدعم من مورد الجهة الخارجية للمكون الإضافي BYOCNI.

لا يزال يتم توفير الدعم للمشكلات غير المتعلقة ب CNI.

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

  • بالنسبة إلى Azure Resource Manager (ARM) أو Bicep، استخدم إصدار القالب 2022-01-02-preview أو 2022-06-01 على الأقل.
  • بالنسبة إلى Azure CLI، استخدم الإصدار 2.39.0 على الأقل.
  • يجب أن تسمح الشبكة الظاهرية لنظام مجموعة AKS بالاتصال بالإنترنت الصادر.
  • قد لا تستخدم أنظمة مجموعة AKS 169.254.0.0/16 أو 172.30.0.0/16 أو 172.31.0.0/16 أو 192.0.2.0/24 لنطاق عناوين خدمة Kubernetes أو نطاق عناوين وحدات الجراب أو نطاق عناوين الشبكة الظاهرية الخاصة بأنظمة المجموعة.
  • يجب أن تمتلك هوية نظام المجموعة المستخدمة من جانب نظام مجموعة AKS على أذوناتمساهم شبكة الاتصالعلى الأقل على الشبكة الفرعية داخل الشبكة الظاهرية. إذا كنت ترغب في تحديد دور مخصص بدلا من استخدام دور مساهم الشبكة المضمن، فإن الأذونات التالية مطلوبة:
    • Microsoft.Network/virtualNetworks/subnets/join/action
    • Microsoft.Network/virtualNetworks/subnets/read
  • لا يمكن أن تكون الشبكة الفرعية المعينة إلى تجمع عقدة AKS شبكة فرعية مفوضة.
  • لا تطبق AKS مجموعات أمان الشبكة (NSGs) على شبكتها الفرعية أو تعديل أي من مجموعات أمان الشبكة المقترنة بتلك الشبكة الفرعية. إذا قمت بتوفير الشبكة الفرعية الخاصة بك وإضافة "مجموعات أمان الشبكة" المرتبطة بتلك الشبكة الفرعية، يجب التأكد من أن قواعد الأمان في "مجموعات الأمان الوطنية" تسمح بحركة نقل البيانات بين العقدة وحاوية CIDR. للحصول على مزيٍد من المعلومات، راجع مجموعة أمان الشبكة.

إنشاء نظام مجموعة AKS مع عدم وجود مكون إضافي CNI مثبت مسبقا

  1. إنشاء مجموعة موارد Azure لنظام مجموعة AKS باستخدام az group create الأمر .

    az group create --location eastus --name myResourceGroup
    
  2. إنشاء نظام مجموعة AKS باستخدام az aks create الأمر . مرر المعلمة --network-plugin بقيمة المعلمة .none

    az aks create \
        --location eastus \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --network-plugin none \
        --generate-ssh-keys
    

توزيع مكون CNI إضافي

بمجرد اكتمال توفير AKS، تكون المجموعة متصلة بالإنترنت، ولكن جميع العقد في NotReady حالة، كما هو موضح في المثال التالي:

  $ kubectl get nodes
  NAME                                STATUS     ROLES   AGE    VERSION
  aks-nodepool1-23902496-vmss000000   NotReady   agent   6m9s   v1.21.9

  $ kubectl get node -o custom-columns='NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].message'
  NAME                                STATUS
  aks-nodepool1-23902496-vmss000000   container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized

في هذه المرحلة، يصبح نظام المجموعة جاهزًا لتثبيت المكون الإضافي CNI.

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

تعرف على المزيد حول الشبكات في AKS في المقالات التالية: