لاحظ أن كل شيء تجريبي وقد يتغير بشكل كبير في أي وقت.
يجمع هذا المستودع من الكوبنيتات ، ولوحات معلومات Grafana ، وقواعد Prometheus مع التوثيق والبرامج النصية لتوفير مراقبة مجموعة Kubernetes من شوط إلى النهاية مع Prometheus باستخدام مشغل Prometheus.
محتوى هذا المشروع مكتوب في Jsonnet. يمكن وصف هذا المشروع كحزمة وكذلك مكتبة.
المكونات المدرجة في هذه الحزمة:
هذا المكدس مخصص لمراقبة الكتلة ، لذلك يتم تكوينه مسبقًا لجمع المقاييس من جميع مكونات Kubernetes. بالإضافة إلى أنه يقدم مجموعة افتراضية من لوحات المعلومات وقواعد التنبيه. العديد من لوحات المعلومات المفيدة وتنبيهات تأتي من مشروع Kubernetes-mixin ، على غرار هذا المشروع ، فإنه يوفر JSONNET قابلاً للتأليف كمكتبة للمستخدمين لتخصيص احتياجاتهم.
ستحتاج إلى مجموعة Kubernetes ، هذا كل شيء! بشكل افتراضي ، من المفترض أن يستخدم Kubelet المصادقة المميزة والترخيص ، حيث يحتاج Prometheus إلى شهادة عميل ، مما يتيح لها الوصول الكامل إلى kubelet ، بدلاً من المقاييس فقط. تتيح المصادقة المميزة والترخيص المزيد من التحكم في الوصول إلى الحبيبات والأسهل.
هذا يعني أن تكوين kubelet يجب أن يحتوي على هذه العلامات:
--authentication-token-webhook=true يتيح هذا العلامة ، أن يتم استخدام رمز ServiceAccount للمصادقة ضد kubelet (s). يمكن أيضًا تمكين ذلك عن طريق تعيين authentication.webhook.enabled قيمة تكوين kubelet.webhook.endabled إلى true .--authorization-mode=Webhook يتيح هذا العلامة ، أن يقوم kubelet بإجراء طلب RBAC مع واجهة برمجة التطبيقات لتحديد ما إذا كان الكيان المطلوب (Prometheus في هذه الحالة) يسمح للوصول إلى مورد ، بالتحديد لهذا المشروع /metrics . يمكن أيضًا تمكين ذلك عن طريق تعيين authorization.mode قيمة تكوين kubelet.mode إلى Webhook .يوفر هذا المكدس مقاييس الموارد عن طريق نشر محول Prometheus. هذا المحول هو خادم API تمديد ويجب تمكين Kubernetes هذه الميزة ، وإلا فإن المحول ليس له أي تأثير ، لكنه لا يزال يتم نشره.
يتم دعم إصدارات kubernetes التالية والعمل مع اختبارنا ضد هذه الإصدارات في فروعها. لكن لاحظ أن الإصدارات الأخرى قد تعمل!
| كوبي-بروميتوس مكدس | Kubernetes 1.23 | Kubernetes 1.24 | Kubernetes 1.25 | Kubernetes 1.26 | Kubernetes 1.27 | Kubernetes 1.28 | Kubernetes 1.29 | Kubernetes 1.30 | Kubernetes 1.31 |
|---|---|---|---|---|---|---|---|---|---|
release-0.11 | ✔ | ✔ | ✗ | x | x | x | x | x | x |
release-0.12 | ✗ | ✔ | ✔ | x | x | x | x | x | x |
release-0.13 | ✗ | ✗ | x | ✔ | ✔ | ✔ | x | x | x |
release-0.14 | ✗ | ✗ | x | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
main | ✗ | ✗ | x | x | ✔ | ✔ | ✔ | ✔ | ✔ |
يهدف هذا المشروع إلى استخدام مكتبة (أي القصد ليس لك إنشاء نسخة معدلة خاصة بك من هذا المستودع).
على الرغم من أن إصدارًا سريعًا من kubernetes يتجلى مع هذه المكتبة (على وجه التحديد مع example.jsonnet ) في هذا المستودع من أجل تجربة المحتوى بسرعة. لتجربة المكدس غير المعتاد:
manifests : # Create the namespace and CRDs, and then wait for them to be available before creating the remaining resources
# Note that due to some CRD size we are using kubectl server-side apply feature which is generally available since kubernetes 1.22.
# If you are using previous kubernetes versions this feature may not be available and you would need to use kubectl create instead.
kubectl apply --server-side -f manifests/setup
kubectl wait
--for condition=Established
--all CustomResourceDefinition
--namespace=monitoring
kubectl apply -f manifests/ نقوم بإنشاء مساحة الاسم و CustomResourCedefinitions أولاً لتجنب ظروف السباق عند نشر مكونات المراقبة. بدلاً من ذلك ، يمكن تطبيق الموارد الموجودة في كلا المجلدين باستخدام أمر واحد kubectl apply --server-side -f manifests/setup -f manifests ، ولكن قد يكون من الضروري تشغيل الأمر عدة مرات حتى يتم إنشاء جميع المكونات بنجاح.
kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setupلتجربة هذا المكدس ، ابدأ Minikube مع الأمر التالي:
$ minikube delete && minikube start --kubernetes-version=v1.23.0 --memory=6g --bootstrapper=kubeadm --extra-config=kubelet.authentication-token-webhook=true --extra-config=kubelet.authorization-mode=Webhook --extra-config=scheduler.bind-address=0.0.0.0 --extra-config=controller-manager.bind-address=0.0.0.0يتضمن مكدس Kube-Prometheus خادم واجهة برمجة تطبيقات مقاييس الموارد ، وبالتالي فإن ملحق خادم المقاييس ليس ضروريًا. تأكد من تعطيل ملحق الخادم المقاييس على Minikube:
$ minikube addons disable metrics-serverقبل نشر Kube-Prometheus في بيئة الإنتاج ، اقرأ:
docs/ الدليل. للمساهمة في Kube-Prometheus ، راجع المساهمة.
إذا كان لديك أي أسئلة أو ملاحظات بشأن Kube-Prometheus ، انضم إلى مناقشة Kube-Prometheus. بدلاً من ذلك ، فكر في الانضمام إلى قناة Kubernetes Slack #Prometheus-Operator أو ساعات مكتب المساهم في كل أسبوعين في المشروع.
ترخيص Apache 2.0 ، انظر الترخيص.