مشاركة عبر


نشر المكون الإضافي لواجهة شبكة حاوية شبكة Azure الظاهرية

يتم تثبيت المكون الإضافي لواجهة شبكة حاوية شبكة Azure الظاهرية (CNI) في جهاز Azure الظاهري وجلب إمكانات الشبكة الظاهرية إلى حاويات Kubernetes Pods وDocker. لمعرفة المزيد حول المكون الإضافي، راجع تمكين الحاويات لاستخدام إمكانيات شبكة Azure الظاهرية. بالإضافة إلى ذلك، يمكن استخدام المكون الإضافي مع خدمة Azure Kubernetes (AKS) عن طريق تحديد خيار الشبكات المتقدمة، والذي يضع تلقائياً حاويات AKS في شبكة ظاهرية.

نشر المكون الإضافي لمجموعة Azure Container Service-Engine Kubernetes

ينشر Azure Container Service-Engine مجموعة Kubernetes باستخدام قالب Azure Resource Manager. يتم تحديد تكوين المجموعة في ملف JSON الذي يتم تمريره إلى الأداة عند تكوين القالب. لمعرفة المزيد حول القائمة الكاملة لإعدادات نظام المجموعة المعتمدة وأوصافها، راجع Microsoft Azure Container Service Engine - تعريف نظام المجموعة. المكون الإضافي هو المكون الإضافي الافتراضي للشبكات للمجموعات التي تم إنشاؤها باستخدام Azure Container Service-Engine. تعد إعدادات تكوين الشبكة التالية مهمة عند تكوين المكون الإضافي:

الإعدادات ‏‏الوصف
firstConsecutiveStaticIP عنوان IP المخصص للعقدة الرئيسية. هذا الإعداد إلزامي.
clusterSubnet under kubernetesConfig CIDR الخاص بالشبكة الفرعية الظاهرية حيث يتم نشر المجموعة، والتي يتم من خلالها تخصيص عناوين IP إلى Pods
vnetSubnetId under masterProfile يحدد معرف مورد Azure Resource Manager للشبكة الفرعية حيث سيتم نشر مجموعة النظام
vnetCidr CIDR الخاص بالشبكة الافتراضية حيث يتم نشر مجموعة النظام
max-Pods under kubeletConfig الحد الأقصى لعدد Pods على كل جهاز ظاهري وكيل. بالنسبة للمكون الإضافي، يكون الإعداد الافتراضي هو 30. يمكنك تحديد ما يصل إلى 250

مثال على التكوين

مثال json التالي هو لمجموعة النظام ذات الخصائص التالية:

  • عقدة رئيسية واحدة وعقدتي عامل

  • تم نشره في شبكة فرعية تسمى KubeClusterSubnet (10.0.0.0/20)، مع وجود كل من العقد الرئيسية وعقد الوكيل فيها.

{
  "apiVersion": "vlabs",
  "properties": {
    "orchestratorProfile": {
      "orchestratorType": "Kubernetes",
      "kubernetesConfig": {
        "clusterSubnet": "10.0.0.0/20" --> Subnet allocated for the cluster
      }
    },
    "masterProfile": {
      "count": 1,
      "dnsPrefix": "ACSKubeMaster",
      "vmSize": "Standard_A2",
      "vnetSubnetId": "/subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<Vnet Name>/subnets/KubeClusterSubnet",
      "firstConsecutiveStaticIP": "10.0.1.50", --> IP address allocated to the Master node
      "vnetCidr": "10.0.0.0/16" --> Virtual network address space
    },
    "agentPoolProfiles": [
      {
        "name": "k8sagentpoo1",
        "count": 2,
        "vmSize": "Standard_A2_v2",
"vnetSubnetId": "/subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<VNet Name>/subnets/KubeClusterSubnet",
        "availabilityProfile": "AvailabilitySet"
      }
    ],
    "linuxProfile": {
      "adminUsername": "KubeServerAdmin",
      "ssh": {
        "publicKeys": [
          {…}
        ]
      }
    },
    "servicePrincipalProfile": {
      "clientId": "00001111-aaaa-2222-bbbb-3333cccc4444",
      "secret": "azure123"
    }
  }
}

نشر المكون الإضافي لمجموعة نظام Kubernetes

أكمل الخطوات التالية لتثبيت المكون الإضافي على كل جهاز ظاهري Azure في مجموعة نظام Kubernetes:

  1. تنزيل المكون الإضافي وتثبيته.

  2. قم بتخصيص تجمع عناوين IP للشبكة الظاهرية مسبقا على كل جهاز ظاهري يتم من خلاله تعيين عناوين IP إلى Pods. يأتي كل جهاز ظاهري من Azure مزوداً بعنوان IP خاص بالشبكة الظاهرية الأساسية على كل واجهة شبكة. تمت إضافة مجموعة عناوين IP الخاصة بـ Pods كعناوين ثانوية (ipconfigs) على واجهة شبكة الجهاز الظاهري، باستخدام أحد الخيارات التالية:

    تأكد من إضافة عناوين IP كافية لجميع Pods التي تتوقع ظهورها على الجهاز الظاهري.

  3. حدد المكون الإضافي لتوفير الشبكات للمجموعة الخاصة بك عن طريق تمرير Kubelet –network-plugin=cni خيار سطر الأوامر أثناء إنشاء المجموعة. يبحث Kubernetes افتراضيا عن المكون الإضافي وملف التكوين في الدلائل التي تم تثبيتها فيها بالفعل.

  4. إذا كنت تريد وصول أجهزة Pods الخاصة بك إلى الإنترنت، فأضف قاعدة iptables التالية على أجهزة Linux الظاهرية الخاصة بك إلى حركة مرور الإنترنت NAT-source. في المثال التالي، نطاق IP المحدد هو 10.0.0.0/8.

    iptables -t nat -A POSTROUTING -m iprange ! --dst-range 168.63.129.16 -m
    addrtype ! --dst-type local ! -d 10.0.0.0/8 -j MASQUERADE
    

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

    تقوم أجهزة Windows الظاهرية تلقائياً بتوفير مصدر حركة مرور NAT التي لها وجهة خارج الشبكة الفرعية التي ينتمي إليها الجهاز الظاهري. لا يمكن تحديد نطاقات IP مخصصة.

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

انشر المكون الإضافي لحاويات Docker

  1. تنزيل المكون الإضافي وتثبيته.

  2. إنشاء حاويات Docker باستخدام الأمر التالي:

    ./docker-run.sh \<container-name\> \<container-namespace\> \<image\>
    

تبدأ الحاويات تلقائياً في تلقي عناوين IP من التجمع المخصص. إذا كنت ترغب في تحميل حركة مرور موازنة التحميل إلى حاويات Docker، يجب وضعها خلف موازن تحميل البرنامج مع مسبار موازن التحميل.

ملف تكوين شبكة CNI

يتم وصف ملف تكوين شبكة CNI بتنسيق JSON. وهو موجود بشكلٍ افتراضي في /etc/cni/net.d لنظام التشغيل Linux وc:\cni\netconf لنظام التشغيل Windows. يحدد الملف تكوين المكون الإضافي ويختلف عن نظامي التشغيل Windows وLinux. ملف json التالي هو نموذج لملف تكوين Linux، متبوع بشرح لبعض إعدادات المفاتيح. لست بحاجة إلى إجراء أي تغييرات على الملف:

{
	   "cniVersion":"0.3.0",
	   "name":"azure",
	   "plugins":[
	      {
	         "type":"azure-vnet",
	         "mode":"bridge",
	         "bridge":"azure0",
	         "ipam":{
	            "type":"azure-vnet-ipam"
	         }
	      },
	      {
	         "type":"portmap",
	         "capabilities":{
	            "portMappings":true
	         },
	         "snat":true
	      }
	   ]
}

شرح الإعدادات

  • "cniVersion": تدعم المكونات الإضافية لشبكة Azure الظاهرية CNI الإصدارين 0.3.0 و0.3.1 من مواصفات CNI.

  • "name": اسم الشبكة. يمكن تعيين هذه الخاصية إلى أي قيمة فريدة.

  • "type": اسم المكون الإضافي للشبكة. تعيين إلى azure-vnet.

  • "الوضع": الوضع التشغيلي. هذا الحقل اختياري. الوضع الوحيد المدعوم هو "الجسر". لمزيدٍ من المعلومات، راجع أوضاع التشغيل.

  • "bridge": اسم الجسر المستخدم لتوصيل الحاويات بشبكة ظاهرية. هذا الحقل اختياري. إذا تم حذفه، يختار المكون الإضافي تلقائيا اسما فريدا، استنادا إلى فهرس الواجهة الرئيسية.

  • "ipam" - "type": اسم المكون الإضافي IPAM. تعيين دائماً على azure-vnet-ipam.

تنزيل المكون الإضافي وتثبيته

تنزيل المكون الإضافي من GitHub. تنزيل أحدث إصدار للنظام الأساسي الذي تستخدمه:

انسخ البرنامج النصي لتثبيت Linux أو Windows إلى جهاز الكمبيوتر الخاص بك. احفظ البرنامج النصي في دليل scripts على جهاز الكمبيوتر الخاص بك وقم بتسمية الملف install-cni-plugin.sh لنظام التشغيل Linux أو install-cni-plugin.ps1 Windows.

لتثبيت المكون الإضافي، قم بتشغيل البرنامج النصي المناسب للنظام الأساسي الخاص بك، مع تحديد إصدار المكون الإضافي الذي تستخدمه. على سبيل المثال، يمكنك تحديد v1.4.20. لتثبيت Linux، قم بتوفير إصدار مكون إضافي CNI مناسب، مثل v1.0.1:

scripts/install-cni-plugin.sh [azure-cni-plugin-version] [cni-plugin-version]
scripts\\ install-cni-plugin.ps1 [azure-cni-plugin-version]

يقوم البرنامج النصي بتثبيت المكون الإضافي ضمن /opt/cni/bin لنظام التشغيل Linux وc:\cni\bin لنظام التشغيل Windows. يأتي المكون الإضافي المثبت مزوداً بملف تكوين شبكة بسيط يعمل بعد التثبيت. لا يحتاج إلى التحديث. لمعرفة المزيد حول الإعدادات في الملف، راجع ملف تكوين شبكة CNI.