إدارة واجهات API · دليل
متحكم Ingress في Kubernetes: Ingress أم Gateway API أم بوابة API، وأين يناسب Kong
متحكم Ingress في Kubernetes هو المكوّن الذي يستقبل الطلبات القادمة من خارج العنقود ويوجّهها إلى الخدمة المناسبة داخله. ولا يعمل عنقود في الإنتاج دونه، والاختيار فيه أوسع مما يبدو: مورد Ingress الأقدم، أو واجهة Gateway API الأحدث في Kubernetes، أو بوابة API كاملة تعمل على العنقود. يشرح هذا الدليل الخيارات الثلاثة بلغة واضحة، والفرق بين المدخل وبوابة API، وكيف تجهّز إنتركي Kong Ingress Controller للجهات في السعودية.
نُشر في 9 دقائق قراءة
الخلاصة للإدارة
- ما هو: الباب الأمامي لعنقود Kubernetes. يحدد أي طلب خارجي يصل إلى أي خدمة، وعنده يُفك تشفير TLS في الغالب.
- لماذا يهم: كل طلب من العملاء والشركاء وتطبيقات الجوال يمر عبره، فتصميمه يحدد التوفر والأمان، ومكان حفظ مفاتيح التشفير والسجلات.
- الاختيار: توجيه أساسي عبر مورد Ingress، أو توجيه أغنى عبر Gateway API، أو سياسات البوابة مثل التحقق من الهوية وحدود المعدل على المكوّن نفسه.
- أين يناسب Kong: يشغّل Kong Ingress Controller بوابة Kong Gateway مدخلًا للعنقود، فيتولى مكوّن واحد توجيه الحركة وتطبيق سياسات البوابة.
نظرة سريعة
| السؤال | الجواب |
|---|---|
| ما عمله | يوجّه الطلبات من خارج العنقود إلى الخدمات داخله، بحسب اسم النطاق والمسار أو بحسب البروتوكول |
| الحركة التي يتولاها | الحركة الداخلة إلى العنقود والخارجة منه (north-south). أما الحركة بين الخدمات داخله فلها تصميم مستقل |
| كيف تُكتب المسارات | موارد في Kubernetes: إما Ingress، وإما موارد Gateway والمسارات في Gateway API |
| المدخل أم بوابة API | المدخل يوجّه الطلبات، وبوابة API تتعرف أيضًا على المتصل وتطبّق السياسات لكل مستهلك |
| خيار Kong | Kong Ingress Controller، يشغّل Kong Gateway مدخلًا للعنقود ويدعم Ingress وGateway API معًا |
| من إنتركي | التصميم، والإعداد على هيئة شيفرة، ونقل المسارات الحالية، والمراقبة، والدعم من الرياض |
ماذا يفعل متحكم Ingress في Kubernetes، بلغة واضحة
تتعرف الخدمات داخل العنقود بعضها على بعض بأسماء وعناوين داخلية تتغير كلما بدأت Pods أو توقفت، ولا يستطيع أحد من خارج العنقود استخدام هذه العناوين. فلا بد من مكوّن يقف عند الحافة، يستقبل الطلب الموجّه إلى api.example.sa/orders، ويمرره إلى الـ Pods التي تشغّل خدمة الطلبات في تلك اللحظة. وهذا عمل متحكم Ingress.
ويقسم Kubernetes هذا العمل إلى جزأين. مورد توجيه في إعدادات العنقود يصف المطلوب: هذا النطاق وهذا المسار يذهبان إلى تلك الخدمة. والمتحكم هو البرنامج الذي يقرأ هذه الموارد ويضبط وسيطًا (proxy) يطابقها. والمسار الذي لا متحكم له لا يفعل شيئًا.
اقرأ المزيد
لماذا يهم تصميم مدخل k8s للجهات في المملكة
عند المدخل يُفك تشفير TLS في أغلب التصاميم، أي أنه يحفظ الشهادات والمفاتيح الخاصة ويرى الطلبات نصًّا واضحًا. وحين يشترط تصنيف بيانات الجهة أن تبقى البيانات داخل السعودية، يصبح مكان حدوث ذلك جزءًا من الإجابة عن إقامة البيانات، لا تفصيلًا جانبيًا. وهو كذلك أول مكان يظهر فيه بطء خدمة أو تعطلها للعملاء، فسجلاته ومقاييسه أول ما يقرؤه فريق التشغيل وقت الحادثة.
وتواجه فرق كثيرة هذا السؤال أثناء الانتقال إلى Kubernetes: تنتقل التطبيقات إلى العنقود، ويجب إعادة بناء التوجيه الذي كان في موزع الأحمال أو الوسيط العكسي أو بوابة API أمام الأجهزة الافتراضية.
روابط ذات صلةالانتقال إلى Kubernetes
Ingress أم Gateway API في Kubernetes أم بوابة API كاملة: الخيارات
هذه الخيارات طبقات أكثر من كونها بدائل، فكل منها يضيف شيئًا إلى ما قبله، ويضيف معه ما يجب تشغيله.
| الخيار | ما يقدّمه | متى يناسب | ما يجب الانتباه إليه |
|---|---|---|---|
| مورد Ingress | توجيه HTTP وHTTPS بحسب اسم النطاق والمسار، مع فك تشفير TLS عند المتحكم | عنقود فيه عدد قليل من تطبيقات الويب وتوجيه بسيط | كل ما يتجاوز النطاق والمسار، مثل المطابقة بالترويسات أو تقسيم الحركة، يُكتب في تعليقات (annotations) خاصة بكل منتج ولا تنتقل من متحكم إلى آخر |
| Gateway API في Kubernetes | توجيه مقسّم إلى موارد مستقلة لفريق المنصة (البوابة) ولفرق التطبيقات (المسارات)، مع مطابقة أغنى وبروتوكولات غير HTTP | العناقيد المشتركة التي تنشر فيها عدة فرق مساراتها، والعناقيد الجديدة | واجهة أحدث، فتحققوا من الموارد والميزات التي يدعمها المتحكم قبل بناء التصميم عليها |
| بوابة API على العنقود | التوجيه ومعه التحقق من الهوية وحدود المعدل لكل مستهلك وتعديل الطلبات وسجلات لكل مستهلك، على المكوّن نفسه | واجهات يستخدمها الشركاء أو تطبيقات الجوال أو جهات أخرى | إعدادات أكثر ومسؤولية تشغيل أكبر، وللسياسات مالك وإجراء للتغيير |
تتغير موارد Gateway API التي يدعمها كل متحكم، ودرجة دعمها، من إصدار إلى آخر. وفي Kong نتحقق من القائمة الحالية في توثيق Kong قبل التصميم، ولا نعتمد على ملخص.
واجهة Gateway API في Kubernetes، ولماذا تتجه إليها العناقيد الجديدة
صُمم مورد Ingress لفريق واحد يوجّه حركة الويب. وفي العنقود المشترك يصبح ذلك مشكلة: فكل فريق تطبيق يحتاج إلى تعديل مساراته، بينما الإعدادات التي تهم فريق المنصة، مثل المنافذ المفتوحة والشهادات المستخدمة، موجودة في المورد نفسه. وتنتهي الميزات الأغنى في تعليقات يعرّفها كل متحكم على طريقته. أما Gateway API، وهي مشروع من مشاريع Kubernetes، فتفصل هذه المسؤوليات في موارد مستقلة.
| المورد | من يملكه | ما يحتويه |
|---|---|---|
| GatewayClass | فريق المنصة، مع مزوّد المتحكم | نوع المتحكم الذي ينفذ العمل |
| Gateway | فريق المنصة | المستمعات والمنافذ والشهادات عند حافة العنقود |
| المسارات، مثل HTTPRoute | فرق التطبيقات | قواعد المطابقة والخدمات التي تذهب إليها الطلبات، ويرتبط كل مسار ببوابة مسموح له باستخدامها |
والنتيجة أن فريق التطبيق ينشر مساراته ويعدّلها دون أن يمس الحافة، ويستطيع فريق المنصة تحديد مساحات الأسماء (namespaces) التي يحق لها الارتباط بكل بوابة. والمطابقة بالترويسات ومعاملات الاستعلام، وتقسيم الحركة بأوزان للإطلاق التدريجي، والبروتوكولات غير HTTP، كلها جزء من المواصفة لا تعليقات إضافية.
والعنقود الذي يعمل اليوم جيدًا على Ingress لا يلزمه الانتقال دفعة واحدة. فأغلب المتحكمات التي تدعم Gateway API تقرأ Ingress أيضًا، فتنتقل المسارات خدمة بعد خدمة، ويبقى الاثنان معًا طوال فترة التغيير.
المدخل أم بوابة API: أين ينتهي التوجيه وتبدأ إدارة الواجهات
يجيب متحكم Ingress عن سؤال واحد: إلى أين يذهب هذا الطلب؟ أما بوابة API فتجيب عن أسئلة أخرى: من المتصل؟ هل يحق له استدعاء هذا المسار؟ هل استنفد حصته في هذه الدقيقة؟ هل يجب تعديل الطلب أو الرد في الطريق؟ ولأي مستهلك يعود هذا السطر في السجل؟
والعنقود الذي يخدم واجهة الويب الخاصة بالجهة فقط يكفيه في الغالب التوجيه وTLS. فإذا بدأ العنقود نفسه ينشر واجهات للشركاء أو للمنصات الحكومية أو لتطبيق جوال، ظهرت الأسئلة الأخرى. وعندها إما أن تضيف كل خدمة هذه الضوابط داخلها، فتتوزع شيفرة الأمان على فرق كثيرة، وإما أن توضع عند الحافة، وهذا عمل البوابة. وتشرح صفحة بوابة API وظائفها، وتتناول صفحة أمن واجهات API ما تستطيع البوابة فرضه وما لا تستطيعه.
ولا يلزم أن يكون المدخل والبوابة منتجين منفصلين. فحين يكون متحكم Ingress نفسه بوابة API، يكون التوجيه والسياسات في إعدادات واحدة، ضمن موارد العنقود، تُراجع وتُنشر مع التطبيقات التي تحميها.
روابط ذات صلةصفحة بوابة APIصفحة أمن واجهات API
قائمة تحقق قبل اختيار متحكم Ingress في Kubernetes
- كل اسم نطاق ومسار يجب أن يخدمه العنقود مكتوب، ولكل منها مالك.
- حُسم مكان فك تشفير TLS، ومن يدير الشهادات، وكيف تُجدَّد.
- حُسم هل تُكتب المسارات بمورد Ingress أو بموارد Gateway API، أو بالاثنين خلال فترة الانتقال.
- القواعد الموجودة اليوم في موزع الأحمال أو الوسيط العكسي أو البوابة مكتوبة، وكل قاعدة تُبقى أو تُعدَّل أو تُحذف عن قصد.
- يعمل المدخل بأكثر من نسخة، مع حدود للموارد وطريقة ترقية مجرّبة.
- تصل سجلات الوصول والمقاييس لكل مسار إلى منصة المراقبة، ويصل تنبيه إلى مسؤول حين ترتفع نسب الأخطاء.
- الإعدادات محفوظة في نظام لإدارة الإصدارات، وتتغير بالمراجعة، لا يدويًا داخل العنقود.
- مكان معالجة الطلبات والمفاتيح والسجلات مطابق لتصنيف بياناتكم.
أين يناسب Kong Ingress Controller، وأين لا يناسب
Kong هي البوابة التي تطبّقها إنتركي. ويشغّل Kong Ingress Controller بوابة Kong Gateway مدخلًا للعنقود، ويضبطها من موارد Kubernetes، فتُدار البوابة بالطريقة نفسها التي تُدار بها التطبيقات.
| الحاجة | مع Kong Ingress Controller | ما ينبغي معرفته |
|---|---|---|
| التوجيه بمورد Ingress | مدعوم | تُقرأ مسارات Ingress الحالية كما هي، ثم تُنقل بالتدريج |
| التوجيه بواجهة Gateway API | مدعوم، ومنه HTTPRoute وTCPRoute وUDPRoute | نتحقق من قائمة الموارد والميزات الحالية في توثيق Kong وقت التصميم |
| سياسات البوابة عند المدخل | إضافات Kong، تُضبط عبر موارد Kubernetes المخصصة | بعض الإضافات، مثل Rate Limiting Advanced، في Enterprise فقط، أما Rate Limiting فلا |
| السياسات نفسها خارج العنقود | Kong Gateway أمام الأجهزة الافتراضية، بنموذج الإضافات نفسه | طريقة واحدة لكتابة السياسات للخدمات داخل Kubernetes وخارجه |
| الحركة بين الخدمات داخل العنقود | ليست من عمل المدخل | الحركة بين الخدمات (east-west) قرار تصميم مستقل |
أين لا يناسب. إذا كان العنقود يخدم واجهة ويب فقط، بعدد قليل من النطاقات ودون مستهلكين من الخارج، فقد تكون بوابة API كاملة أكثر مما تحتاجون إلى تشغيله، ويكون التوجيه البسيط هو النطاق الصحيح. ولا يغني Kong Ingress Controller عن الحماية من هجمات إغراق الشبكة الكبيرة أمام العنقود. وتشرح صفحة تنفيذ Kong أشكال النشر، ومنها تشغيل البوابة مدخلًا لـ Kubernetes إلى جانب نشر بإدارة ذاتية أو نشر هجين.
المدخل في مشروع الانتقال إلى Kubernetes
في مشاريع الانتقال التي تنفذها إنتركي يُبنى المدخل مع العنقود لا بعده: العنقود والمدخل والأسرار وربط المراقبة ومسار النشر عمل واحد بنطاق محدد. وتنتقل المسارات بترتيب الاعتماديات نفسه الذي تنتقل به التطبيقات، فيعمل المدخل القديم والجديد جنبًا إلى جنب، وتنتقل كل خدمة حين تجهز.
ويسير النقل بسهولة حين تكون قواعد التوجيه الحالية مكتوبة، وتستطيع التطبيقات العمل بعدة نسخ متطابقة خلف المدخل. وتعرض صفحة تنسيق الحاويات باستخدام Kubernetes الصورة الأوسع للمنصة، وتشرح صفحة مراقبة Kubernetes مراقبة العنقود ومدخله.
اقرأ المزيد
الدعم من الرياض. يعمل مهندسو إنتركي من الرياض بالعربية والإنجليزية، من الأحد إلى الخميس. ويمكن أن يعمل العنقود ومدخله على خوادمكم أو في منطقة سحابية داخل المملكة، بحسب ما تسمح به إقامة البيانات لديكم.
ما الذي يحدد التكلفة والمدة
تثبيت المتحكم على عنقود جديد سريع، أما الجهد فيقع حوله، ونقدّم تقديره بعد قراءة التوجيه الحالي لديكم لا قبلها. وما يحدده: عدد النطاقات والمسارات وهل هي موثقة، وعدد الفرق التي تنشر مسارات، وهل تدخل سياسات البوابة مثل التحقق من الهوية وحدود المعدل في النطاق، وعدد العناقيد والبيئات التي تحتاج الإعداد نفسه، وهل يجب نقل الحركة الحالية دون توقف.
وحين تحتاجون إلى إضافات Kong Enterprise، يُسعَّر ترخيص Kong بشروط Kong، في بند مستقل عن عمل إنتركي.
روابط ذات صلةصفحة تنسيق الحاويات باستخدام Kubernetesصفحة مراقبة Kubernetes
كيف تساعدكم إنتركي في مدخل Kubernetes
-
قراءة الحافة الحالية.
حصر المسارات والشهادات وقواعد البوابة الحالية، مع مالك لكل منها.
-
اختيار التصميم.
Ingress أو Gateway API أو الاثنان، وهل توضع سياسات البوابة عند المدخل، وأين يُفك تشفير TLS.
-
الإعداد على هيئة شيفرة.
Kong Ingress Controller وموارده في نظام لإدارة الإصدارات، تُراجع وتُختبر قبل الإنتاج.
-
النقل مسارًا بعد مسار.
المدخل القديم والجديد جنبًا إلى جنب، وتنتقل كل خدمة حين تجهز.
-
المراقبة والدعم.
سجلات وتنبيهات لكل مسار، ودعم من الرياض بالعربية والإنجليزية، أو تشغيل بنطاق خدمات مُدارة مكتوب.
أسئلة يطرحها العملاء عن متحكم Ingress في Kubernetes
ما الذي يفعله متحكم Ingress في Kubernetes تحديدًا؟
يتابع موارد التوجيه في العنقود ويضبط وسيطًا (proxy) يطابقها، فيصل الطلب الموجّه إلى نطاق ومسار معيّنين إلى الخدمة الصحيحة. وفي أغلب التصاميم يفك عنده تشفير TLS، ويكتب سجلات الوصول للحركة القادمة من الخارج.
هل نبدأ العنقود الجديد بمورد Ingress أم بواجهة Gateway API؟
للعنقود المشترك الجديد تكون Gateway API في الغالب البداية الأنسب، لأن فريق المنصة وفرق التطبيقات يملك كل منهم موارد مستقلة، والتوجيه الأغنى جزء من المواصفة. والعنقود الصغير بتوجيه ويب بسيط يكفيه Ingress. وكثير من المتحكمات، ومنها متحكم Kong، تقرأ الاثنين.
هل يكفي متحكم Ingress، أم نحتاج معه إلى بوابة API؟
يكفي المدخل حين يخدم العنقود واجهته الخاصة فقط. فإذا بدأ الشركاء أو تطبيقات الجوال أو جهات أخرى باستدعاء واجهاته، احتجتم إلى معرفة المتصل وحدود المعدل وسجلات لكل مستهلك. ومع Kong Ingress Controller يمكن تشغيل هذه السياسات على المدخل نفسه.
هل نحتاج إلى ترخيص Kong Enterprise لمدخل العنقود في المملكة؟
يتوقف ذلك على الإضافات التي تحتاجونها. فالتوجيه الأساسي وإضافات مثل Rate Limiting غير مصنّفة Enterprise فقط، أما إضافات مثل Rate Limiting Advanced فهي كذلك. ونراجع متطلباتكم مقابل قائمة إضافات Kong الحالية، ويُسعَّر الترخيص بشروط Kong.
هل يمكن أن تبقى مفاتيح TLS والطلبات وسجلات المدخل داخل السعودية؟
نعم، حين يعمل العنقود داخل المملكة، على خوادمكم أو في منطقة سحابية داخل السعودية، فالمدخل يفك التشفير ويعالج الطلبات حيث يعمل العنقود. أما الجهة التي تُرسل إليها السجلات والمقاييس بعد ذلك فقرار مستقل يعود إلى تصنيف بياناتكم.
كم يستغرق نقل مساراتنا إلى متحكم Ingress جديد؟
يتوقف على عدد المسارات والنطاقات، وهل هي موثقة، وهل يجب نقل الحركة دون توقف. فتثبيت المتحكم سريع، أما حصر المسارات واختبارها فيأخذ وقتًا أطول. ونقدّم تقديرًا للمدة بعد قراءة التوجيه الحالي.
التالي
اقرأ أيضًا
الخطوة التالية
خططوا لمدخل العنقود معنا
أخبرونا عن عناقيدكم، والتطبيقات التي تخدمها، وكيف تصل الحركة إليها اليوم، ومن يستدعي واجهاتكم. وسنقترح تصميمًا للمدخل، ونبيّن هل مكان سياسات البوابة عند الحافة، وخطوات النقل دون تعطيل أحد.
أو مباشرةً
+966-11-2180999 [email protected]أبراج التعاونية، البرج الشمالي، الطابق السابع، طريق الملك فهد، العليا، ص.ب. ٥٦٨٣٥، الرياض ١١٥٦٤، المملكة العربية السعودية