ما المقصود بوحدة التحكم في دخول بوابة التطبيق؟

متحكم بوابة التطبيقات (AGIC) هو تطبيق كوبيرنتيز يتيح لمجموعات Azure Kubernetes Service (AKS) استخدام موازن التحميل الأصلي Azure Application Gateway الأصلي لعرض أحمال العمل على الإنترنت. تراقب AGIC عنقود Kubernetes الذي تستضاف عليه وتقوم بتحديث بوابة التطبيقات باستمرار بحيث يتم عرض خدمات محددة للإنترنت.

وحدة التحكم في Ingress تعمل في وحدة خاصة بها على عنقود AKS الخاص بك. تراقب AGIC مجموعة فرعية من موارد Kubernetes بحثا عن التغييرات. يتم ترجمة حالة عنقود AKS إلى تكوين خاص ببوابة التطبيق وتطبيقها على Azure Resource Manager (ARM).

في هذا المقال، ستتعرف على فوائد AGIC، وخيارات النشر (إضافات Helm وAKS)، وتكوينات شبكات الحاويات المدعومة.

تلميح

ضع في اعتبارك بوابة التطبيق للحاويات لحل دخول Kubernetes الخاص بك. لمزيد من المعلومات، راجع التشغيل السريع: نشر بوابة التطبيق لوحدة تحكم ALB للحاويات.

بوابة وحدة تحكم دخول بوابة التطبيق

يساعد AGIC في القضاء على الحاجة إلى موازن تحميل آخر أو عنوان IP عام أمام عنقود AKS. يتجنب عدة قفزات في مسار البيانات قبل أن تصل الطلبات إلى عنقود AKS. تتواصل بوابة التطبيقات مع البودات باستخدام عنوان IP الخاص بها مباشرة ولا تتطلب خدمات NodePort أو KubeProxy. توفر هذه الإمكانية أيضا أداء أفضل إلى عمليات التوزيع الخاصة بك.

يدعم وحدة التحكم Ingress حصريا بواسطة Standard_v2 وحدات WAF_v2 SKU، والتي تتيح أيضا مزايا التكبير التلقائي. يمكن أن تتفاعل بوابة التطبيقات استجابةً لزيادة أو نقصان حمل حركة المرور وحجمه وفقًا لذلك، دون استهلاك أي موارد من مجموعة AKS الخاصة بك.

استخدام Application Gateway بالإضافة إلى AGIC يساعد أيضا في حماية عنقود AKS الخاص بك من خلال توفير سياسة TLS ووظائف Web Application Firewall (WAF).

مخطط يوضح تدفق المرور من الإنترنت عبر بوابة التطبيقات إلى عنقود AKS مع AGIC.

يتم تكوين AGIC من خلال مورد Kubernetes Ingress، إلى جانب الخدمة والنشر/البودات. باستخدام موازن التحميل الأصلي Azure Application Gateway L7، توفر AGIC الميزات التالية:

  • توجيه URL
  • التقارب المستند إلى ملفات تعريف الارتباط
  • إنهاء TLS
  • TLS من طرف إلى طرف
  • دعم المواقع العامة والخاصة والهجينة
  • جدار حماية تطبيق ويب متكامل

تحذير

افتراضيا، تتولى AGIC الملكية الكاملة لبوابة التطبيق المرتبطة بها. تقوم AGIC بالكتابة فوق جميع إعدادات بوابة التطبيق الحالية التي لم يتم تعريفها في موارد Kubernetes Ingress. يتم إزالة أو استبدال أي مستمعين أو مجموعات خلفية أو قواعد أو إعدادات أخرى تم تكوينها مسبقا على بوابة التطبيق عند تفعيل AGIC. قبل تفعيل AGIC على بوابة تطبيق موجودة، قم بعمل نسخة احتياطية لتكوين بوابة التطبيق الخاصة بك عن طريق تصدير القالب من بوابة Azure. لمزيد من المعلومات، راجع النسخ الاحتياطي لنشر بوابة التطبيق.

إذا كنت بحاجة إلى AGIC للتعايش مع تكوينات بوابة التطبيقات الحالية، انظر إلى إعداد نشر بوابة التطبيقات المشتركة (Helm فقط).

الفرق بين نشر الخوذة وإضافة AKS

يمكنك نشر AGIC لمجموعة AKS الخاصة بك باستخدام إما Helm أو AKS كإضافة إضافية. الفائدة الأساسية لنشر AGIC كوظيفة AKS إضافية هي أنها أبسط من النشر من خلال Helm. لإعداد جديد، يمكنك نشر بوابة تطبيق جديدة وعنقود AKS جديد مع تفعيل AGIC كإضافة في سطر واحد في Azure CLI. الوظيفة الإضافية هي أيضًا خدمة مُدارة بالكامل، توفر مزايا إضافية مثل التحديثات التلقائية والدعم المتزايد. تدعم Microsoft طريقتين لنشر AGIC (الوظيفة الإضافية Helm و AKS). بالإضافة إلى ذلك، تتيح الإضافة تكامل أفضل مع AKS كإضافة من الدرجة الأولى.

على الرغم من أنك تنشر إضافة AGIC كوحدة في عنقود AKS الخاص بك، إلا أن هناك بعض الاختلافات بين نسخة نشر Helm والنسخة الإضافية من AGIC. تسلط القائمة التالية الضوء على الفروقات:

  • لا يمكنك تعديل قيم نشر Helm في إضافة AKS:
    • verbosityLevel يتم تعيين إلى 5 بشكل افتراضي
    • usePrivateIp يتم ضبطه على خطأ افتراضيا؛ يمكنك استبدال هذا الإعداد باستخدام تعليقات use-private-ip
    • shared غير مدعوم في الوظيفة الإضافية
    • reconcilePeriodSeconds غير مدعوم في الوظيفة الإضافية
    • armAuth.type غير مدعوم في الوظيفة الإضافية
  • يدعم AGIC المنشور عبر Helm الأهداف المحظورة، مما يعني أن AGIC يمكنها تكوين بوابة التطبيقات خصيصا لعناقيد AKS دون التأثير على الخلفيات الأخرى الموجودة. لا تدعم الوظيفة الإضافية AGIC هذه الإمكانية حاليا.
  • نظرا لأن إضافة AGIC هي خدمة مدارة، فإنك تتلقى تلقائيا تحديثات لأحدث إصدار من إضافة AGIC. على النقيض من ذلك، عند نشر AGIC عبر Helm، يجب عليك تحديث AGIC يدويا.

إشعار

يمكنك نشر إضافة AGIC واحدة فقط لكل مجموعة AKS، وكل إضافة AGIC يمكنها حاليا استهداف بوابة تطبيق واحدة فقط. للعمليات التي تتطلب أكثر من AGIC واحد لكل عنقود أو عدة AGICs تستهدف بوابة تطبيق واحدة، استخدم AGIC المنشور عبر Helm.

كل من Helm وAGIC لا يدعمان خدمة ExternalName.

شبكات الحاويات و AGIC

تدعم Application Gateway Ingress Controller عروض شبكة AKS التالية:

  • Kubenet
  • CNI
  • تراكب CNI

Azure CNI و Azure CNI Overlay هما الخياران الموصى بهما لوحدة تحكم الدخول في بوابة التطبيق. عند اختيار نموذج شبكي، ضع في اعتبارك حالات الاستخدام لكل إضافة CNI ونوع نموذج الشبكة الذي تستخدمه:

البرنامج المساعد CNI نموذج الشبكات يسلط الضوء على حالة الاستخدام
Azure تراكب CNI تراكب - الأفضل لحفظ IP للشبكة الافتراضية
- الحد الأقصى لعدد العقد المدعوم من قبل خادم واجهة برمجة التطبيقات + 250 جراب لكل عقدة
- تكوين أبسط
- لا يوجد وصول مباشر إلى IP خارجي
Azure شبكة فرعية CNI بود وطيء - الوصول المباشر إلى الجراب الخارجي
- أوضاع لاستخدام IP للشبكة الافتراضية بكفاءة أو دعم مجموعات كبيرة
Azure شبكة عقدة CNI الفرعية وطيء - الوصول المباشر إلى الجراب الخارجي
- تكوين أبسط
- نطاق محدود
- الاستخدام غير الفعال لعناوين IP للشبكات الافتراضية

عندما تقوم بتوفير بوابة التطبيقات للحاويات في عنقود يحتوي على CNI Overlay أو CNI مفعل، تكتشف Application Gateway للحاويات تلقائيا تكوين الشبكة المقصود. لا تحتاج إلى تغيير إعدادات Gateway أو Ingress API لتحديد CNI Overlay أو CNI.

عند استخدام Azure CNI Overlay، ضع في اعتبارك القيود التالية:

  • وحدة تحكم AGIC: يجب أن تقوم بتشغيل الإصدار v1.9.1 أو أعلى للاستفادة من تراكب CNI.
  • حجم الشبكة الفرعية: يجب أن تكون الشبكة الفرعية لبوابة التطبيق بادئة /24 كحد أقصى. يتم دعم توزيع واحد فقط لكل شبكة فرعية.
  • تفويض الشبكة الفرعية: يجب أن تحتوي الشبكة الفرعية لبوابة التطبيق على تفويض شبكة فرعية ل Microsoft.Network/applicationGateways.
  • الربط الإقليمي للشبكات الافتراضية: لا يمكنك نشر بوابة التطبيقات في شبكة افتراضية في منطقة واحدة وعقد عنقود AKS في شبكة افتراضية في نفس المنطقة.
  • الربط العالمي للشبكات الافتراضية: لا يمكنك نشر Application Gateway في شبكة افتراضية في منطقة واحدة وعقد عنقود AKS في شبكة افتراضية في منطقة أخرى.
  • Azure CNI Overlay with Application Gateway Ingress Controller not supported in Azure Government cloud أو Microsoft Azure operated by 21Vianet (Azure in China).

إشعار

يكتشف متحكم دخول بوابة التطبيق تلقائيا ترقية عنقود AKS من Kubenet أو CNI إلى تراكب CNI. حدد جدولة الترقية خلال نافذة الصيانة حيث قد يحدث اضطراب في حركة المرور. قد يستغرق جهاز التحكم بضع دقائق بعد ترقية العنقود لاكتشاف وتكوين دعم CNI Overlay.

تحذير

تأكد من أن شبكة بوابة التطبيق الفرعية هي شبكة فرعية /24 أو أصغر قبل الترقية. الترقية من CNI إلى CNI Overlay مع شبكة فرعية أكبر (مثل /23) تؤدي إلى انقطاع وتتطلب منك إعادة إنشاء شبكة Application Gateway الفرعية بحجم شبكة فرعية مدعومة.

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

  • AKS Add-On Greenfield Deployment: تعليمات حول تثبيت مكون AGIC و AKS و Application Gateway على بنية تحتية فارغة.
  • AKS Add-On Brownfield Deployment: قم بتثبيت الوظيفة الإضافية AGIC على مجموعة AKS باستخدام بوابة تطبيق موجودة.
  • Helm Greenfield Deployment: قم بتثبيت AGIC من خلال Helm ومجموعة AKS الجديدة وبوابة التطبيقات الجديدة على بنية تحتية فارغة.
  • Helm Brownfield Deployment: انشر AGIC من خلال Helm على مجموعة AKS و Application Gateway.