כיצד לדמיין אירועי אשכול Kubernetes בזמן אמת



פוסט בבלוג זה יסייע לך ללמוד כיצד לפרסם נתוני אירועי אשכול Kubernetes לחיפוש אלסטי של אמזון באמצעות סוכן הרישום של Fluentd.

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

אנו נדריך אותך בתהליך הבא:





שלב 1: יצירת אשכול Kubernetes

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

נתחיל ביצירת אשכול Kubernetes ואדגים לך צעד אחר צעד, כיצד להתקין ולהגדיר את Kubernetes ב- CentOS 7.



אחד. הגדר תצורה של מארחים

    • vi / etc / hosts
    • בצע שינויים בהתאם לפרטי המארח שלך בקובץ המארחים

IMG1 - חיפוש אלסטיקה - אדוריקה

2. השבת את SELinux על ידי ביצוע הפקודות הבאות



    • setenforce 0
    • sed -i – follow-symlinks ‘s / SELINUX = אכיפה / SELINUX = מושבת / g’ / וכו ’/ sysconfig / selinux

3. הפעל את מודול הליבה של br_netfilter

מודול br_netfilter נדרש להתקנת kubernetes. הפעל את הפקודה למטה כדי להפעיל את מודול ליבת br_netfilter.
    • modprobe br_netfilter
    • הד '1'> / proc / sys / net / bridge / bridge-nf-call-iptables

ארבע. השבת את SWAP על ידי ריצה מתחת לפקודות.

    • החלפה -א
    • לאחר מכן ערוך / etc / fstab והגב על שורת ההחלפה

5. התקן את הגרסה האחרונה של Docker CE.התקן את תלות החבילה עבור docker-ce על ידי הפעלת מתחת לפקודות.

קישוריות מסד נתונים בג'אווה עם mysql
    • yum להתקין -y yum-utils device-mapper-persistent-data lvm2
הוסף את מאגר העגינה למערכת והתקן את docker-ce באמצעות הפקודה yum.

6. התקן את Kubernetes

השתמש בפקודה הבאה כדי להוסיף את מאגר kubernetes למערכת centos 7.
    • yum להתקין -y kubelet bebeadm kubectl

[kubernetes] name = Kubernetes baseurl = https: //packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64 מופעל = 1 gpgcheck = 1 repo_gpgcheck = 1 gpgkey = https: //packages.cloud.google. com / yum / doc / yum-key.gpg https://packages.cloud.google.com/yum/doc/rpm-package-key.gpg EOF
התקן את חבילות kubeadm, kubelet ו- kubectl באמצעות הפעלת הפקודה yum למטה.
  • התחל דוקר &&

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

  • התחל דוקר &&
  • הפעלת. && הפעלת
7. אתחול אשכול Kubernetes היכנס לשרת הראשי והפעל את הפקודה הבאה
  • הפעלת. && הפעלת
לאחר סיום האתחול של Kubernetes, תקבל את התוצאות.העתק את הפקודות מהתוצאות שקיבלת ובצע אותן כדי להתחיל להשתמש באשכול. רשום את הפקודה kubeadm להצטרף מהתוצאות. הפקודה תשמש לרישום צמתים חדשים באשכול kubernetes. 8. פרוס את רשת הפלנל באשכול kubernetes kubectl להחיל -f

https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

רשת הפלנל נפרסה לאשכול Kubernetes. המתן זמן מה ואז בדוק את הצומת והתרמילים של kubernetes באמצעות הפקודות שלמטה.
    • קבל צמתים
    • kubectl קבל תרמילים –כל מרחבי השמות
ותקבל שהצומת 'k8s-master' פועל כאשכול 'מאסטר' עם הסטטוס 'מוכן', ותקבל את כל התרמילים הדרושים לאשכול, כולל 'kube-flannel-ds' עבור תרמיל הרשת. תְצוּרָה.

9. הוספת צמתים לאשכולהתחבר לשרת node01 והפעל את הפקודה kubeadm join

    • kubeadm להצטרף 172.31.7.47:6443 – אסימון at03m9.iinkh5ps9q12sh2i – גילוי-אסימון-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4

התחבר לשרת node02 והפעל את הפקודה kubeadm join

    • kubeadm להצטרף 172.31.7.47:6443 – אסימון at03m9.iinkh5ps9q12sh2i – גילוי-אסימון-ca-cert-hash sha256: 3f6c1824796ef1ff3d9427c883bde915d5bc13331d74891d831f29a8c4

המתן זמן מה ואמת את שרת האשכולות הראשי ‘k8s-master’, בדוק את הצמתים והתרמילים באמצעות הפקודה הבאה.

      • קבל צמתים

עכשיו תקבל עובד 1 ועובד 2 נוסף לאשכול עם הסטטוס 'מוכן'.

      • kubectl קבל תרמילים –כל מרחבי השמות

אתחול ותצורת האב של אשכול Kubernetes הושלם.

שלב 2: יצירת אשכול של אמזון ES

Elasticsearch הוא מנוע חיפוש וניתוח קוד פתוח המשמש לניתוח יומני וניטור יישומים בזמן אמת. שירות Amazon Elasticsearch (Amazon ES) הוא שירות AWS המאפשר פריסה, הפעלה וקנה מידה של Elasticsearch בענן AWS. אתה יכול להשתמש ב- Amazon ES כדי לנתח אירועי שליחת דוא'ל מ- Amazon SES שלך

ניצור אשכול של אמזון ES ואז נפרוס סוכן רישום של Fluentd לאשכול Kubernetes שיאסוף יומנים וישלח לאשכול של אמזון ES.

חלק זה מראה כיצד להשתמש בקונסולת Amazon ES ליצירת אשכול של Amazon ES.

כדי ליצור אשכול של אמזון ES

    1. היכנס למסוף הניהול של AWS ופתח את קונסולת שירות Elasticsearch של אמזון בכתובת https://console.aws.amazon.com/es/
    2. בחר צור דומיין חדש ובחר סוג פריסה בקונסולת ES של אמזון.
    3. תחת גרסה, השאר את ערך ברירת המחדל של שדה גרסת Elasticsearch.
    4. בחר הבא
    5. הקלד שם לדומיין החיפוש האלסטי שלך ב- הגדר אשכול דף תחת הגדר תצורה של דומיין.
    6. בדף הגדרת אשכול, בחר באפשרויות הבאות תחת מופעי נתונים
      • סוג מופע - בחר t2.micro.elasticsearch (שכבה חופשית זכאית).
      • מספר מופעים - אחד
    7. תַחַתמופעי מאסטר ייעודיים
      • אפשר מאסטר ייעודי - אל תפעיל אפשרות זו.
      • אפשר מודעות לאזור - אל תפעיל אפשרות זו.
    8. תחת תצורת אחסון, בחר באפשרויות הבאות.
      • סוג אחסון בחר EBS. להגדרות ה- EBS, בחר סוג עוצמת הקול של EBS של מטרה כללית (SSD) וגודל עוצמת הקול של EBS& thinspמתוך 10.
    9. בהצפנה - אל תפעיל אפשרות זו
    10. בתצורת תמונת מצב
      • שעת התחלת תמונה אוטומטית - בחר תמונות אוטומטיות של שעות התחלה 00:00 UTC (ברירת מחדל).
    11. בחר הבא
    12. תחת תצורת רשת בחר VPC Access ובחר פרטים לפי VPC שלך מוצג להלן.תחת אימות Kibana: - אל תפעיל אפשרות זו.
    13. להגדרת מדיניות הגישה, בחר אפשר גישה פתוחה לדומיין.הערה: - בייצור עליך להגביל את הגישה לכתובת IP או לטווחים ספציפיים.
    14. בחר הבא.
    15. בדף הסקירה, בדוק את ההגדרות שלך ולאחר מכן בחר אשר וצור.

הערה: האשכול ייקח עד עשר דקות לפריסתו. שים לב לכתובת האתר שלך של Kibana ברגע שתלחץ על דומיין החיפוש האלסטי שנוצר.

שלב 3: פרוס סוכן רישום Fluentd באשכול Kubernetes

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

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

ראשית, עלינו להגדיר הרשאות RBAC (בקרת גישה מבוססת תפקידים) כך ש- Fluentd תוכל לגשת לרכיבים המתאימים.

1. fluentd-rbac.yaml:

apiVersion: v1 kind: מטא נתונים של ServiceAccount: שם: fluentd namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1beta1 kind: ClusterRole metadata: name: fluentd namespace: kube-system system: - apiGroups: - ' משאבים ': - תרמילים - פעלים במרחבי שמות: - קבל - רשימה - צפה --- סוג: ClusterRoleBinding apiVersion: rbac.authorization.k8s.io/v1beta1 מטא נתונים: שם: fluentd role Ref: סוג: Cluster שם תפקיד: api רהוט קבוצה: rbac. אישור נושאים .k8s.io: - סוג: שם שירות חשבון: מרחב שמות שוטף: מערכת kube

צור: $ kubectl create -f kubernetes / fluentd-rbac.yaml
כעת, אנו יכולים ליצור את DaemonSet.

2. fluentd-daemonset.yaml

apiVersion: הרחבות / v1beta1 סוג: מטא נתונים של DaemonSet: שם: מרחב שמות fluentd: תוויות מערכת kube: k8s-app: גרסת רישום fluentd: v1 kubernetes.io/cluster-service: מפרט 'נכון': תבנית: מטא נתונים: תוויות: k8s -app: גרסת רישום fluentd: v1 kubernetes.io/cluster-service: 'true' spec: serviceAccount: fluentd serviceAccountName: סובלנות שוטפות: - מפתח: node-role.kubernetes.io/ אפקט master: No מיכלי תזמון: - שם: תמונה רהוטה: רהוטה / רהוטה-קובנרנטס-דה-מונט: v1.3-debian-elasticsearch env: - שם: FLUENT_ELASTICSEARCH_HOST ערך: 'elasticsearch.logging' - שם: FLUENT_ELASTICSEARCH_PORT ערך: '9200' - שם: FLUENTCH-ELASTICSEAR: שם: FLUENT_UID ערך: '0' משאבים: מגבלות: זיכרון: 200Mi בקשות: מעבד: זיכרון 100m: נפח 200MiMounts: - שם: varlog mount Path: / var / log - שם: varlibdockcontainers mountPath: / var / lib / docker / מיכלים לקרוא רק : termination trueGracePeriod שניות: 30 כרכים: - שם: varlog host נתיב: נתיב: / var / log - שם: varlibdockercontainers hostPath: path: / var / lib / docker / containers

הקפד להגדיר את FLUENT_ELASTICSEARCH_HOST & FLUENT_ELASTICSEARCH_PORT בהתאם לסביבת החיפוש האלסטית שלך.

לפרוס:

$ kubectl create -f kubernetes / fluentd-daemonset.yaml

אמת את היומנים

$ kubectl יומן fluentd-lwbt6 -n kube-system | חיבור grep

אתה אמור לראות ש- Fluentd מתחבר לחיפוש אלסטיקה בתוך היומנים:

שלב 4: דמיין נתונים של קוברטנים בקיבנה

  1. התחבר לכתובת ה- URL של לוח המחוונים של kibana כדי להגיע ממסוף ה- ES של אמזון
  2. כדי לראות את היומנים שנאספו על ידי Fluentd בקיבנה, לחץ על 'ניהול' ואז בחר 'דפוסי אינדקס' תחת 'קיבנה'
  3. בחר את תבנית האינדקס המוגדרת כברירת מחדל (logstash- *)
  4. לחץ על השלב הבא והגדר את 'שם שדה מסנן הזמן' (@timestamp) ובחר באפשרות צור תבנית אינדקס
  5. לחץ על גלה כדי להציג את יומני היישומים שלך
  6. לחץ על Visualize ובחר צור ויזואליזציה ובחר Pie. מלא את השדות הבאים כמוצג להלן.
    • בחר באינדקס Logstash * ולחץ על פרוסות מפוצלות
    • צבירה - תנאים משמעותיים
    • שדה = Kubernetes.pod_name.keyword
    • גודל - 10

7. ולהחיל שינויים

הוא לעומת יש ג'אווה

זהו זה! כך תוכלו לדמיין את ה- Kubernetes Pod שנוצר בקיבנה.

סיכום :

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

הדוגמה שלעיל מראה כיצד להוסיף רישום חיפוש AWS אלסטי וניטור kibana לאשכול kubernetes באמצעות fluentd.

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

יש לך שאלה עבורנו? אנא הזכיר זאת בסעיף ההערות ונחזור אליך.