בדף הזה מוסבר איך להגדיר אשכול Google Kubernetes Engine (GKE) כדי לשלוח קבוצה נבחרת של מדדי cAdvisor/Kubelet ל-Cloud Monitoring באמצעות השירות המנוהל של Google Cloud ל-Prometheus. בנוסף, בדף הזה מוסבר איך המדדים האלה מעוצבים כשהם נכתבים ב-Monitoring, ואיך לשלוח שאילתות לגבי מדדים.
הקבוצה שנבחרה של מדדים היא קבוצת משנה של מדדי cAdvisor/Kubelet שמוטמעים בכל פריסת Kubernetes כברירת מחדל, והיא כוללת מדדים שקשורים לצמצום נפח ההטמעה ולעלויות הנלוות.
לפני שמתחילים
לפני שמתחילים, חשוב לוודא שביצעתם את המשימות הבאות:
- מפעילים את ממשק ה-API של Google Kubernetes Engine. הפעלת Google Kubernetes Engine API
- כדי להשתמש ב-CLI של Google Cloud למשימה הזו, צריך להתקין ואז לאתחל את ה-CLI של gcloud. אם התקנתם בעבר את ה-CLI של gcloud, מריצים את הפקודה
gcloud components updateכדי לקבל את הגרסה העדכנית. יכול להיות שגרסאות קודמות של ה-CLI של gcloud לא יתמכו בהרצת הפקודות שמופיעות במסמך הזה.
דרישות
כדי לאסוף מדדים של cAdvisor/Kubelet, אשכול GKE צריך לעמוד בדרישות הבאות:
- האשכול צריך להריץ GKE בגרסה 1.29.3-gke.1093000 ואילך. חבילות cAdvisor/Kubelet מופעלות כברירת מחדל כשיוצרים אשכול שמריץ גרסה 1.29.3-gke.1093000 ואילך.
- צריך להפעיל את מדדי המערכת באשכול.
- בקטע הזה מוסבר איך להפעיל איסוף מנוהל של השירות המנוהל של Google Cloud ל-Prometheus באשכול. האיסוף המנוהל של השירות המנוהל של Google Cloud ל-Prometheus מופעל כברירת מחדל באשכולות חדשים.
הגדרת איסוף מדדים של cAdvisor/Kubelet
אפשר להפעיל מדדים של cAdvisor/Kubelet באשכול GKE קיים באמצעות מסוף Google Cloud , ה-CLI של gcloud או Terraform.
המסוף
כדי להגדיר מדדים של cAdvisor/Kubelet מהכרטיסייה פרטים של האשכול:
-
נכנסים לדף Kubernetes clusters במסוף Google Cloud .
אם משתמשים בסרגל החיפוש כדי למצוא את הדף הזה, בוחרים בתוצאה שכותרת המשנה שלה היא Kubernetes Engine.
לוחצים על שם האשכול.
בשורה Features עם התווית Cloud Monitoring, לוחצים על סמל העריכה.
בתיבת הדו-שיח Edit Cloud Monitoring שמופיעה, מוודאים שהאפשרות Enable Cloud Monitoring מסומנת.
בתפריט הנפתח Components, בוחרים את הרכיבים cAdvisor/Kubelet שמהם רוצים לאסוף מדדים:
- cAdvisor
- Kubelet
לוחצים על OK.
לוחצים על שמירת השינויים.
gcloud
כדי לאסוף מדדים, צריך לעדכן את האשכול:
gcloud container clusters update CLUSTER_NAME \
--location=COMPUTE_LOCATION \
--enable-managed-prometheus \
--monitoring=SYSTEM,CADVISOR,KUBELET
מחליפים את מה שכתוב בשדות הבאים:
-
CLUSTER_NAME: השם של האשכול הקיים. -
COMPUTE_LOCATION: המיקום של Compute Engine של האשכול.
הערכים שמועברים לדגל monitoring מחליפים כל הגדרה קודמת.
Terraform
כדי להגדיר את איסוף המדדים של cAdvisor/Kubelet באמצעות Terraform, אפשר לעיין בבלוק monitoring_config ב-
Terraform registry ל-google_container_cluster.
מידע כללי על שימוש ב- Google Cloud עם Terraform זמין במאמר Terraform עם Google Cloud.
פורמט המדד
כל המדדים של Kubernetes cAdvisor/Kubelet שנכתבים ל-Cloud Monitoring משתמשים בסוג המשאב
prometheus_target.
לכל שם של מדד יש קידומת prometheus.googleapis.com/ וסיומת שמציינת את סוג המדד של Prometheus, כמו /gauge, /histogram או /counter. אחרת, כל שם של מדד זהה לשם המדד שמוצג על ידי Kubernetes בקוד פתוח.
ייצוא מ-Cloud Monitoring
אפשר לייצא את מדדי cAdvisor/Kubelet מ-Cloud Monitoring באמצעות Cloud Monitoring API. מכיוון שכל המדדים של cAdvisor/Kubelet מוזנים באמצעות השירות המנוהל של Google Cloud ל-Prometheus, אפשר לשלוח שאילתות על המדדים של cAdvisor/Kubelet באמצעות שפת השאילתות של Prometheus (PromQL). אפשר גם לשלוח שאילתות לגביהם באמצעות שפת שאילתת מעקב (MQL).
שאילתות לגבי מדדים
כששולחים שאילתות על מדדי cAdvisor/Kubelet, השם שבו משתמשים תלוי בשימוש ב-PromQL או בתכונות שמבוססות על Cloud Monitoring, כמו MQL או הכלי Metrics Explorer (ממשק מבוסס-תפריט).
בטבלאות הבאות של מדדי cAdvisor/Kubelet מוצגות שתי גרסאות של כל שם מדד:
- שם המדד ב-PromQL: כשמשתמשים ב-PromQL בדפי Cloud Monitoring במסוף Google Cloud או בשדות PromQL ב-Cloud Monitoring API, צריך להשתמש בשם המדד ב-PromQL.
- שם המדד ב-Cloud Monitoring כשמשתמשים בתכונות אחרות של Cloud Monitoring, צריך להשתמש בשם המדד ב-Cloud Monitoring שמופיע בטבלאות שבהמשך. לפני השם הזה צריך להוסיף את הקידומת
prometheus.googleapis.com/, שלא מופיעה ברשומות שבטבלה.
מדדי cAdvisor
לשמות המדדים של Cloud Monitoring בטבלה הזו צריך להוסיף את הקידומת prometheus.googleapis.com/. התחילית הזו הושמטה מהערכים בטבלה.
| שם המדד ב-PromQL שם המדד ב-Cloud Monitoring |
|
|---|---|
|
Kind, Type, Unit
Monitored resources Required GKE version |
תיאור תוויות |
container_cpu_cfs_periods_totalcontainer_cpu_cfs_periods_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר המרווחים של תקופת האכיפה שחלפו. נדגמים כל 30 שניות.cpu
|
container_cpu_cfs_throttled_periods_totalcontainer_cpu_cfs_throttled_periods_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מרווחי הזמן של תקופת ההגבלה. נדגמים כל 30 שניות.cpu
|
container_cpu_usage_seconds_totalcontainer_cpu_usage_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.29.3-gke.1093000 |
זמן מצטבר של ה-CPU שנוצל. נדגמים כל 30 שניות.cpu
|
container_fs_limit_bytescontainer_fs_limit_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
מספר הבייטים שמאגר התגים יכול לצרוך במערכת הקבצים הזו. נדגמים כל 30 שניות.disk
|
container_fs_read_seconds_totalcontainer_fs_read_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של קריאות שהושלמו. נדגמים כל 30 שניות.diskIO
|
container_fs_reads_bytes_totalcontainer_fs_reads_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של בייטים שנקראו. נדגמים כל 30 שניות.diskIO
|
container_fs_reads_totalcontainer_fs_reads_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של קריאות שהושלמו. נדגמים כל 30 שניות.diskIO
|
container_fs_usage_bytescontainer_fs_usage_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
Number of bytes that are consumed by the container on this
filesystem. נדגמים כל 30 שניות.disk
|
container_fs_write_seconds_totalcontainer_fs_write_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של שניות שהוקדשו לכתיבה. נדגמים כל 30 שניות.diskIO
|
container_fs_writes_bytes_totalcontainer_fs_writes_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
המספר המצטבר של בייטים שנכתבו. נדגמים כל 30 שניות.diskIO
|
container_fs_writes_totalcontainer_fs_writes_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של פעולות כתיבה שהושלמו. נדגמים כל 30 שניות.diskIO
|
container_memory_rsscontainer_memory_rss/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
גודל ה-RSS. נדגמים כל 30 שניות.memory
|
container_memory_working_set_bytescontainer_memory_working_set_bytes/gauge
|
|
GAUGE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
הקבוצה הנוכחית של דפי עבודה. נדגמים כל 30 שניות.memory
|
container_network_receive_bytes_totalcontainer_network_receive_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של בייטים שהתקבלו. נדגמים כל 30 שניות.network
|
container_network_receive_packets_dropped_totalcontainer_network_receive_packets_dropped_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
המספר המצטבר של חבילות הנתונים שהושמטו במהלך הקבלה.
נדגמים כל 30 שניות.network
|
container_network_receive_packets_totalcontainer_network_receive_packets_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של מנות שהתקבלו. נדגמים כל 30 שניות.network
|
container_network_transmit_bytes_totalcontainer_network_transmit_bytes_total/counter
|
|
CUMULATIVE, DOUBLE, By
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של בייטים שהועברו. נדגמים כל 30 שניות.network
|
container_network_transmit_packets_dropped_totalcontainer_network_transmit_packets_dropped_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
המספר המצטבר של חבילות נתונים שהושמטו במהלך השידור.
נדגמים כל 30 שניות.network
|
container_network_transmit_packets_totalcontainer_network_transmit_packets_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של חבילות נתונים שהועברו. נדגמים כל 30 שניות.network
|
container_pressure_cpu_stalled_seconds_totalcontainer_pressure_cpu_stalled_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.37 |
הזמן הכולל בשניות שבו המשימות נתקעו ב-CPU (מלא). נדגמים כל 30 שניות.cpu
|
container_pressure_cpu_waiting_seconds_totalcontainer_pressure_cpu_waiting_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.37 |
הזמן הכולל בשניות שהמשימות המתינו למעבד (חלק מהמשימות). נדגמים כל 30 שניות.cpu
|
container_pressure_io_stalled_seconds_totalcontainer_pressure_io_stalled_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.37 |
הזמן הכולל בשניות שבו המשימות נתקעו ב-I/O (מלא). נדגמים כל 30 שניות.diskIO
|
container_pressure_io_waiting_seconds_totalcontainer_pressure_io_waiting_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.37 |
הזמן הכולל בשניות שהמשימות המתינו לקלט/פלט (חלק מהמשימות). נדגמים כל 30 שניות.diskIO
|
container_pressure_memory_stalled_seconds_totalcontainer_pressure_memory_stalled_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.37 |
הזמן הכולל בשניות שבו המשימות נתקעו בזיכרון (מלא). נדגמים כל 30 שניות.memory
|
container_pressure_memory_waiting_seconds_totalcontainer_pressure_memory_waiting_seconds_total/counter
|
|
CUMULATIVE, DOUBLE, s
prometheus_target 1.37 |
הזמן הכולל בשניות שהמשימות המתינו לזיכרון (חלק מהמשימות). נדגמים כל 30 שניות.memory
|
מדדי Kubelet
לשמות המדדים של Cloud Monitoring בטבלה הזו צריך להוסיף את הקידומת prometheus.googleapis.com/. התחילית הזו הושמטה מהערכים בטבלה.
| שם המדד ב-PromQL שם המדד ב-Cloud Monitoring |
|
|---|---|
|
Kind, Type, Unit
Monitored resources Required GKE version |
תיאור תוויות |
kubelet_certificate_manager_server_ttl_secondskubelet_certificate_manager_server_ttl_seconds/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מדד של ה-TTL (time-to-live) הקצר ביותר של אישור ההגשה של Kubelet. הערך הוא מספר השניות עד שתוקף האישור יפוג (שלילי אם התוקף כבר פג). אם אישור ההצגה לא תקין או לא בשימוש, הערך יהיה +INF. נדגמים כל 30 שניות. |
kubelet_node_namekubelet_node_name/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
שם הצומת. הספירה היא תמיד 1. נדגמים כל 30 שניות.node
|
kubelet_pleg_relist_duration_secondskubelet_pleg_relist_duration_seconds/histogram
|
|
CUMULATIVE, DISTRIBUTION, s
prometheus_target 1.29.3-gke.1093000 |
משך הזמן בשניות עד להוספה מחדש של יחידות PLEG לרשימה. נדגמים כל 30 שניות. |
kubelet_pod_worker_duration_secondskubelet_pod_worker_duration_seconds/histogram
|
|
CUMULATIVE, DISTRIBUTION, s
prometheus_target 1.29.3-gke.1093000 |
משך הזמן בשניות לסנכרון של פוד יחיד. פירוט לפי סוג הפעולה: יצירה, עדכון או סנכרון. נדגמים כל 30 שניות.operation_type
|
kubelet_running_containerskubelet_running_containers/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מאגרי התגים שפועלים כרגע. נדגמים כל 30 שניות.container_state
|
kubelet_running_podskubelet_running_pods/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר הפודים שיש להם ארגז חול פעיל של פוד. נדגמים כל 30 שניות. |
kubelet_runtime_operations_totalkubelet_runtime_operations_total/counter
|
|
CUMULATIVE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר מצטבר של פעולות בזמן ריצה לפי סוג הפעולה.
נדגמים כל 30 שניות.operation_type
|
kubelet_volume_stats_available_byteskubelet_volume_stats_available_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר הבייטים הזמינים בנפח האחסון. נדגמים כל 30 שניות.namespace
persistentvolumeclaim
|
kubelet_volume_stats_capacity_byteskubelet_volume_stats_capacity_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
הקיבולת של עוצמת הקול בבייטים. נדגמים כל 30 שניות.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodeskubelet_volume_stats_inodes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
המספר המקסימלי של צמתי inode בנפח האחסון. נדגמים כל 30 שניות.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_freekubelet_volume_stats_inodes_free/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר ה-inodes החופשיים בנפח האחסון. נדגמים כל 30 שניות.namespace
persistentvolumeclaim
|
kubelet_volume_stats_inodes_usedkubelet_volume_stats_inodes_used/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר ה-inodes שנעשה בהם שימוש בנפח האחסון. נדגמים כל 30 שניות.namespace
persistentvolumeclaim
|
kubelet_volume_stats_used_byteskubelet_volume_stats_used_bytes/gauge
|
|
GAUGE, DOUBLE, 1
prometheus_target 1.29.3-gke.1093000 |
מספר הבייטים שהיו בשימוש בנפח האחסון. נדגמים כל 30 שניות.namespace
persistentvolumeclaim
|