סטטוס: מופסק
מאמר זה מופסק ואינו נתמך עוד.
סיבה
מתקין TOBS הופסק מראשי המקור.
ראה במקום זאת
התיעוד הרשמי של TOBS.
הקדמה
TOBS, בר-קיצור The Observability Stack, הוא חלוקת תוכנה מוכנה מראש של כלי מעקב וממשקי לוח שניתן להתקין בכל אשף Kubernetes קיים. זה כולל רבים מהכלים למעקב הפתוחים ביותר עם Prometheus ו-Grafana כבסיס, כולל Promlens, TimescaleDB, Alertmanager, ואחרים. יחד, כל אלו מספקים פתרון ישיר וניתן לתחזוקה לניתוח תעבורת שרת וזיהוי כל בעיות פוטנציאליות עם פריסה עד לסקאלה גדולה מאוד.
TOBS משתמשת בתרגילי התקנה סטנדרטיים של Kubernetes מגרפי Helm כדי להגדיר ולעדכן פיתוחים. ניתן להתקין אותו בכל אשכול Kubernetes, אך יש כוח דמונסטרציה יותר יעיל אם אתה מפעיל kubectl
לניהול האשכול שלך ממכונת מקומית במקום מהשרת המרוחק. Managed Kubernetes של דיגיטל אושן תספק לך הגדרה כזו כברירת מחדל.
במדריך זה, תתקין את TOBS בתוך אשכול Kubernetes קיים, ותלמד כיצד לעדכן, להגדיר ולגלוש בלוחות המחוונים של הרכיבים שלו.
דרישות מוקדמות
כדי לעקוב אחרי המדריך הזה, יהיה עליך לצרף:
-
אשכול Kubernetes עם בקרת גישה מבוססת תפקידים (RBAC) מופעלת. הגדרה זו תשתמש באשכול Kubernetes של דיגיטל אושן, אך אתה חופשי ליצור אשכול באמצעות שיטה אחרת. גרסת ה-Kubernetes שלך צריכה להתאים ל-גרסת TOBS נתמכת.
-
הכלי השורת פקודה
kubectl
מותקן על המחשב המקומי שלך ומוגדר להתחבר לאשכול שלך. ניתן לקרוא עוד על התקנתkubectl
בתיעוד הרשמי. אם אתה משתמש באשכול Kubernetes של DigitalOcean, יש לעיין ב- איך להתחבר לאשכול Kubernetes של DigitalOcean כדי ללמוד כיצד להתחבר לאשכול שלך באמצעותkubectl
.
שלב 1 — אימות התצורה שלך ב-Kubernetes
כדי להתקין את TOBS, עליך להגדיר תצורת Kubernetes תקינה תחילה עם kubectl
ממנה תוכל לעשות ping לצומתי העבודה שלך. ניתן לבדוק זאת על ידי הרצת kubectl get nodes
:
אם kubectl
מצליח להתחבר לאשכול Kubernetes שלך והוא פועל כמצופה, הפקודה הזו תחזיר רשימת צמתים עם סטטוס Ready
:
OutputNAME STATUS ROLES AGE VERSION
pool-uqv8a47h0-ul5a7 Ready <none> 22m v1.21.5
pool-uqv8a47h0-ul5am Ready <none> 21m v1.21.5
pool-uqv8a47h0-ul5aq Ready <none> 21m v1.21.5
אם הפעולה הזו מצליחה, תוכל להמשיך אל שלב 2. אם לא, עליך לבדוק את פרטי התצורה שלך לאיתור תקלות.
בברירת מחדל, kubectl
יחפש קובץ בנתיב ~/.kube/config
כדי להבין את הסביבה שלך. כדי לוודא שהקובץ הזה קיים ומכיל תחביר YAML תקף, תוכל להריץ את head
עליו כדי להציג את השורות הראשונות שלו:
OutputapiVersion: v1
clusters:
- cluster:
certificate-authority-data:
…
אם הקובץ לא קיים, ודא שאתה מחובר כאותו משתמש שהגדרת Kubernetes איתו. נתיבים של ~/
מתייחסים לספריות הבית של משתמשים ספציפיים, והגדרות Kubernetes נשמרות לפי ברירת מחדל לכל משתמש.
אם אתה משתמש ב- Managed Kubernetes של DigitalOcean, ודא שהרצת את הפקודה doctl kubernetes cluster kubeconfig save
לאחר הגדרת האשכול כך שהמכונה המקומית שלך תוכל לאמת אליו. זה ייצור קובץ ~/.kube/config
:
אם אתה משתמש במכונה זו כדי לגשת למספר אשכולות, עליך לבדוק את תיעוד ה-Kubernetes לגבי שימוש במשתני סביבה ובקבצי תצורה מרובים כדי למנוע עקומות. לאחר הגדרת סביבת ה-kubectl
שלך, תוכל להמשיך להתקין את TOBS בשלב הבא.
שלב 2 — התקנת TOBS ובדיקת נקודות הסיום שלך
TOBS כולל את הרכיבים הבאים:
- Prometheus הוא מסד נתונים של סדרות זמן וכלי לניטור שעובד על ידי איסוף של נקודות המדידה וגילוי נתונים מקושרים על ידי נקודות אלה. זה מאפשר לך לשאול את הנתונים האלה באמצעות PromQL, שפת שאילתות לנתוני סדרות זמן.
- Alertmanager, שבדרך כלל מותקן לצד Prometheus, מהווה את שכבת ההתראה של המערכת, מטפל בהתראות שנוצרו על ידי Prometheus ומבצע הכפלה, קיבוץ וניתוב שלהן לאינטגרציות כגון אימייל או PagerDuty. כדי לקבל מידע נוסף על Alertmanager, יש לעיין ב- מסמך התיעוד של Prometheus על התראות.
- Grafana הוא כלי לתצוגת נתונים ולניתוחים שמאפשר לך לבנות לוחות מחוונים וגרפים עבור נתוני המדריכים שלך.
- kube-state-metrics הוא סוכן תוספתי שמקשיב לשרת ה- API של Kubernetes ויוצר מדדים על מצב עצם Kubernetes כמו הפצות וכדורים. נתוני המדידה הללו מוצגים כטקסט פשוט על נקודות הסיום של HTTP ומיוצרים על ידי Prometheus.
- לבסוף הוא node-exporter, מייצא של Prometheus שרץ על צמתי הקבוצה ומספק מדדי מערכת ההפעלה והחומרה כמו שימוש במעבד ובזיכרון לPrometheus. מדדים אלו מוצגים גם כטקסט פשוט בנקודות קצה של HTTP ומתפסים על ידי Prometheus.
כדי להתקין TOBS, עליך תחילה להריץ את מתקין TOBS על עמדת השליטה שלך. זה יקים את הפקודה tobs ואת ספריות התצורה. כפי שנאמר בתנאי הדרישה המוקדמים, הפקודה tobs מיועדת רק לעבוד על מערכות Linux/macOS/BSD (כמו הבינאריים הרשמיים של Kubernetes), לכן אם עד עכשיו השתמשת ב-Windows, עליך לעבוד בסביבת Windows Subsystem for Linux.
אחזר והרץ את מתקין TOBS:
Outputtobs 0.7.0 was successfully installed ?
Binary is available at /root/.local/bin/tobs.
כעת ניתן לדחוף TOBS אל קבוצת ה-Kubernetes שלך. זה נעשה על ידי שורת פקודה אחת באמצעות הפקודה tobs החדשה שסופקה לך:
זה יפיק מספר שורות פלט ועשוי לקחת מספר רגעים. בהתאם לגרסת Kubernetes הדיוק שלך, ייתכנו מספר אזהרות בפלט, אך תוכל להתעלם מהם כל עוד בסופו של דבר תקבל את הודעת ה-Welcome to tobs
:
OutputWARNING: Using a generated self-signed certificate for TLS access to TimescaleDB.
This should only be used for development and demonstration purposes.
To use a signed certificate, use the "--tls-timescaledb-cert" and "--tls-timescaledb-key"
flags when issuing the tobs install command.
Creating TimescaleDB tobs-certificate secret
Creating TimescaleDB tobs-credentials secret
skipping to create TimescaleDB s3 backup secret as backup option is disabled.
2022/01/10 11:25:34 Transport: unhandled response frame type *http.http2UnknownFrame
2022/01/10 11:25:35 Transport: unhandled response frame type *http.http2UnknownFrame
2022/01/10 11:25:35 Transport: unhandled response frame type *http.http2UnknownFrame
Installing The Observability Stack
2022/01/10 11:25:37 Transport: unhandled response frame type *http.http2UnknownFrame
W0110 11:25:55.438728 75479 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
W0110 11:25:55.646392 75479 warnings.go:70] policy/v1beta1 PodSecurityPolicy is deprecated in v1.21+, unavailable in v1.25+
…
?? Welcome to tobs, The Observability Stack for Kubernetes
…
מכאן ואילך, הפלט יכיל הוראות להתחברות לכל אחת מנקודות הקצה של Prometheus, TimescaleDB, PromLens, ו-Grafana בדפדפן שלך. הוא משוכף במלואו למטרות התייחסות:
Output###############################################################################
? PROMETHEUS NOTES:
###############################################################################
Prometheus can be accessed via port 9090 on the following DNS name from within your cluster:
tobs-kube-prometheus-prometheus.default.svc.cluster.local
Get the Prometheus server URL by running these commands in the same shell:
tobs prometheus port-forward
The Prometheus alertmanager can be accessed via port 9093 on the following DNS name from within your cluster:
tobs-kube-prometheus-alertmanager.default.svc.cluster.local
Get the Alertmanager URL by running these commands in the same shell:
export POD_NAME=$(kubectl get pods --namespace default -l "app=alertmanager,alertmanager=tobs-kube-prometheus-alertmanager" -o jsonpath="{.items[0].metadata.name}")
kubectl --namespace default port-forward $POD_NAME 9093
WARNING! Persistence is disabled on AlertManager.
You will lose your data when the AlertManager pod is terminated.
###############################################################################
? TIMESCALEDB NOTES:
###############################################################################
TimescaleDB can be accessed via port 5432 on the following DNS name from within your cluster:
tobs.default.svc.cluster.local
To get your password for superuser run:
tobs timescaledb get-password -U <user>
To connect to your database, chose one of these options:
1. Run a postgres pod and connect using the psql cli:
tobs timescaledb connect -U <user>
2. Directly execute a psql session on the master node
tobs timescaledb connect -m
###############################################################################
? PROMLENS NOTES:
###############################################################################
PromLens is a PromQL query builder, analyzer, and visualizer.
You can access PromLens via a local browser by executing:
tobs promlens port-forward
Then you can point your browser to http://127.0.0.1:8081/.
###############################################################################
? GRAFANA NOTES:
###############################################################################
1. The Grafana server can be accessed via port 80 on
the following DNS name from within your cluster:
tobs-grafana.default.svc.cluster.local
You can access grafana locally by executing:
tobs grafana port-forward
Then you can point your browser to http://127.0.0.1:8080/.
2. The 'admin' user password can be retrieved by:
tobs grafana get-password
3. You can reset the admin user password with grafana-cli from inside the pod.
tobs grafana change-password <password-you-want-to-set>
כל אחד מהם מצויד עם שם DNS פנימי לקבוצה שלך כך שניתן לגשת אליהם מכל נודי העבודה שלך, לדוגמה tobs-kube-prometheus-alertmanager.default.svc.cluster.local
עבור Prometheus. בנוסף, ישנו פקודת הפנייה שמוגדרת עבור כל אחד מהם שמאפשרת לך לגשת אליהם מדפדפן אינטרנט מקומי.
בחלון טרמינל חדש, הריצו tobs prometheus port-forward
:
זה יתפס את הטרמינל כל עוד התהליך של פניית הפורט פעיל. ניתן ללחוץ על Ctrl+C
כדי לסיים בצורה חלקה תהליך חסימה כזה כאשר ברצונך להפסיק את הפניית הפורט. לאחר מכן, בדפדפן אינטרנט, פתחו את הכתובת http://127.0.0.1:9090/
. תראו את ממשק ה-Prometheus המלא רץ ויוצר מטריקות מהקבוצה שלך:
באפשרותך לעשות את אותו הדבר עבור Grafana, שזמינה בכתובת http://127.0.0.1:8080/
כל עוד פניית הפורט פעילה בתהליך אחר. תחילה, עליך להשתמש בפקודת get-password
המסופקת על ידי פלט ההתקנה:
Outputyour-grafana-password
אז תוכל להשתמש בסיסמה זו כדי להתחבר לממשק של Grafana על ידי הרצת פקודת פניית הפורט שלו ופתיחת http://127.0.0.1:8080/
בדפדפן שלך.
עכשיו יש לך ערימת עבודה TOBS פועלת בקבוצת Kubernetes שלך. באפשרותך להתייחס למסמכי התיעוד של הרכיבים הפרטיים כדי ללמוד את התכונות המתאימות שלהם. בשלב האחרון של המדריך הזה, תלמד איך לבצע עדכונים לתצורת ה-TOBS עצמה.
שלב 3 — עריכת תצורות TOBS ושדרוג
התצורה של TOBS מכילה פרמטרים ליישומים היחידיים בערמת המערכת, כמו גם פרמטרים לפרט עצמו של ההפצה של TOBS. התצורה נוצרת ומאוחסנת כתבנית קוברנטס קובץ ה- Helm. ניתן להדפיס את התצורה הנוכחית שלך על ידי הרצת tobs helm show-values
. אולם, זה ידפיס את כל התצורה הארוכה לטרמינל שלך, שיכולה להיות קשה לקריאה. ניתן במקום להפנות את הפלט לקובץ עם סיומת .yaml
, מאחר וקבצי Helm הם כלפי YAML תקפים:
תוכן הקובץ יראה כך:
2022/01/10 11:56:37 Transport: unhandled response frame type *http.http2UnknownFrame
# ערכים להגדרת ההתקנה של TimescaleDB
# README של הקובץ נמצא ב:
# https://github.com/timescale/timescaledb-kubernetes/tree/master/charts/timescaledb-single
# כדאי לעיין באפשרויות ההגדרה השונות (מדריך מנהל)
# https://github.com/timescale/timescaledb-kubernetes/blob/master/charts/timescaledb-single/admin-guide.md
cli: false
# דרך הגדרת מרחב ההתקנה
namespaceOverride: ""
…
ניתן לבדוק את הפרמטרים הנוספים הזמינים לתצורה של TOBS על ידי קריאה ב- מסמך התיעוד של TOBS
אם תשנה אי פעם את הקובץ כדי לעדכן את ההתקנה שלך, תוכל להתקין את TOBS שוב על עצמו באמצעות הקונפיגורציה המעודכנת. פשוט העבר את האפשרות -f
לפקודת tobs install
עם הקובץ YAML כארגומנט נוסף:
סוף כל סוף, תוכל לשדרג TOBS עם הפקודה הבאה:
זה מבצע את השוואת המקבילה של helm upgrade
על ידי גישה לגרסה העדכנית ביותר של התבנית מהשרת המרכזי.
מסקנה
במדריך זה, למדת להפעיל ולהגדיר TOBS, The Observability Stack, על קשת Kubernetes קיימת. TOBS עוזר במיוחד מאחר שהוא מסיר את הצורך לשמור בנפרד על פרטי התצורה עבור כל אחד מאפליקציות אלו, תוך ספק איכות סטנדרטית לניטור עבור האפליקציות שרצות על הקלאסטר שלך.
בשלב הבא, עשוי לרצות ללמוד כיצד להשתמש ב- Cert-Manager כדי לטפל בכניסת HTTPS לקלאסטר Kubernetes שלך.