كيفية استخدام HAProxy كوحدة تحكم في الدخول في بيئة Kubernetes

Kyfyt Astkhdam Haproxy Kwhdt Thkm Fy Aldkhwl Fy Byyt Kubernetes



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

ما هو جهاز التحكم في الدخول؟

وحدة التحكم في الدخول هي مكون يسمح للمستخدمين بإدارة والتحكم في الوصول إلى الخدمات داخل مجموعة Kubernetes الخاصة بهم. تحتوي وحدة التحكم في الدخول على عنصرين رئيسيين:

  1. مورد الدخول - إنه كائن Kubernetes API الذي يحدد قواعد توجيه حركة مرور الخدمات في المجموعة بناءً على اسم المضيف والمسارات المحددة.
  2. مراقب الدخول – هو مكون برمجي مثل HAProxy أو Traefik أو NGINX الذي يقوم بتنفيذ القواعد المحددة في مورد الدخول. يقوم بتكوين موازن التحميل للتعامل مع حركة المرور بناءً على التغييرات التي تم إجراؤها على كائنات الدخول.

كيفية استخدام HAProxy كوحدة تحكم في الدخول في بيئة Kubernetes

بعد أن فهمت ماهية وحدة التحكم في الدخول وسبب حاجتك إليها، فإن المهمة التالية هي تغطية خطوات استخدامها. بالنسبة لحالتنا، قمنا بإعداد HAProxy كوحدة تحكم في الدخول باتباع الخطوات المقدمة.







غير متاح: تأكد من تشغيل مجموعة Kubernetes وتشغيلها. ثم تابع على النحو التالي.



الخطوة 1: ابدأ مجموعة Kubernetes الخاصة بك
هناك طرق مختلفة لإعداد وبدء مجموعة Kubernetes. في هذا الدليل، نستخدم Minikube. إنها أداة توفر طريقة مبسطة لنشر Kubernetes داخل جهاز افتراضي أو Docker، خاصة إذا كان لديك Kubernetes محليًا على جهازك.



الرجوع إلى وثائق مينيكوبي على أوامر التثبيت لاستخدامها في النظام الأساسي الخاص بك. في هذه الحالة، نقوم بتشغيل بنية Linux مستقرة 'x64' ونقوم بتشغيل الأوامر التالية:





$ حليقة -هو - هي https: // Storage.googleapis.com / com.minikube / إطلاق / أحدث / ميني كيوب لينكس AMD64
$ sudo ثَبَّتَ ميني كيوب لينكس AMD64 / usr / محلي / سلة مهملات / com.minikube

يقوم الأمر الأول بالحصول على أحدث ثنائي مستقر من Minikube، بينما يقوم الأمر الثاني بتثبيت الثنائي ونقله إلى المسار المحدد.

بمجرد تثبيت Minikube، ابدأ تشغيله لإظهار المجموعة.



$ بداية مينيكوب

يجب أن يكون لديك kubectl مثبتًا للوصول إلى المجموعة. ومع ذلك، يمكنك استخدام إصدار kubectl المتوفر مع Minikube. على سبيل المثال، للتحقق من تفاصيل البودات قيد التشغيل، يمكنك تنفيذ الأمر 'kubectl' كما يلي:

$ minikube kubectl -- الحصول على القرون

بهذه الطريقة، لن تحتاج إلى تثبيت kubectl. تشير (-) إلى أن الأوامر مخصصة لـ kubectl، وليس Minikube.

الخطوة 2: إنشاء مساحة الاسم
تتضمن الخطوة الثانية إنشاء مساحة اسم مخصصة لوحدة التحكم في الدخول. قمنا بتسمية مساحة الاسم باسم 'haproxy-controller'.

$ minikube kubectl ينشئ وحدة تحكم haproxy لمساحة الاسم

الخطوة 3: إنشاء ونشر وحدة التحكم في الدخول HAProxy
تعتمد كيفية إنشاء وحدة التحكم في الدخول على ما تريد تحقيقه. على سبيل المثال، يمكنك إنشاء وحدة تحكم دخول HAProxy لتوجيه حركة مرور HTTP اعتمادًا على اسم المضيف المطلوب. في مثل هذه الحالة، ابدأ بالوصول إلى خادم DNS الخاص بك وإنشاء سجل 'A' لتعيين اسم المضيف المستهدف إلى مجموعتك.

بمجرد حصولك على السجل 'A' الصحيح، قم بإنشاء ملف YAML للتحكم في الدخول كما هو موضح في الصورة التالية. في القسم الأول، أنشأنا مورد نشر يستخدم صورة حاوية Docker 'jmalloc/echo-server' كمثال لدينا.

في القسم الثاني من ملف YAML، قمنا بإنشاء مورد الخدمة الذي يتم تعيينه بناءً على اسم المضيف المطلوب في وحدة التحكم في الدخول التي تم إنشاؤها في الخطوة 4.

احفظ الملف وانشره على مجموعتك باستخدام kubectl. نشير إلى Minikube kubectl عن طريق تشغيل الأمر التالي لحالتنا. وحدة التحكم في دخول HAProxy الخاصة بنا هي 'linuxhint-jmaildeployment.yaml'.

$ minikube kubectl -- يتقدم -F < اسم الملف >

بمجرد حصولك على نتيجة توضح أن الخدمة قد تم إنشاؤها، يمكنك أيضًا التحقق من نشرها باستخدام الأمر التالي:

$ minikube kubectl -- الحصول على القرون --مساحة الاسم haproxy-controller

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

الخطوة 4: إنشاء ونشر مورد الدخول
قم بإنشاء ملف YAML آخر يعمل كمورد دخول يحتوي على القواعد الخاصة بكيفية توجيه HAProxy لحركة المرور الخاصة بك. تأكد من أنك تستخدم اسم المجال الصحيح (المضيف) الذي تستهدفه وقم بضبط التسمية والمنفذ المطلوب لقبول حركة المرور الواردة.

احفظ ملف مورد دخول HAProxy وقم بنشره كما فعلنا مع وحدة التحكم.

$ minikube kubectl -- يتقدم -F < اسم الملف >

نحن نسمي مورد الدخول الخاص بنا باسم 'linuxhint-ingresscontroller.yaml'.

هذا كل شيء! باستخدام الأمر التالي، يمكنك التحقق من أن وحدة التحكم في دخول HAProxy تعمل عن طريق التحقق من المنفذ الذي تم تعيينه لـ NodePort.

$ minikube kubectl -- احصل على خدمة haproxy-kubernetes-ingress --مساحة الاسم haproxy-controller

في هذه الحالة، تم تعيينه بالمنفذ 32448. يمكنك الوصول إلى الخدمة التي تم إنشاؤها باستخدام المنفذ والتحقق من حالتها.

وبذلك، تمكنت من استخدام HAProxy كوحدة تحكم في الدخول في بيئة Kubernetes.

خاتمة

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