نظرة عامة على شبكات Azure CNI في خدمة Azure Kubernetes (AKS)
بشكل افتراضي، تستخدم مجموعات AKS kubenet وتنشئ شبكة ظاهرية وشبكة فرعية. من خلال kubenet، تتلقى العُقَد عنوان IP من الشبكة الفرعية الخاصة بشبكة Azure الظاهرية. ترجمة عنوان الشبكة (NAT) ثم تكوينه على العقد، وتتلقى وحدات الجراب عنوان IP "مخفي" خلف عقدة IP. يقلل هذا النهج من عدد عناوين IP التي تحتاج إلى حجزها في مساحة الشبكة لوحدات الجراب لاستخدام الحاويات.
باستخدام واجهة شبكة الحاويات Azure (CNI)، تحصل كل وحدة جراب على عنوان IP من الشبكة الفرعية ويمكن الوصول إليه مباشرةً. ترى الأنظمة في نفس الشبكة الافتراضية مثل نظام مجموعة AKS IP كعنوان مصدر لأي نسبة استخدام الشبكة من وحدة الجراب. ترى الأنظمة خارج الشبكة الظاهرية لنظام مجموعة AKS IP لوحدة الجراب كعنوان مصدر لأي نسبة استخدام الشبكة من وحدة الجراب. يجب أن تكون عناوين IP هذه فريدة عبر مساحة الشبكة ويجب التخطيط لها مسبقا. تحتوي كل عقدة على معلمة تكوين لعدد الحاويات الأقصى الذي تدعمه. بعد ذلك، يتم حجز العدد المكافئ لعناوين IP لكل عقدة مقدماً. يتطلب هذا الأسلوب المزيد من التخطيط، وغالبًا ما يؤدي إلى استنفاد عناوين IP أو الحاجة إلى إعادة إنشاء أنظمة المجموعات في شبكة فرعية أكبر مع نمو طلبات التطبيق.
إشعار
تقدم هذه المقالة فقط Azure CNI التقليدية. بالنسبة لتراكب Azure CNI، وAzure CNI VNet لتخصيص IP الديناميكي، وAzure CNI VNet - تخصيص الكتلة الثابتة (معاينة). يرجى الرجوع إلى وثائقهم بدلا من ذلك.
المتطلبات الأساسية
يجب أن تسمح الشبكة الظاهرية لنظام مجموعة 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
Microsoft.Authorization/roleAssignments/write
لا يمكن أن تكون الشبكة الفرعية المعينة إلى تجمع عقدة AKS شبكة فرعية مفوضة.
لا تُطبق AKS مجموعات أمان الشبكة (NSGs) على شبكتها الفرعية ولا تعدل أيّاً من مجموعات أمان الشبكة المرتبطة بتلك الشبكة الفرعية. إذا قمت بتوفير الشبكة الفرعية الخاصة بك وإضافة "مجموعات أمان الشبكة" المرتبطة بتلك الشبكة الفرعية، يجب التأكد من أن قواعد الأمان في "مجموعات الأمان الوطنية" تسمح بحركة نقل البيانات بين العقدة وحاوية CIDR. للحصول على مزيٍد من المعلومات، راجع مجموعة أمان الشبكة.
معلمات النشر
عند إنشاء نظام مجموعة AKS، تكون المعلمات التالية قابلة للتكوين لشبكة اتصال Azure CNI:
الشبكة الظاهرية: الشبكة الظاهرية التي تريد نشر نظام المجموعة Kubernetes عليها. إذا كنت ترغب في إنشاء شبكة اتصال ظاهرية جديدة لنظام المجموعة الخاصة بك، حدد إنشاء جديد واتبع الخطوات الموجودة في القسم إنشاء شبكة اتصال ظاهرية. إذا كنت ترغب في تحديد شبكة ظاهرية موجودة، فتأكد من أنها في نفس الموقع واشتراك Azure مثل مجموعة Kubernetes الخاصة بك. للحصول على معلومات حول حدود شبكة Azure الظاهرية والحصص النسبية لها، راجع حدود الاشتراك والخدمات Azure والحصص النسبية والقيود.
الشبكة الفرعية: الشبكة الفرعية داخل الشبكة الظاهرية حيث تريد نشر نظام المجموعة. إذا كنت ترغب في إنشاء شبكة فرعية جديدة في الشبكة الظاهرية لنظام المجموعة الخاصة بك، حدد إنشاء جديد واتبع الخطوات الموجودة في القسم إنشاء شبكة فرعية. للاتصال المختلط، يجب ألا يتداخل نطاق العناوين مع أي شبكات ظاهرية أخرى في البيئة الخاصة بك.
المكون الإضافي لشبكة Azure: عند استخدام المكون الإضافي لشبكة Azure، لا يمكن الوصول إلى خدمة LoadBalancer الداخلية مع "externalTrafficPolicy=Local" من الأجهزة الظاهرية باستخدام IP في clusterCIDR لا ينتمي إلى مجموعة AKS.
نطاق عنوان خدمة Kubernetes: هذه المعلمة هي مجموعة من برامج IPs الظاهرية التي يقوم Kubernetes بتعيينها إلى الخدمات الداخلية في نظام المجموعة. لا يمكن تحديث هذا النطاق بعد إنشاء نظام المجموعة. يمكنك استخدام أي نطاق عناوين خاص يلبي المتطلبات التالية:
- يجب ألا يكون ضمن نطاق عنوان IP للشبكة الظاهرية من نظام المجموعة
- يجب أن لا تتداخل مع أية شبكات ظاهرية أخرى مع شبكة الاتصال الظاهري لنظير نظام المجموعة
- يجب ألا تتداخل مع أي عنواين IPs محلية
- يجب ألا تكون ضمن النطاقات
169.254.0.0/16
أو172.30.0.0/16
أو172.31.0.0/16
أو192.0.2.0/24
على الرغم من أنه من الممكن من الناحية الفنية تحديد نطاق عنوان خدمة داخل نفس الشبكة الظاهرية مثل نظام المجموعة الخاص بك، لا يوصى بذلك. يمكن أن ينتج سلوك غير متوقع إذا تم استخدام نطاقات IP المتداخلة. لمزيد من المعلومات، راجع قسم الأسئلة المتداولة في هذه المقالة. لمزيد من المعلومات حول خدمات Kubernetes، راجع الخدمات في وثائق Kubernetes.
عنوان IP لخدمة Kubernetes DNS: عنوان IP لخدمة DNS الخاصة بنظام المجموعة. يجب أن يكون هذا العنوان ضمن نطاق عنوان خدمة Kubernetes. لا تستخدم عنوان IP الأول في نطاق العناوين. يتم استخدام العنوان الأول في نطاق الشبكة الفرعية للعنوان kubernetes.default.svc.cluster.local.
الأسئلة الشائعة
هل يمكنني نشر الأجهزة الظاهرية في الشبكة الفرعية لنظام المجموعة؟
نعم. ولكن بالنسبة إلى Azure CNI لتخصيص IP الديناميكي، لا يمكن نشر الأجهزة الظاهرية في الشبكة الفرعية للجراب.
ما هو مصدر IP الذي تراه للأنظمة الخارجية لنسبة استخدام الشبكة التي تنشأ في وحدة جراب تمكين Azure CNI؟
ترى الأنظمة في نفس الشبكة الافتراضية مثل نظام مجموعة AKS IP كعنوان مصدر لأي نسبة استخدام الشبكة من وحدة الجراب. ترى الأنظمة خارج الشبكة الظاهرية لنظام مجموعة AKS IP لوحدة الجراب كعنوان مصدر لأي نسبة استخدام الشبكة من وحدة الجراب.
ولكن بالنسبة إلى Azure CNI لتخصيص IP الديناميكي، بغض النظر عن الاتصال داخل نفس الشبكة الظاهرية أو عبر الشبكات الظاهرية، فإن عنوان IP للحجيرة هو دائما العنوان المصدر لأي حركة مرور من الجراب. وذلك لأن Azure CNI لتخصيص IP الديناميكي ينفذ البنية الأساسية لشبكة حاويات Microsoft Azure، ما يعطي تجربة شاملة. ومن ثم، فإنه يلغي استخدام
ip-masq-agent
، والذي لا يزال يستخدمه Azure CNI التقليدي.هل يمكنني تكوين نُهج الشبكة لكل وحدة جراب؟
نعم، يتوفر نهج شبكة Kubernetes في AKS. للبدء، راجع نسبة استخدام الشبكة الآمنة بين وحدات الجراب باستخدام نهج الشبكة في AKS.
هل الحد الأقصى لعدد وحدات الجراب قابل للنشر إلى عقدة قابلة للتكوين؟
نعم، عند نشر نظام مجموعة مع Azure CLI أو قالب إدارة الموارد. انظر الحد الأقصى لوحدات الجراب لكل عقدة.
لا يمكنك تغيير الحد الأقصى لعدد وحدات الجراب لكل عقدة على نظام مجموعة موجود.
كيف يمكنني تكوين خصائص إضافية للشبكة الفرعية التي قمت بإنشائها أثناء إنشاء نظام المجموعة AKS؟ على سبيل المثال، نقاط نهاية الخدمة.
يمكن تكوين القائمة الكاملة من خصائص الشبكة الظاهرية والشبكات الفرعية التي تقوم بإنشائها أثناء إنشاء نظام المجموعة AKS في صفحة تكوين الشبكة الظاهرية القياسية في مدخل Azure.
هل يمكنني استخدام شبكة فرعية مختلفة ضمن شبكة نظام المجموعة الظاهرية لـ نطاق عنوان خدمة Kubernetes؟
لا يُنصح بذلك، ولكن هذا التكوين ممكن. نطاق عنوان الخدمة هو مجموعة من عناوين IPs الظاهرية (كبار الشخصيات) التي يقوم Kubernetes بتعيينها إلى الخدمات الداخلية في نظام المجموعة. لا يوجد لدى Azure Networking أي رؤية في نطاق IP للخدمة من نظام مجموعة Kubernetes. يمكن أن يؤدي عدم الرؤية في نطاق عنوان خدمة نظام المجموعة إلى حدوث مشكلات. من الممكن لاحقا إنشاء شبكة فرعية جديدة في الشبكة الظاهرية لنظام المجموعة التي تتداخل مع نطاق عنوان الخدمة. في حالة حدوث مثل هذا التداخل، يمكن لـ Kubernetes تعيين خدمة IP قيد الاستخدام بالفعل من قِبل مورد آخر في الشبكة الفرعية، مما يؤدي إلى حدوث سلوك أو فشل لا يمكن التنبؤ به. من خلال التأكد من استخدام نطاق عنوان خارج الشبكة الظاهرية لنظام المجموعة، يمكنك تجنب هذا التداخل الخطر.
الخطوة التالية
تعرف على المزيد حول الشبكات في AKS في المقالات التالية:
Azure Kubernetes Service