Ansible Kubernetes (K8s) مصدر الجرد

Ansible Kubernetes K8s Msdr Aljrd



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

أطلقت Google برنامج الإدارة الذي يمكن الوصول إليه بسهولة ويسمى Kubernetes والذي يُعرف أيضًا باسم K8s والذي يستخدم لإدارة التكوينات الافتراضية عبر مجموعة من الأجهزة البعيدة مع ميزات التثبيت بدون توقف ، والارتداد الآلي ، والقابلية للتوسع والتي توفر للمكون الإضافي Kubernetes قابلاً للتكيف للغاية العمارة في أنسبل. من خلال توفر REST APIs للوظائف الضرورية ، يتمثل الهدف الأساسي لـ Kubernetes في إخفاء التعقيدات المرتبطة بالتحكم في عدد من الحاويات.







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



المتطلبات الأساسية لاستخدام مصدر مخزون Kubernetes في Ansible

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



  • للعمل في سيناريو Ansible ، قمنا أولاً بإعداد أداة Ansible على الخادم وتأكد من أن لديك إصدار Ansible 2.11.7 حتى نتمكن من استخدام البرنامج المساعد Kubernetes بسهولة.
  • لتقييم المكون الإضافي Kubernetes ، نحتاج إلى جهاز خادم بعيد به مجموعة Kubernetes مضمنة.
  • تم تكوين المضيف البعيد حاليًا لتنفيذ تعليمات Ansible وكتب التشغيل ، بالإضافة إلى ملف الجرد المدمج. اسم الجهاز البعيد المستهدف هو K8s Master Node.
  • إصدار Python هو 3.6 أو أعلى ويجب تثبيته على جهاز وحدة التحكم Ansible. يمكن أن يكون أيضًا في الجهاز المضيف البعيد الهدف.
  • إصدار وحدة الفتح المفتوح في بايثون هو 0.6 أو أعلى. نحتاج أيضًا إلى وحدة pyYAML للإصدار 3.11 أو أعلى. يجب إعداد كلا الوحدتين في جهاز الخادم البعيد وكذلك جهاز التحكم.

مثال:





هذا هو المثال الأول حيث قمنا بتطبيق Kubernetes في Ansible. للقيام بذلك ، نستخدم أي بيئة Ansible لتنفيذ مصدر مخزون Kubernetes. يتم تنفيذ العمليات المدرجة التالية في السيناريو التالي باستخدام Kubernetes Inventory Plugin:

  • تنفيذ مساحة الاسم الجديدة في مجموعة K8s في Ansible.
  • إنشاء جراب nginx باستخدام كتاب اللعب Ansible.
  • إنشاء نشر nginx في Ansible.

لجعل المفاهيم والتنفيذ سهل الفهم ، نقوم بتنفيذ المثال في عدد من الخطوات.



الخطوة 1: تنفيذ Namespace الجديد في مجموعة K8s في Ansible

في الخطوة الأولى ، نقوم بإنشاء دليل التشغيل حتى نتمكن من كتابة المحتوى بتنسيق “.yml” في Ansible. لإنشاء كتاب التشغيل ، ما يلي هو الأمر الذي نستخدمه:

[ جذر @ إتقان ansible ] # nano nginx_pod.yml

الآن ، تم إنشاء دليل التشغيل 'pod.yml' وإطلاقه في محطة Ansible الجديدة. نبدأ في كتابة السيناريو. في دليل التشغيل ، نحدد أولاً إصدار API الذي نستخدمه في جراب Ansible وهو 'v1'. مساحة الاسم التي نحددها هي 'ansible-namespace'. بعد ذلك ، نقوم بإدراج البيانات الوصفية لمساحة الاسم غير القابلة للتطبيق. في البيانات الوصفية ، نستخدم برنامج nginx والملصق الذي يحتوي على طبقة من القيمة الأمامية فيه. في مواصفات دليل التشغيل ، نقوم بإدراج الاسم والصورة المخزنة في الحاوية ؛ كلاهما يحتوي على nginx فيه.

الخطوة 2: قم بإنشاء مستند البيان في Ansible

الآن ، نقوم بإنشاء مستند آخر في نفس دليل Ansible وهو مستند النشر بتنسيق “.yml”. لإنشاء مستند البيان ، استخدم الأمر التالي في محطة Ansible:

[ جذر @ إتقان ansible ] # نانو nginx_deployment.yml

في مستند البيان ، نحدد أولاً مرة أخرى إصدار التطبيق وهو 'app / v1'. بعد ذلك ، نحدد نوع الملف ، سواء كان ملف نشر. بعد ذلك ، نحدد مساحة الاسم التي هي مساحة اسم غير مرئية. لإنشاء التطبيق ، تُظهر نسختان متماثلتان داخل مساحة الاسم غير الصالحة عدد الكبسولة. صور nginx هي 1.14.2 التي يتم إطلاقها في الحجرة. توفر المعلمة matchLabels علامات البودات ومواصفاتها ضمن معلمة المواصفات. إذا كانت العلامات الموجودة على الكبسولات تتطابق بطريقة ما مع تلك المحددة في معلومات التكوين ، فسيحدث التنفيذ في مستند البيان في Ansible.

الخطوة 3: قم بإنشاء كتاب Playbook لتطبيق Kubernetes في Ansible

الآن ، نريد إنشاء كتاب لعب آخر في Ansible. في هذا الدليل ، نقوم بتنفيذ وظائف Kubernetes فيه. استخدم الأمر التالي لإنشاء كتاب التشغيل:

[ جذر @ إتقان ansible ] # نانو kubernetes_main.yml

يتم إنشاء دليل التشغيل في نفس الدليل حيث يتم تخزين دليل التشغيل ومستند البيان السابق في Ansible. في دليل التشغيل ، نحدد أولاً وظيفة دليل اللعبة التي نريد تنفيذها. لبناء الاتصال ، نقدم المضيفين البعيدين الذين نريد استهدافهم. هنا ، نستهدف 'جميع' المضيفين. بعد ذلك ، نحدد المتغير للتحقق من مترجم Python في Ansible باستخدام المسار حيث يتم تخزينه. الآن ، نحدد المهام في دليل التشغيل. أولاً ، نتحقق من حالة جهاز minikube. بعد ذلك ، نقوم بإنشاء مساحة اسم Kubernetes جديدة في دليل التشغيل. ثم قم بتكرار nginx_pod.yml و nginx_deployment .yml إلى الجهاز البعيد.

من خلال مستندات yml هذه ، نقوم ببناء تطبيق pod في الجهاز البعيد. بعد ذلك ، نتحقق مما إذا كانت حافظة Kubernetes موجودة أم لا في الموقع المحدد في الجهاز البعيد.

بعد إنهاء دفتر اللعب ، نقوم الآن ببناء ملف الجرد حتى نجعل الاتصال بين وحدة التحكم Ansible والمضيف البعيد الهدف.

الجميع:
المضيفون:
k8s_Master_Node:
ansible_host: 192.168.3.229
ansible_user: غير صالح
ansible_password: ********
اتصال غير مرغوب فيه: ssh
ansible_port: 22

[ جذر @ إتقان ansible ] # ansible-playbook kubernates_main.yml

هنا هو الإخراج المطلوب حيث نرى أن المهام قد تم وضعها بنجاح على الجهاز الهدف:

بعد وضع المهمة على الجهاز الهدف ، نتحقق مما إذا كانت 'مساحة الاسم غير المرغوبة' موجودة في مجموعة Kubernetes أم لا. نستخدم الأمر 'grep' التالي:

[ جذر @ إتقان ansible ] # kubectl الحصول على مساحة الاسم | grep ansible-namespace

إذا كنت تريد التحقق من الكبسولة التي تم إنشاؤها في مساحة اسم مجموعة Kubernetes ، فاكتب الأمر التالي للتحقق:

[ جذر @ إتقان ansible ] # kubectl get pods - مساحة الاسم ansible-namespace

كما ترى في الإخراج السابق ، نحصل على البودات التي تعمل على الجهاز. الآن ، نتحقق من النشر الذي أجريناه في مجموعة Kubernetes. استخدم العبارة التالية للتحقق من عمليات النشر التي تم إجراؤها بالفعل:

[ جذر @ إتقان ansible ] # kubectl الحصول على عمليات النشر - مساحة الاسم ansible-namespace

خاتمة

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