מקור מלאי של Ansible Kubernetes (K8s).

Mqwr Ml Y Sl Ansible Kubernetes K8s



בפוסט זה נלמד כיצד להשתמש בתוסף Kubernetes בכלי Ansible. ב-Ansible, קשה לנהל מספר גדול של מכולות. אבל השימוש ב-Kubernetes ב-Ansible מועיל בזמן ניהול הקונטיינרים. במדריך זה נלמד מהו מקור המלאי של Kubernetes וכיצד הוא פועל ב-Ansible.

גוגל השיקה את תוכנת הניהול הנגישה בקלות בשם Kubernetes, הידועה גם בשם K8s המשמשת לניהול התצורות הווירטואליות על קבוצה מרוחקת של מכונות עם תכונות התקנה אפסיות של זמן השבתה, החזרה אוטומטית ומדרגיות המספקת לפלאגין Kubernetes התאמה מאוד אדריכלות ב-Ansible. באמצעות הזמינות של ממשקי API של REST עבור הפונקציונליות הדרושה, המטרה העיקרית של Kubernetes היא להסתיר את המורכבויות הקשורות לשליטה במספר קונטיינרים.







התצורה של Kubernetes מבוססת על שרת לקוח. עם זאת, כברירת מחדל, יש רק שרת ראשי אחד המשמש כמארח שליטה. ב-Kubernetes, נוכל להשתמש גם בבקרים מרובים ראשיים לתצורה של Kubernetes. מקור המלאי של K8s נחוץ מדי פעם לשליטה במערכות ולהגדיר את השירותים במארח המרוחק לשליטה בפודים. אבל יש קשיים בקבלת הנחיות ספציפיות כיצד לעשות זאת. כתוצאה מכך, אנו מיישמים מדריך זה כיצד ליצור Ansible Playbook שמחלץ את הפודים בדומיין ומייצר מקור מלאי של Kubernetes.



תנאים מוקדמים לשימוש במקור המלאי של Kubernetes ב-Ansible

כדי להשתמש במקור המלאי של Kubernetes ב-Ansible, ישנן הוראות או פקודות של תהליך שלב לאורך מדריך זה. ודא שיש לך את ההכנה הדרושה אם אתה רוצה להתקדם בו:



  • כדי לעבוד בתרחיש של Ansible, קודם כל מגדירים את הכלי Ansible בשרת ומוודאים שיש לכם את גרסה 2.11.7 של Ansible כדי שנוכל להשתמש בקלות בתוסף Kubernetes.
  • כדי להעריך את התוסף Kubernetes, אנחנו צריכים התקן שרת מרוחק עם אשכול Kubernetes מובנה.
  • המארח המרוחק מוגדר כעת להפעיל את ההוראות ואת ספרי המשחק של Ansible, כמו גם קובץ מלאי בנוי. שמו של מכשיר היעד המרוחק הוא K8s Master Node.
  • הגרסה של Python היא 3.6 ומעלה שיש להתקין בהתקן של הבקר Ansible. זה יכול להיות גם במכשיר המארח המרוחק של היעד.
  • הגרסה של מודול Openshift של Python היא 0.6 ומעלה. אנחנו צריכים גם מודול pyYAML של גרסה 3.11 ומעלה. יש להגדיר את שני המודולים בהתקן השרת המרוחק וכן בהתקן הבקר.

דוגמא:





הנה הדוגמה הראשונה שבה אנו מיישמים את Kubernetes ב-Ansible. לשם כך, אנו משתמשים בכל סביבת Ansible כדי ליישם את מקור המלאי של Kubernetes. התהליכים המפורטים הבאים מתבצעים בתרחיש הבא באמצעות תוסף Kubernetes Inventory:

  • הטמעה של מרחב השמות החדש באשכול K8s ב-Ansible.
  • יצירת פוד nginx באמצעות ספר המשחקים של Ansible.
  • יצירת פריסת nginx ב-Ansible.

כדי להפוך את המושגים והביצוע לפשוטים להבנה, אנו מיישמים את הדוגמה במספר שלבים.



שלב 1: הטמע את מרחב השמות החדש באשכול K8s ב-Ansible

בשלב הראשון, אנו יוצרים את ספר המשחקים כדי שנוכל לכתוב את התוכן בפורמט '.yml' ב-Ansible. כדי ליצור את ספר המשחקים, הפקודה הבאה שבה אנו משתמשים:

[ שורש @ מאסטר אנסיבל ] # nano  nginx_pod.yml

כעת, ספר המשחקים 'pod.yml' נוצר והושק למסוף החדש של Ansible. אנחנו מתחילים לכתוב את התסריט. בספר המשחקים, אנו מגדירים תחילה את גרסת ה-API בה אנו משתמשים בפוד Ansible שהוא 'v1'. מרחב השמות שאנו מגדירים הוא 'מרחב שמות'. לאחר מכן, אנו מפרטים את המטא נתונים של מרחב השמות ansible. במטא נתונים, אנו משתמשים בתוכנת nginx ובתווית המכילה שכבת חזית ערך. במפרט של ספר ההפעלה, אנו מפרטים את השם והתמונה המאוחסנת במיכל; שניהם מכילים את ה-nginx בתוכו.

שלב 2: צור את מסמך המניפסט ב-Ansible

כעת, אנו יוצרים מסמך נוסף באותה ספרייה של Ansible שהוא מסמך הפריסה בפורמט '.yml'. כדי ליצור את מסמך המניפסט, השתמש בפקודה הבאה במסוף Ansible:

[ שורש @ מאסטר אנסיבל ] # nano nginx_deployment.yml

במסמך המניפסט, אנו מגדירים תחילה שוב את גרסת האפליקציה שהיא 'app/v1'. לאחר מכן, אנו מספרים באיזה סוג קובץ מדובר, האם זה קובץ פריסה. לאחר מכן, אנו מגדירים את מרחב השמות שהוא ansible-namespace. כדי לבנות את המימוש, שני העתקים בתוך מרחב השמות מציגים את מספר הפוד. תמונות nginx הן 1.14.2 אשר מושקות בפוד. הפרמטר matchLabels מספק את התגים לתרמילים והמפרטים שלהם תחת פרמטר המפרט. אם איכשהו התגים על הפודים תואמים לאלו שצוינו במידע התצורה, ההטמעה תתרחש במסמך המניפסט ב-Ansible.

שלב 3: צור את ה-Playbook עבור יישום Kubernetes ב-Ansible

כעת, אנו רוצים ליצור ספר משחק נוסף ב-Ansible. בספר משחק זה, אנו מיישמים בו את הפונקציונליות של Kubernetes. השתמש בפקודה הבאה כדי ליצור את ספר המשחקים:

[ שורש @ מאסטר אנסיבל ] # nano kubernetes_main.yml

ספר ההפעלה נוצר באותה ספרייה שבה מאוחסנים ספר ההפעלה הקודם ומסמך המניפסט ב-Ansible. בספר המשחק, אנו מגדירים תחילה את הפונקציונליות של ספר המשחקים שאנו רוצים ליישם. כדי לבנות את החיבור, אנו מספקים את המארחים המרוחקים שאליהם אנו רוצים למקד. כאן, אנו מכוונים ל'כל' המארחים. לאחר מכן, אנו מגדירים את המשתנה כדי לבדוק את מתורגמן Python ב-Ansible באמצעות הנתיב שבו הוא מאוחסן. כעת, אנו מגדירים את המשימות בספר המשחקים. ראשית, אנו בודקים את המצב של מכשיר המיניקוב. לאחר מכן, אנו יוצרים מרחב שמות חדש של Kubernetes בספר המשחקים. לאחר מכן, שכפל את nginx_pod.yml ואת nginx_deployment .yml למכשיר המרוחק.

באמצעות מסמכי yml אלו, אנו בונים את יישום הפוד במכשיר המרוחק. לאחר מכן, אנו בודקים אם הפוד של Kubernetes קיים או לא במיקום שצוין במכשיר המרוחק.

לאחר סיום ה-Playbook, כעת אנו בונים את קובץ המלאי כך שניצור את החיבור בין הבקר Ansible לבין מארח היעד המרוחק.

את כל:
מארחים:
k8s_Master_Node:
מארח פעיל: 192.168.3.229
ansible_user: ansible
ansible_password: ********
ansible_connection: ssh
ansible_port: 22

[ שורש @ מאסטר אנסיבל ] # ansible-playbook kubernates_main.yml

הנה הפלט הרצוי שבו אנו רואים שהמשימות ממוקמות בהצלחה במכונת היעד:

לאחר שהמשימה מונחת על מכונת היעד, אנו בודקים אם ה-'ansible-namespace' נמצא באשכול Kubernetes או לא. אנו משתמשים בפקודה הבאה 'grep':

[ שורש @ מאסטר אנסיבל ] # kubectl קבל מרחב שמות | grep ansible-namespace

אם ברצונך לבדוק את הפוד שנוצר במרחב השמות של אשכול Kubernetes, כתוב את הפקודה הבאה כדי לבדוק:

[ שורש @ מאסטר אנסיבל ] # kubectl קבל pods --namespace ansible-namespace

כפי שאתה רואה בפלט הקודם, אנו מקבלים את הפודים שפועלים במכשיר. כעת, אנו בודקים את הפריסה שביצענו באשכול Kubernetes. השתמש בהצהרה הבאה כדי לבדוק את הפריסות שכבר בוצעו:

[ שורש @ מאסטר אנסיבל ] # kubectl קבל פריסות --namespace ansible-namespace

סיכום

למדנו מהו מקור המלאי של Kubernetes ב-Ansible. למדנו גם כיצד להשתמש במלאי Kubernetes ב-Ansible. לאחר מכן, יישמנו דוגמה כדי שנלמד בצורה ברורה יותר על פעולת מקור המלאי של Kubernetes ב-Ansible.