Perhatikan bahwa semuanya bersifat eksperimental dan dapat berubah secara signifikan kapan saja.
Repositori ini mengumpulkan manifes Kubernetes, dasbor grafana, dan aturan Prometheus yang dikombinasikan dengan dokumentasi dan skrip untuk memberikan pemantauan kluster Kubernetes end-to-end yang mudah dioperasikan dengan Prometheus menggunakan operator Prometheus.
Isi proyek ini ditulis dalam jSonnet. Proyek ini dapat digambarkan sebagai paket serta perpustakaan.
Komponen termasuk dalam paket ini:
Tumpukan ini dimaksudkan untuk pemantauan cluster, sehingga dikonfigurasi sebelumnya untuk mengumpulkan metrik dari semua komponen Kubernetes. Selain itu ia memberikan satu set dasbor default dan aturan peringatan. Banyak dasbor dan peringatan yang berguna berasal dari proyek Kubernetes-Mixin, mirip dengan proyek ini, ia menyediakan jSonnet yang dapat dikomposisi sebagai perpustakaan bagi pengguna untuk menyesuaikan dengan kebutuhan mereka.
Anda akan membutuhkan cluster Kubernetes, itu saja! Secara default diasumsikan, bahwa Kubelet menggunakan otentikasi dan otorisasi token, karena sebaliknya Prometheus membutuhkan sertifikat klien, yang memberikannya akses penuh ke Kubelet, bukan hanya metrik. Otentikasi dan otorisasi token memungkinkan kontrol akses yang lebih halus dan lebih mudah.
Ini berarti konfigurasi Kubelet harus berisi bendera ini:
--authentication-token-webhook=true Bendera ini memungkinkan, bahwa token ServiceAccount dapat digunakan untuk mengotentikasi terhadap Kubelet (s). Ini juga dapat diaktifkan dengan mengatur authentication.webhook.enabled nilai konfigurasi Kubelet.webhook.enabled to true .--authorization-mode=Webhook Bendera ini memungkinkan, bahwa Kubelet akan melakukan permintaan RBAC dengan API untuk menentukan, apakah entitas yang meminta (Prometheus dalam kasus ini) diizinkan untuk mengakses sumber daya, secara khusus untuk proyek ini /metrics Endpoint. Ini juga dapat diaktifkan dengan mengatur authorization.mode nilai konfigurasi Kubelet.mode ke Webhook .Tumpukan ini menyediakan metrik sumber daya dengan menggunakan adaptor Prometheus. Adaptor ini adalah server API ekstensi dan Kubernetes perlu diaktifkan fitur ini, jika tidak adaptor tidak berpengaruh, tetapi masih digunakan.
Versi Kubernetes berikut didukung dan bekerja saat kami menguji terhadap versi -versi ini di cabang masing -masing. Tetapi perhatikan bahwa versi lain mungkin berfungsi!
| Tumpukan Kube-Prometheus | 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 | ✔ | ✔ | ✔ | ✔ | ✔ |
Proyek ini dimaksudkan untuk digunakan sebagai perpustakaan (yaitu maksudnya bukan untuk Anda untuk membuat salinan repositori ini sendiri).
Meskipun untuk quickStart versi kompilasi dari manifes Kubernetes yang dihasilkan dengan pustaka ini (khususnya dengan example.jsonnet ) diperiksa ke dalam repositori ini untuk mencoba konten dengan cepat. Untuk mencoba menjalankan tumpukan yang tidak disesuaikan:
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/ Kami membuat Namespace dan CustomResourcedEfinitions terlebih dahulu untuk menghindari kondisi ras saat menggunakan komponen pemantauan. Atau, sumber daya di kedua folder dapat diterapkan dengan satu perintah kubectl apply --server-side -f manifests/setup -f manifests , tetapi mungkin perlu untuk menjalankan perintah beberapa kali agar semua komponen dapat dibuat dengan sukses.
kubectl delete --ignore-not-found=true -f manifests/ -f manifests/setupUntuk mencoba tumpukan ini, mulailah Minikube dengan perintah berikut:
$ 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.0Tumpukan Kube-Prometheus mencakup server API metrik sumber daya, sehingga addon server metrik tidak diperlukan. Pastikan addon server metrik dinonaktifkan di Minikube:
$ minikube addons disable metrics-serverSebelum menggunakan Kube-Prometheus di lingkungan produksi, baca:
docs/ direktori. Untuk berkontribusi pada Kube-Prometheus, lihat Kontribusi.
Jika Anda memiliki pertanyaan atau umpan balik tentang Kube-Prometheus, bergabunglah dengan diskusi Kube-Prometheus. Atau, pertimbangkan untuk bergabung dengan saluran Kubernetes Slack #Prometheus-operator atau jam kerja kontributor dua mingguan proyek.
Lisensi Apache 2.0, lihat Lisensi.