本文發表於一年多前。舊文章可能包含過時內容。請檢查頁面中的資訊自發布以來是否已變得不正確。
kube-state-metrics 升級到 v2.0
什麼是 kube-state-metrics?
kube-state-metrics 是 Kubernetes 組織下的一個專案,它根據 Kubernetes 原生資源的當前狀態生成 Prometheus 格式的度量指標。它透過監聽 Kubernetes API 並收集有關資源和物件(例如 Deployment、Pod、Service 和 StatefulSet)的資訊來實現這一點。完整資源列表可在 kube-state-metrics 的文件中找到。
為什麼要用 kube-state-metrics?
kube-state-metrics
開箱即用地提供了許多有用的度量指標和洞察!這些度量指標可以作為您叢集的洞察:可以透過單獨的度量指標、儀表板形式或透過警報管道來實現。舉幾個例子:
kube_pod_container_status_restarts_total
可用於警報崩潰的 Pod。kube_deployment_status_replicas
與kube_deployment_status_replicas_available
結合使用,可用於警報 Deployment 是否成功釋出或卡住。kube_pod_container_resource_requests
和kube_pod_container_resource_limits
可用於容量規劃儀表板。
還有更多可用指標!要了解其他指標及其詳細資訊,請檢視文件。
v2.0 有什麼新功能?
現在我們瞭解了 kube-state-metrics 是什麼,我們很高興宣佈下一個版本:kube-state-metrics v2.0!這個版本期待已久,並於 2020 年 9 月釋出了 Alpha 版本。為了便於維護,我們消除了技術債務,並調整了一些關於面向使用者的標誌和 API 的令人困惑的措辭。我們還刪除了一些在 Prometheus 中導致不必要高基數的指標!對於 2.0 版本,我們花時間設定了規模和效能測試。這使我們能夠更好地瞭解在大規模叢集中是否遇到任何問題,並記錄您叢集的資源請求建議。在此版本(和 v1.9.8)中,引入了支援多種架構的容器構建,使您也可以在 ARM、ARM64、PPC64 和 S390x 上執行 kube-state-metrics!
事不宜遲,以下是更值得注意的面向使用者的重大更改列表。完整的更改、功能和錯誤修復列表可在本文末尾的變更日誌中找到。
- 標誌
--namespace
已重新命名為--namespaces
。如果您正在使用前者,請務必在部署最新版本之前更新該標誌。 - 標誌
--collectors
已重新命名為--resources
。 - 標誌
--metric-blacklist
和--metric-whitelist
已重新命名為--metric-denylist
和--metric-allowlist
。 - 標誌
--metric-labels-allowlist
允許您指定一個 Kubernetes 標籤列表,這些標籤將轉換為kube_<resource-name>_labels
指標的維度。預設情況下,該指標僅包含名稱和名稱空間標籤。 - 所有帶有
kube_hpa_*
字首的指標都已重新命名為kube_horizontalpodautoscaler_*
。 - 與 Kubernetes 相關的指標標籤已轉換為 snake_case。
- 如果您將 kube-state-metrics 作為庫匯入,我們已將我們的 go 模組路徑更新為
k8s.io/kube-state-metrics/v2
- 根據 v1.9 版本中的通知,所有已棄用的穩定指標都已刪除。
quay.io/coreos/kube-state-metrics
映象將不再更新。k8s.gcr.io/kube-state-metrics/kube-state-metrics
是新的規範位置(更新:k8s.gcr.io
已棄用,取而代之的是registry.k8s.io
)。- kubernetes/kube-state-metrics 倉庫中包含的 Helm Chart 已棄用。https://github.com/prometheus-community/helm-charts 將是它的新位置。
有關 v2.0 版本更改的完整列表,包括功能、錯誤修復和其他重大更改,請參閱完整的變更日誌。
發現問題?
感謝所有使用者迄今為止的測試,感謝所有貢獻者的問題報告以及程式碼和文件更改!如果您發現任何問題,我們這些維護者非常樂意調查,因此請透過建立 GitHub 問題來報告它們。