مفاهيم الشبكة للتطبيقات في Azure Kubernetes Service (AKS)
في نهج الخدمات الصغرى المستندة إلى حاويات لتطوير التطبيقات، تعمل مكونات التطبيقات معًا لمعالجة مهامها. يوفر Kubernetes موارد مختلفة تمكن هذا التعاون:
- يمكنك الاتصال بالتطبيقات وعرضها داخليًا أو خارجيًا.
- يمكنك إنشاء التطبيقات المتوفرة بشكل كبير عن طريق موازنة تحميل التطبيقات الخاصة بك.
- بالنسبة للتطبيقات الأكثر تعقيدًا، يمكنك تكوين نسبة استخدام الدخول لإنهاء SSL/TLS أو توجيه مكونات متعددة.
- لأسباب الأمان، يمكنك تقييد تدفق نسبة استخدام الشبكة إلى أو بين الحاويات والعُقد.
تقدم هذه المقالة المفاهيم الأساسية التي توفر الشبكات لتطبيقاتك في AKS:
أساسيات Kubernetes
للسماح بالوصول إلى التطبيقات أو بين مكونات التطبيق، يوفر Kubernetes طبقة تجريد إلى الشبكات الظاهرية. تتصل عقد Kubernetes بشبكة افتراضية، مما يوفر اتصالاً واردًا وصادرًا للحاويات. يتم تشغيل مكون وكيل “Kube” على كل عقدة لمدها بمميزات الشبكة هذه.
في Kubernetes:
- الخدمات تجمع الحاويات بشكل منطقي للسماح بالوصول المباشر في منفذ معين عبر عنوان IP أو اسم DNS.
- يمكنك توزيع نسبة استخدام الشبكة باستخدام موازن تحميل.
- ويمكن أيضًا تحقيق توجيه أكثر تعقيدًا لنسبة استخدام التطبيقات باستخدام وحدات التحكم في الدخول.
- من الممكن توفير الأمان والتصفية لنسبة استخدام الشبكة للحاويات مع نهج الشبكة في Kubernetes.
يعمل النظام الأساسي لـ Azure أيضًا على تبسيط الشبكات الظاهرية لمجموعات AKS. عند إنشاء موازن تحميل Kubernetes، يمكنك أيضًا إنشاء وتكوين مورد موازن تحميل Azure الأساسي. عند فتح منافذ شبكة الاتصال إلى الحجيرات، يتم تكوين قواعد مجموعة أمان شبكة Azure المقابلة. بالنسبة لتوجيه تطبيق HTTP، يمكن لـ Azure أيضًا تكوين DNS خارجي مع تكوين توجيهات الدخول الجديدة.
الخدمات
لتبسيط تكوين الشبكة لأحمال عمل التطبيق، يستخدم Kubernetes الخدمات لتجميع مجموعة من الحاويات معًا بشكل منطقي وتوفير اتصال بالشبكة. تتوفر أنواع الخدمات التالية:
عنوان IP المجموعة
ينشئ عنوان IP داخلي للاستخدام داخل مجموعة AKS. جيد للتطبيقات الداخلية فقط التي تدعم أعباء العمل الأخرى داخل نظام المجموعة.

NodePort»»
إنشاء تعيين منفذ على العقدة الأساسية التي تسمح للتطبيق بالوصول مباشرة باستخدام منفذ وعنوان IP العقدة.

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

لمزيد من التحكم والتوجيه لنسبة استخدام الشبكة الواردة، يمكنك بدلاً من ذلك استخدام وحدة التحكم في الدخول.
ExternalName
ينشئ إدخال DNS محدد لتسهيل الوصول إلى التطبيق.
يمكن تعيين إما موازنات التحميل وعنوان IP للخدمات بشكل ديناميكي، أو يمكنك تحديد عنوان IP ثابت موجود. يمكنك تعيين عناوين IP ثابتة داخلية وخارجية. غالبًا ما ترتبط عناوين IP الثابتة الموجودة بإدخال DNS.
يمكنك إنشاء موازنات تحميل داخلية وخارجية. يتم تعيين عنوان IP خاص فقط لموازنات التحميل الداخلية، لذلك لا يمكن الوصول إليها من الإنترنت.
شبكات اتصال Azure الظاهرية
في AKS، يمكنك نشر مجموعة تستخدم أحد طرازي شبكة الاتصال التاليين:
شبكات Kubenet
عادةً ما يتم إنشاء موارد شبكة الاتصال وتكوينها كما يتم نشر مجموعة AKS.
شبكات واجهة شبكات حاويات Azure (CNI)
يتم توصيل مجموعة AKS بموارد وتكوينات الشبكة الظاهرية الموجودة.
شبكات Kubenet (الأساسية)
خيار شبكات kubenet هو التكوين الافتراضي لإنشاء نظام مجموعة AKS. مع kubenet:
- تتلقى العقد عنوان IP من الشبكة الفرعية لشبكة Azure الظاهرية.
- تتلقى الحاويات عنوان IP من مساحة عنوان مختلفة منطقيًا من الشبكة الفرعية لشبكة Azure الظاهرية للعقد.
- ثم يتم تكوين ترجمة عنوان الشبكة (NAT) بحيث يمكن الوصول إلى مجمعات الموارد على الشبكة الظاهرية Azure.
- تتم ترجمة عنوان IP المصدر لنسبة استخدام الشبكة إلى عنوان IP الأساسي للعقدة.
تستخدم العقد المكون الإضافي في kubenet. يمكنك:
- جعل النظام الأساسي لـ Azure يقوم بإنشاء وتكوين الشبكات الظاهرية لديك، أو
- اختيار نشر نظام مجموعة AKS في شبكة فرعية لشبكة ظاهرية موجودة.
تذكر أن العقد تتلقى عنوان IP قابل للتوجيه فقط. تستخدم الحاويات NAT للاتصال بموارد أخرى خارج مجموعة AKS. يقلل هذا النهج عدد عناوين IP التي تحتاج إلى حجزها في مساحة الشبكة لاستخدام الحاويات.
لمزيد من المعلومات، راجع تكوين شبكة kubenet لمجموعة AKS.
شبكات Azure CNI (متقدمة)
مع Azure CNI، تحصل كل حاوية على عنوان IP من الشبكة الفرعية ويمكن الوصول إليها مباشرة. يجب تخطيط عناوين IP هذه مسبقًا وأن تكون فريدة عبر مساحة الشبكة. تحتوي كل عقدة على معلمة تكوين لعدد الحاويات الأقصى الذي تدعمه. ثم يتم حجز العدد المكافئ لعناوين IP لكل عقدة مقدمًا. بدون تخطيط، يمكن أن يؤدي هذا النهج إلى استنفاد عنوان IP أو الحاجة إلى إعادة إنشاء المجموعات في شبكة فرعية أكبر مع نمو طلبات التطبيق.
وبخلاف kubenet، فإن نسبة استخدام الشبكة إلى نقاط النهاية في نفس الشبكة الظاهرية لا تكون NAT إلى عنوان IP الأساسي للعقدة. عنوان المصدر لنسبة الاستخدام داخل الشبكة الافتراضية هو عنوان IP للحاوية. نسبة الاستخدام الخارجية إلى شبكة الاتصال الظاهرية لا تزال NAT إلى عنوان IP الأساسي للعقدة.
تستخدم العقد المكون الإضافي في Azure CNI.

لمزيد من المعلومات، راجع تكوين شبكة Azure CNI لمجموعة AKS.
مقارنة نماذج الشبكة
يوفر كل من kubenet وAzure CNI اتصالاً شبكيًا لمجموعات AKS لديك. ومع ذلك، هناك مزايا وعيوب لكل منهما. وعلى مستوى عالٍ، تنطبق الاعتبارات التالية:
- kubenet
- يحافظ على مساحة عنوان IP.
- يستخدم موازن التحميل الداخلي أو الخارجي في Kubernetes للوصول إلى الحاويات من خارج المجموعة.
- تقوم يدويًا بإدارة التوجيهات المعرفة من قبل المستخدم (UDR) والاحتفاظ بها.
- الحد الأقصى من العقد 400 لكل مجموعة.
- Azure CNI
- تحصل الحاويات على اتصال الشبكة الافتراضية الكاملة ويمكن الوصول إليها مباشرةً عن طريق عنوان IP الخاص بها من الشبكات المتصلة.
- تتطلب مساحة عنوان IP أكبر.
توجد اختلافات السلوك التالية بين kubenet وAzure CNI:
| الإمكانية | Kubenet | Azure CNI |
|---|---|---|
| نشر المجموعة في شبكة ظاهرية موجودة أو جديدة | مدعوم - UDR مطبقة يدويًا | مدعوم |
| اتصال حاوية-حاوية | مدعوم | مدعوم |
| اتصال حاوية-جهاز ظاهري؛ الجهاز الظاهري في نفس الشبكة الظاهرية | يعمل عند البدء عن طريق حاوية | يعمل في كلا الاتجاهين |
| اتصال حاوية-جهاز ظاهري؛ الجهاز الظاهري في شبكة ظاهرية نظيرة | يعمل عند البدء عن طريق حاوية | يعمل في كلا الاتجاهين |
| الوصول الداخلي باستخدام VPN أو مسار سريع | يعمل عند البدء عن طريق حاوية | يعمل في كلا الاتجاهين |
| الوصول إلى الموارد التي يتم تأمينها بواسطة نقاط نهاية الخدمة | مدعوم | مدعوم |
| كشف خدمات Kubernetes باستخدام خدمة موازن التحميل أو بوابة التطبيق أو وحدة التحكم في الدخول | مدعوم | مدعوم |
| المناطق الخاصة وDNS Azure الافتراضية | مدعوم | مدعوم |
| دعم مجموعات عقد Windows | غير مدعومة | مدعوم |
فيما يتعلق بـ DNS، مع الوظائف الإضافية في كل من kubenet وAzure CNI يتم تقديم DNS عن طريق CoreDNS، نشر يعمل في AKS مع المقياس التلقائي الخاص بها. لمزيد من المعلومات حول CoreDNS على Kubernetes، راجع تخصيص خدمة DNS. يتم تكوين CoreDNS بشكل افتراضي لتوجيه مجالات غير معروفة إلى وظيفة DNS من شبكة Azure الظاهرية حيث يتم نشر نظام مجموعة AKS. وبالتالي، سيعمل Azure DNS والمناطق الخاصة للحاويات التي تعمل في AKS.
نطاق الدعم بين نماذج الشبكة
أيا كان نموذج الشبكة الذي تستخدمه، يمكن نشر كل من kubenet وAzure kubenet بإحدى الطرق التالية:
- يمكن للنظام الأساسي لـ Azure إنشاء وتكوين موارد الشبكة الظاهرية تلقائيًا عند إنشاء نظام مجموعة AKS.
- يمكنك إنشاء وتكوين موارد الشبكة الظاهرية يدويًا والإرفاق لهذه الموارد عند إنشاء نظام مجموعة AKS.
على الرغم من أن إمكانيات مثل نقاط نهاية الخدمة أو UDR مدعومة مع كل من kubenet وAzure CNI، إلا أن نُهُج دعم AKS تحدد التغييرات التي يمكنك إجراؤها. على سبيل المثال:
- إذا قمت بإنشاء موارد الشبكة الظاهرية يدويًا لمجموعة AKS، فأنت مدعوم عند تكوين UDR أو نقاط نهاية الخدمة الخاصة بك.
- إذا كان النظام الأساسي لـ Azure يقوم تلقائيًا بإنشاء موارد الشبكة الظاهرية لمجموعة AKS، فلا يمكنك تغيير تلك الموارد التي تديرها AKS يدويًا لتكوين UDR الخاصة بك أو نقاط نهاية الخدمة.
وحدات تحكم الدخول
عند إنشاء خدمة من نوع LoadBalancer، يمكنك أيضًا إنشاء مورد موازن تحميل Azure أساسي. تم تكوين موازن التحميل لتوزيع نسبة استخدام الشبكة إلى الحاويات في الخدمة الخاصة بك على منفذ معين.
يعمل LoadBalancer فقط في الطبقة 4. في الطبقة 4، لا تكون الخدمة مدركة للتطبيقات الفعلية، ولا يمكن إجراء أي اعتبارات توجيه أكثر.
تعمل وحدات التحكم في الدخول في الطبقة 7، ويمكن استخدام قواعد أكثر ذكاء لتوزيع نسبة استخدام التطبيقات. تقوم وحدات التحكم في الدخول عادة بتوجيه نسبة استخدام HTTP إلى تطبيقات مختلفة استنادًا إلى عنوان URL الوارد.

إنشاء مورد دخول
في AKS، يمكنك إنشاء مورد دخول باستخدام NGINX أو أداة مشابهة أو ميزة توجيه تطبيق AKS HTTP. عند تمكين توجيه تطبيق HTTP لنظام مجموعة AKS، يقوم النظام الأساسي لـ Azure بإنشاء وحدة تحكم في الدخول ووحدة تحكم في DNS خارجي. عند إنشاء موارد الدخول الجديدة في Kubernetes، يتم إنشاء سجلات DNS A المطلوبة في منطقة DNS الخاصة بنظام المجموعة.
لمزيد من المعلومات، راجع نشر توجيه تطبيق HTTP.
وحدة التحكم في الدخول لبوابة التطبيق (AGIC)
مع المكون الإضافي لوحدة التحكم في الدخول لبوابة التطبيق (AGIC)، يستفيد عملاء AKS من موازن تحميل المستوى 7 في بوابة التطبيق الأصلية في Azure لعرض البرامج السحابية إلى الإنترنت. تراقب وحدة AGIC مجموعة Kubernetes المضيفة وتقوم بتحديث بوابة التطبيقات باستمرار، وتعرض الخدمات المحددة إلى الإنترنت.
لمعرفة المزيد حول المكون الإضافي لوحدة التحكم في الدخول لبوابة التطبيق لـ AKS، راجع ما هي وحدة التحكم في الدخول لبوابة التطبيق؟.
إنهاء SSL/TLS
يعد إنهاء SSL/TLS ميزة أخرى شائعة للدخول. على تطبيقات الويب الكبيرة التي يتم الوصول إليها عبر HTTPS، يعالج مورد الدخول إنهاء TLS بدلاً من داخل التطبيق نفسه. لتوفير إنشاء شهادة TLS وتكوينه تلقائيًا، يمكنك تكوين مورد الدخول لاستخدام موفرين مثل "Let's Encrypt".
لمزيد من المعلومات حول تكوين وحدة التحكم في الدخول على NGINX باستخدام "Let's Encrypt"، راجع الدخول وTLS.
الاحتفاظ بعنوان IP المصدر للعميل
تكوين وحدة تحكم في الدخول للاحتفاظ بعنوان IP المصدر للعميل بناء على طلبات إلى حاويات في نظام مجموعة AKS. عندما تقوم وحدة تحكم في الدخول بتوجيه طلب العميل إلى حاوية في نظام المجموعة AKS الخاص بك، فإن عنوان IP المصدر الأصلي لذلك الطلب لا يكون متوفرًا للحاوية الهدف. عند تمكين الاحتفاظ بعنوان IP المصدر للعميل يكون عنوان IP المصدر للعميل متوفرًا في عنوان الطلب ضمن X-Forwarded-For.
إذا كنت تستخدم الاحتفاظ بعنوان IP المصدر للعميل على وحدة التحكم في الدخول الخاصة بك، لا يمكنك استخدام TLS العابر. يمكن استخدام الاحتفاظ بعنوان IP المصدر للعميل وTLS العابر مع خدمات أخرى، مثل نوع LoadBalancer.
مجموعات أمان الشبكات
تقوم مجموعة أمان الشبكة بتصفية نسبة الاستخدام للأجهزة الظاهرية مثل عقد AKS. أثناء إنشاء الخدمات، مثل LoadBalancer، يقوم النظام الأساسي لـ Azure بتكوين أي قواعد ضرورية لمجموعة أمان الشبكة تلقائيًا.
لا تحتاج إلى تكوين قواعد مجموعة أمان الشبكة يدويًا لتصفية نسبة الاستخدام للحاويات في نظام مجموعة AKS. ما عليك سوى تحديد أي منافذ مطلوبة وإعادة التوجيه كجزء من بيانات خدمة Kubernetes. دع النظام الأساسي لـ Azure ينشئ أو يحدث القواعد المناسبة.
يمكنك أيضًا استخدام نهج الشبكة لتطبيق قواعد تصفية نسبة الاستخدام تلقائيًا على الحاويات.
نهج الشبكة
بشكل افتراضي، يمكن إرسال كافة الحاويات في نظام مجموعة AKS وتلقي نسبة الاستخدام دون قيود. لتحسين الأمان، حدد القواعد التي تتحكم في تدفق نسبة الاستخدام، مثل:
- يتم عرض تطبيقات الواجهة الخلفية فقط إلى خدمات الواجهة الأمامية المطلوبة.
- تكون مكونات قاعدة البيانات قابلة للوصول إليها فقط إلى مستويات التطبيق التي تتصل بها.
تعد نهج الشبكة ميزة Kubernetes متوفرة في AKS تمكنك من التحكم في تدفق نسبة الاستخدام بين الحاويات. يمكنك السماح بنسبة استخدام إلى الحاوية أو رفضها استنادًا إلى إعدادات مثل التسميات المعينة أو مساحة الاسم أو منفذ نسبة الاستخدام. في حين أن مجموعات أمان الشبكة أفضل لعقد AKS، إلا أن نهج الشبكة هي طريقة أكثر ملاءمة، وهي طريقة محلية للتحكم في تدفق نسبة الاستخدام للحاويات. وكما يتم إنشاء الحاويات ديناميكيًا في نظام مجموعة AKS، يمكن تطبيق نُهُج الشبكة المطلوبة تلقائيًا.
لمزيد من المعلومات، راجع تأمين نسبة الاستخدام بين الحاويات باستخدام نُهُج الشبكة في Azure Kubernetes Service (AKS).
الخطوات التالية
للبدء في استخدام شبكة AKS، أنشئ مجموعة AKS مع نطاقات عناوين IP الخاصة بك مع استخدام kubenet أو Azure CNI.
للاطلاع على أفضل الممارسات ذات الصلة، راجع أفضل ممارسات الاتصال بالشبكة والأمان في AKS.
لمزيد من المعلومات حول مفاهيم Kubernetes وAKS الأساسية، راجع المقالات التالية: