مفاهيم الشبكات للتطبيقات في خدمة Azure Kubernetes (AKS)

في نهج الخدمات الصغرى المستندة إلى حاويات لتطوير التطبيقات، تعمل مكونات التطبيقات معًا لمعالجة مهامها. يوفر Kubernetes موارد مختلفة تمكن هذا التعاون:

  • يمكنك الاتصال بالتطبيقات وعرضها داخليًا أو خارجيًا.
  • يمكنك إنشاء التطبيقات المتوفرة بشكل كبير عن طريق موازنة تحميل التطبيقات الخاصة بك.
  • يمكنك تقييد تدفق حركة مرور الشبكة إلى أو بين القرون والعقد لتحسين الأمان.
  • يمكنك تكوين حركة مرور الدخول لإنهاء SSL/TLS أو توجيه مكونات متعددة لتطبيقاتك الأكثر تعقيدا.

تقدم هذه المقالة المفاهيم الأساسية التي توفر الشبكات لتطبيقاتك في AKS:

أساسيات شبكة Kubernetes

يستخدم Kubernetes طبقة شبكة ظاهرية لإدارة الوصول داخل التطبيقات وبينها أو مكوناتها:

  • عقد Kubernetes والشبكة الظاهرية: يتم توصيل عقد Kubernetes بشبكة ظاهرية. يتيح هذا الإعداد لوحدات الجراب (الوحدات الأساسية للتوزيع في Kubernetes) إمكانية الاتصال الوارد والصادر.

  • مكون وكيل Kube: يعمل kube-proxy على كل عقدة وهو مسؤول عن توفير ميزات الشبكة الضرورية.

فيما يتعلق بوظائف Kubernetes المحددة:

  • موازن التحميل: يمكنك استخدام موازن تحميل لتوزيع نسبة استخدام الشبكة بالتساوي عبر موارد مختلفة.
  • وحدات التحكم في الدخول: تسهل هذه التوجيه من الطبقة 7، وهو أمر ضروري لتوجيه حركة مرور التطبيقات.
  • التحكم في حركة الخروج: يسمح لك Kubernetes بإدارة حركة المرور الصادرة والتحكم فيها من عقد نظام المجموعة.
  • نهج الشبكة: تمكن هذه النهج مقاييس الأمان والتصفية لحركة مرور الشبكة في pods.

في سياق النظام الأساسي Azure:

  • يبسط Azure الشبكات الظاهرية لمجموعات AKS (Azure Kubernetes Service).
  • يؤدي إنشاء موازن تحميل Kubernetes على Azure في وقت واحد إلى إعداد مورد موازن تحميل Azure المقابل.
  • أثناء فتح منافذ الشبكة إلى pods، يقوم Azure تلقائيا بتكوين قواعد مجموعة أمان الشبكة الضرورية.
  • يمكن ل Azure أيضا إدارة تكوينات DNS الخارجية لتوجيه تطبيق HTTP مع إنشاء مسارات دخول جديدة.

الشبكات الظاهرية في Azure.

في AKS، يمكنك نشر نظام مجموعة يستخدم أحد نماذج الشبكة التالية:

  • نموذج شبكة التراكب: يعد تراكب الشبكات هو نموذج الشبكات الأكثر شيوعا المستخدم في Kubernetes. يتم إعطاء الجرابات عنوان IP من CIDR خاص منفصل منطقيا عن الشبكة الفرعية لشبكة Azure الظاهرية حيث يتم نشر عقد AKS. يتيح هذا النموذج قابلية توسع أبسط ومحسنة مقارنة بنموذج الشبكة المسطحة.
  • نموذج الشبكة المسطحة: يقوم نموذج شبكة مسطحة في AKS بتعيين عناوين IP إلى pods من شبكة فرعية من نفس شبكة Azure الظاهرية مثل عقد AKS. أي حركة مرور تغادر مجموعاتك ليست SNAT'd، ويتم عرض عنوان IP الخاص بالجراب مباشرة إلى الوجهة. يمكن أن يكون هذا النموذج مفيدا لسيناريوهات مثل تعريض عناوين IP للحجيرة للخدمات الخارجية.

لمزيد من المعلومات حول نماذج الشبكات في AKS، راجع شبكات CNI في AKS.

وحدات تحكم الدخول

عند إنشاء خدمة من نوع LoadBalancer، يمكنك أيضًا إنشاء مورد موازن تحميل Azure أساسي. تم تكوين موازن التحميل لتوزيع نسبة استخدام الشبكة إلى الحاويات في الخدمة الخاصة بك على منفذ معين.

يعمل LoadBalancer فقط في الطبقة 4. في الطبقة 4، لا تكون الخدمة مدركة للتطبيقات الفعلية، ولا يمكن إجراء أي اعتبارات توجيه أكثر.

تعمل وحدات التحكم في الدخول في الطبقة 7 ويمكنها استخدام قواعد أكثر ذكاء لتوزيع نسبة استخدام الشبكة للتطبيق. تقوم وحدات التحكم في الدخول عادة بتوجيه نسبة استخدام HTTP إلى تطبيقات مختلفة استنادًا إلى عنوان URL الوارد.

رسم تخطيطي يوضح تدفق نسبة استخدام الشبكة في نظام مجموعة AKS

مقارنة خيارات الدخول

يسرد الجدول التالي اختلافات الميزة بين خيارات وحدة تحكم الدخول المختلفة:

ميزة ملحق توجيه التطبيق بوابة التطبيق للحاويات شبكة الخدمة المستندة إلى Azure Service Mesh/Istio
وحدة تحكم الدخول/البوابة وحدة تحكم دخول NGINX بوابة تطبيق Azure للحاويات Istio Ingress Gateway
API واجهة برمجة تطبيقات الدخول واجهة برمجة تطبيقات الدخول وواجهة برمجة تطبيقات البوابة واجهة برمجة تطبيقات البوابة
استضافه داخل نظام المجموعة استضافة Azure داخل نظام المجموعة
تغيير الحجم التحجيم التلقائي التحجيم التلقائي التحجيم التلقائي
موازنة الأحمال داخلي/خارجي خارجي داخلي/خارجي
إنهاء SSL داخل نظام المجموعة نعم: إلغاء التحميل وE2E SSL داخل نظام المجموعة
mTLS ‏‫غير متوفر‬ نعم للواجهة الخلفية ‏‫غير متوفر‬
عنوان IP ثابت ‏‫غير متوفر‬ FQDN ‏‫غير متوفر‬
شهادات SSL المخزنة في Azure Key Vault ‏‏نعم‬ ‏‏نعم‬ غير متوفر
تكامل Azure DNS لإدارة منطقة DNS ‏‏نعم‬ ‏‏نعم‬ غير متوفر

يسرد الجدول التالي السيناريوهات المختلفة حيث يمكنك استخدام كل وحدة تحكم دخول:

خيار الدخول وقت الاستخدام
NGINX المدار - ملحق توجيه التطبيق • وحدات تحكم دخول NGINX المستضافة والمخصصة والقابلة للتطوير داخل المجموعة.
• قدرات موازنة التحميل والتوجيه الأساسية.
• تكوين موازن التحميل الداخلي والخارجي.
• تكوين عنوان IP ثابت.
• التكامل مع Azure Key Vault لإدارة الشهادات.
• التكامل مع مناطق Azure DNS لإدارة DNS العامة والخاصة.
• يدعم واجهة برمجة تطبيقات الدخول.
بوابة التطبيق للحاويات • بوابة الدخول المستضافة من Azure.
• استراتيجيات نشر مرنة تديرها وحدة التحكم أو إحضار بوابة التطبيق للحاويات الخاصة بك.
• ميزات إدارة حركة المرور المتقدمة مثل إعادة المحاولة التلقائية ومرونة منطقة التوفر والمصادقة المتبادلة (mTLS) إلى هدف الواجهة الخلفية وتقسيم نسبة استخدام الشبكة / الترتيب الدوري المرجح والتحجيم التلقائي.
• التكامل مع Azure Key Vault لإدارة الشهادات.
• التكامل مع مناطق Azure DNS لإدارة DNS العامة والخاصة.
• يدعم واجهات برمجة تطبيقات الدخول والبوابة.
Istio Ingress Gateway • استنادا إلى Envoy، عند استخدام مع Istio لمجموعة خدمة.
• ميزات متقدمة لإدارة حركة المرور مثل تحديد المعدل وكسر الدوائر.
• دعم mTLS
• يدعم واجهة برمجة تطبيقات البوابة.

إنشاء مورد دخول

ملحق توجيه التطبيق هو الطريقة الموصى بها لتكوين وحدة تحكم الدخول في AKS. ملحق توجيه التطبيق هو وحدة تحكم دخول مدارة بالكامل لخدمة Azure Kubernetes (AKS) التي توفر الميزات التالية:

  • تكوين سهل لوحدات تحكم دخول NGINX المدارة استنادا إلى وحدة تحكم دخول Kubernetes NGINX.

  • التكامل مع Azure DNS لإدارة المنطقة العامة والخاصة.

  • إنهاء SSL مع الشهادات المخزنة في Azure Key Vault.

لمزيد من المعلومات حول ملحق توجيه التطبيق، راجع دخول NGINX المدار مع الوظيفة الإضافية لتوجيه التطبيق.

الاحتفاظ بعنوان IP المصدر للعميل

تكوين وحدة تحكم في الدخول للاحتفاظ بعنوان IP المصدر للعميل بناء على طلبات إلى حاويات في نظام مجموعة AKS. عندما تقوم وحدة تحكم في الدخول بتوجيه طلب العميل إلى حاوية في نظام المجموعة AKS الخاص بك، فإن عنوان IP المصدر الأصلي لذلك الطلب لا يكون متوفرًا للحاوية الهدف. عند تمكين الاحتفاظ بعنوان IP المصدر للعميل يكون عنوان IP المصدر للعميل متوفرًا في عنوان الطلب ضمن X-Forwarded-For.

إذا كنت تستخدم الاحتفاظ بعنوان IP المصدر للعميل على وحدة التحكم في الدخول الخاصة بك، لا يمكنك استخدام TLS العابر. يمكن استخدام الاحتفاظ بعنوان IP المصدر للعميل وTLS العابر مع خدمات أخرى، مثل نوع LoadBalancer.

لمعرفة المزيد حول الاحتفاظ بمصدر IP للعميل، راجع كيفية عمل الاحتفاظ بمصدر IP للعميل لخدمات LoadBalancer في AKS.

التحكم في حركة المرور الصادرة (الخروج)

يتم نشر مجموعات AKS على شبكة ظاهرية واتبعيات صادرة على الخدمات خارج تلك الشبكة الظاهرية. يتم تعريف هذه التبعيات الصادرة بالكامل تقريبا بأسماء مجالات مؤهلة بالكامل (FQDNs). بشكل افتراضي، تتمتع مجموعات AKS بالوصول غير المقيد إلى الإنترنت الصادر (الخروج)، والذي يسمح للعقد والخدمات التي تقوم بتشغيلها بالوصول إلى الموارد الخارجية حسب الحاجة. إذا رغبت في ذلك، يمكنك تقييد نسبة استخدام الشبكة الصادرة.

لمزيد من المعلومات، راجع التحكم في نسبة استخدام الشبكة الصادر لنظام مجموعة العقد في AKS.

مجموعات أمان الشبكة

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

لا تحتاج إلى تكوين قواعد مجموعة أمان الشبكة يدويًا لتصفية نسبة الاستخدام للحاويات في نظام مجموعة AKS. يمكنك تحديد أي منافذ مطلوبة وإعادة التوجيه كجزء من بيانات خدمة Kubernetes والسماح للنظام الأساسي Azure بإنشاء القواعد المناسبة أو تحديثها.

يمكنك أيضًا استخدام نهج الشبكة لتطبيق قواعد تصفية نسبة الاستخدام تلقائيًا على الحاويات.

لمزيد من المعلومات، راجع كيفية تصفية مجموعات أمان الشبكة لنسبة استخدام الشبكة.

نهج الشبكة

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

  • يتم عرض التطبيقات الخلفية فقط لخدمات الواجهة الأمامية المطلوبة.
  • تكون مكونات قاعدة البيانات قابلة للوصول إليها فقط إلى مستويات التطبيق التي تتصل بها.

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

لمزيد من المعلومات، راجع تأمين نسبة الاستخدام بين الحاويات باستخدام نُهُج الشبكة في Azure Kubernetes Service (AKS).

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

للبدء في استخدام شبكة AKS، أنشئ مجموعة AKS مع نطاقات عناوين IP الخاصة بك مع استخدام kubenet أو Azure CNI.

للاطلاع على أفضل الممارسات ذات الصلة، راجع أفضل ممارسات الاتصال بالشبكة والأمان في AKS.

لمزيد من المعلومات حول مفاهيم Kubernetes وAKS الأساسية، راجع المقالات التالية: