請注意,一切都是實驗性的,並且可能隨時發生重大變化。
該存儲庫收集Kubernetes表現出,Grafana儀表板和Prometheus規則,並結合文檔和腳本,以使用Prometheus使用Prometheus使用Prometheus使用Prometheus提供易於操作的端到端Kubernetes群集監視。
該項目的內容用JSONNET編寫。這個項目都可以描述為包裝和庫。
此軟件包中包含的組件:
該堆棧是用於群集監視的,因此已對其進行預先配置以從所有Kubernetes組件中收集指標。除此之外,它還提供一組默認的儀表板和警報規則。許多有用的儀表板和警報來自Kubernetes-Mixin項目,與此項目類似,它提供了可組合的JSONNET作為庫,供用戶自定義其需求。
您將需要一個Kubernetes群集,僅此而已!默認情況下,假定Kubelet使用令牌身份驗證和授權,因為Prometheus需要客戶證書,這使其可以完全訪問Kubelet,而不僅僅是指標。令牌身份驗證和授權允許更多細粒度和更輕鬆的訪問控制。
這意味著Kubelet配置必須包含以下標誌:
--authentication-token-webhook=true此標誌可以使ServiceAccount令牌可用於對kubelet(S)進行身份驗證。也可以通過設置kubelet配置值true authentication.webhook.enabled來啟用這一點。--authorization-mode=Webhook此標誌使kubelet將對API執行RBAC請求,以確定請求實體(在這種情況下為Prometheus)是否允許訪問資源,特定於此項目/metrics端點。也可以通過將kubelet配置值authorization.mode設置為Webhook來啟用這一點。該堆棧通過部署Prometheus適配器來提供資源指標。該適配器是一個擴展API服務器,需要啟用此功能,否則適配器沒有效果,但仍在部署。
支持以下Kubernetes版本並在我們在各自分支中對這些版本進行測試時起作用。但是請注意,其他版本可能會起作用!
| 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 | ✔ | ✔ | ✔ | ✔ | ✔ |
該項目旨在用作庫(即,意圖不是讓您創建自己的修改後的此存儲庫副本)。
儘管對於QuickStart,將本庫中生成的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/我們首先創建命名空間和CustomResourceRcEFinitions,以避免在部署監視組件時避免比賽條件。另外,兩個文件夾中的資源都可以使用單個命令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.0Kube-prometheus堆棧包含資源指標API服務器,因此Metrics-Server-server addon不需要。確保在Minikube上禁用指標服務器插件:
$ minikube addons disable metrics-server在生產環境中部署kube-prometheus之前,請閱讀:
docs/目錄。 為了為kube-prometheus做出貢獻,請參閱貢獻。
如果您對Kube-Prometheus有任何疑問或反饋,請參加Kube-Prometheus討論。另外,請考慮加入Kubernetes Slack#Prometheus-operator頻道或Project每兩週的貢獻者辦公時間。
Apache許可證2.0,請參閱許可證。