مرحبا بالجميع! نواصل اليوم مشاركة المواد المترجمة خصيصًا لطلاب
دورة البنية التحتية لمنصة Kubernetes . هل لديك قراءة جيدة.

مقدمة

منذ بعض الوقت ، أجرب إنشاء لوحات معلومات Grafana لإدارة Kubernetes. كمالك ومدير للعديد من مجموعات Kubernetes ، أردت الحصول على تمثيل مرئي لبعض المقاييس. أولاً ، أحتاج إلى لوحات Grafana العادية لمكونات Kubernetes Plane و Node:
kube-api ، kube-scheduler ، kube-controller-manager ، بالإضافة إلى kubelet و kube-proxy . ثانياً ، أود نشر اللوحات الناتجة على GitHub حتى يتمكن الآخرون من ترك الاقتراحات وتقارير الأخطاء (المشكلات) ، وإرسال طلبات التغييرات (طلبات السحب) ، ولوحات التحديث (git pull) ، ومساعدتي في العمل عليها.
نشر Grafana Dashboards
يتم نشر معظم لوحات Grafana الآن على
grafana.com/dashboards . للحصول على اللوحة المطلوبة ، تحتاج إلى العثور عليها على الصفحة ، ونسخ المعرف واستيراده إلى مثيل Grafana المحلي. على الرغم من أن استيراد لوحات المعلومات بسيط نسبيًا ، إلا أن التجربة تظهر أن معظم المستخدمين يجدون أنه من غير الملائم العمل معهم. هناك عدة أسباب لذلك.
أولاً ، يستخدم الأشخاص محددات علامات مختلفة للإشارة إلى مراقبة الأهداف في Prometheus. ثانياً ، في الإصدارات الجديدة من مصدري وتطبيقات Prometheus للوصول إلى المقاييس ، تتغير أسماء المقاييس وتُحذف باستمرار. ثالثًا ، من الصعب جدًا العثور على لوحات معلومات عالية الجودة - فأنت لا تعرف أبدًا ما الذي ستحصل عليه بعد الاستيراد. بعد تحديد اللوحة ، يجب أن تقوم بتمشيط جميع الرسوم البيانية وتعديل المقاييس جنبًا إلى جنب مع محددات الملصقات - وهذا هو مقدار كبير من العمل اليدوي.
مشروع رصد خلطات
لقد وجدت مشروعًا رائعًا جدًا يسمى
Monitoring Mixins. في الواقع ، هذا هو نوع من النظام الإيكولوجي مصمم للتغلب على جميع مشاكل الألواح. جاءت الفكرة إلى Frederic Branczyk ، وكان هو الذي كتب
وثيقة التصميم الأصلية ، والتي أوصي بشدة أن تقرأها. علاوة على ذلك ، فكر في آلية حقيقية لتحديث لوحات المعلومات واستخراجها من مستودعات GitHub المختلفة. هذه الآلية تشبه إلى حد كبير
go get
، وأعجبني حقًا.
هنا يمكنك قراءة وصف موجز
لمدير حزمة
jsonnet-bundler باستخدام هذه الآلية. شكرا جزيلا
لفريدريك على التطورات المفيدة!
حزمة Kubernetes غرافانا Mixin
إذا قرأت هذا المكان ، فيمكنك أخذ قسط من الراحة والاستمتاع بالصور الجميلة.
خادم API
لوحة معلومات خادم API Kubernetesمدير تحكم
لوحة تحكم مدير Kubernetesمخطط
Kubernetes جدولة لوحة القيادةKublet (وكيل العقدة)
Kubernetes Cublet Dashboard
Kubernetes Cublet Dashboardوكيل كيوب
Kube Proxy Dashboardباستخدام Kubernetes غرافانا Mixin
تحتاج أولاً إلى تثبيت
jsonnet
و
jsonnet-bundler
.
Jsonnet
إذا كنت تستخدم macOS ، فيمكنك استخدام
brew install jsonnet
. خلاف ذلك ، من الأفضل تجميع هذا المكون بنفسك.
git clone https:
Jsonnet محزم
go get -u github.com/jsonnet-bundler/jsonnet-bundler/cmd/jb
لوحات الاستيراد
قم بإنشاء دليل جديد للمشروع وأدخله باستخدام
cd
.
تثبيت
mixin :
jb init jb install https:
الآن قم بإنشاء ملف
config.libsonnet
جديد.
local kubedashboards = import 'kubernetes-grafana-mixin/mixin.libsonnet'; kubedashboards { _config+:: { kubeletSelector: 'job="kubernetes-nodes2"', kubeSchedulerSelector: 'job="kube-scheduler2"', kubeControllerManagerSelector: 'job="kube-controller-manager2"', kubeApiserverSelector: 'job="kube-apiserver2"', kubeProxySelector: 'job="kube-proxy2"', }, }
بعد ذلك ، يتم استيراد لوحة المعلومات والكتابة فوق محددات الوظيفة.
صحح محددات علامة بروميثيوس لتناسب بيئتك.
الآن قم بإنشاء دليل
dashboards
. أخيرًا ، قم بتشغيل
jsonnet
لتجميع
config.libsonnet
:
jsonnet -J vendor -m dashboards -e '(import "config.libsonnet").grafanaDashboards'
سترى القائمة التالية:
dashboards/kube-apiserver.json dashboards/kube-controller-manager.json dashboards/kube-proxy.json dashboards/kube-scheduler.json dashboards/kubelet.json
يؤدي
عرض محتويات كتالوج لوحة القيادة.
ls -l dashboards
-rw-r--r-- 1 povilasv povilasv 35746 Apr 26 08:29 kube-apiserver.json -rw-r--r-- 1 povilasv povilasv 34790 Apr 26 08:29 kube-controller-manager.json -rw-r--r-- 1 povilasv povilasv 62845 Apr 26 08:29 kubelet.json -rw-r--r-- 1 povilasv povilasv 27673 Apr 26 08:29 kube-proxy.json -rw-r--r-- 1 povilasv povilasv 25650 Apr 26 08:29 kube-scheduler.json
إضافة لوحات المعلومات إلى جرافانا
لقد قلت بالفعل أنني أوصي بشدة بوضع اللوحات من خلال ملفات التكوين. يمكنك معرفة المزيد حول كيفية القيام بذلك
في وثائق Grafana .
من ناحية أخرى ، لا شيء يمنعك من فتح
واجهة Grafana وإضافة لوحات من خلالها.
تحديث لوحات المعلومات
بمرور الوقت ، سوف تتغير اللوحات. لتحديثها ، الأمر التالي يكفي:
jb update
هذا كل شيء لهذا اليوم.
أتمنى أن تستمتعوا بلوحات المعلومات الخاصة بي. في مقالة منفصلة ، سأتحدث عن كيفية إنشائها ولماذا صنعتها بهذه الطريقة ، لذلك تأكد من الاشتراك في التحديثات. يرى المشتركون عملي أولاً ، حتى قبل النشر.
أنا أيضًا مهتم جدًا بتعليقاتك. إذا استخدمت اللوحات الخاصة بي ، فقم بتقييم مدى فائدتها لك ، أو قم بمشاركتها إذا ساعدك ذلك في حالة عمل حقيقية. فقط اترك تعليق!
بالمناسبة ، إذا كنت تريد أن تشكرني على مجهوداتي ، فيمكنك إلقاء نظرة على قائمة أمنياتي المفتوحة وشراء لي ، على سبيل المثال ، كتاب جيد.
إنني أقدر حقًا جودة المشاريع مفتوحة المصدر. تتوفر حزمة kubernetes-grafana-mixin بموجب ترخيص ترخيص Apache 2
. إذا كنت تحب المشروع ، تحقق من ذلك على جيثب!