【K8s任務】資源指標管道
參考:https://kubernetes.io/zh/docs/tasks/debug-application-cluster/resource-metrics-pipeline/
資源使用指標,例如容器 CPU 和記憶體使用率,可通過 Metrics API 在 Kubernetes 中獲得。 這些指標可以直接被使用者訪問,比如使用 kubectl top 命令列,或者被叢集中的控制器 (例如 Horizontal Pod Autoscalers) 使用來做決策。
Metrics API
通過 Metrics API,你可以獲得指定節點或 Pod 當前使用的資源量。 此 API 不儲存指標值,因此想要獲取某個指定節點 10 分鐘前的 資源使用量是不可能的。
此 API 與其他 API 沒有區別:
- 此 API 和其它 Kubernetes API 一起位於同一端點(endpoint)之下且可發現, 路徑為 /apis/metrics.k8s.io/
- 它具有相同的安全性、可擴充套件性和可靠性保證
Metrics API 在 k8s.io/metrics 倉庫中定義。你可以在那裡找到有關 Metrics API 的更多資訊。
說明: Metrics API 需要在叢集中部署 Metrics Server。否則它將不可用。
度量資源用量
CPU
CPU 用量按其一段時間內的平均值統計,單位為 CPU 核。 此度量值通過在核心(包括 Linux 和 Windows)提供的累積 CPU 計數器乘以一個係數得到。 kubelet 元件負責選擇計算係數所使用的視窗大小。
記憶體
記憶體用量按工作集(Working Set)的大小位元組數統計,其數值為收集度量值的那一刻的記憶體用量。 如果一切都很理想化,“工作集” 是任務在使用的記憶體總量,該記憶體是不可以在記憶體壓力較大 的情況下被釋放的。 不過,具體的工作集計算方式取決於宿主 OS,有很大不同,且通常都大量使用啟發式 規則來給出一個估計值。 其中包含所有匿名記憶體使用(沒有後臺文件提供儲存者),因為 Kubernetes 不支援交換分割槽。 度量值通常包含一些快取記憶體(有後臺文件提供儲存)記憶體,因為宿主作業系統並不是總能 回收這些頁面。
Metrics 伺服器
Metrics 伺服器 是叢集範圍資源用量資料的聚合器。 預設情況下,在由 kube-up.sh 指令碼建立的叢集中會以 Deployment 的形式被部署。 如果你使用其他 Kubernetes 安裝方法,則可以使用提供的 部署元件 components.yaml 來部署。
Metric 伺服器從每個節點上的 kubelet 公開的 Summary API 中採集指標資訊。 該 API 通過 Kubernetes 聚合器 註冊到主 API 伺服器上。
在設計文件 中可以瞭解到有關 Metrics 伺服器的更多資訊。
作者:Varden 出處:http://www.cnblogs.com/varden/ 本文內容如有雷同,請聯絡作者! 本文版權歸作者和部落格園共有,歡迎轉載,但未經作者同意必須保留此段宣告,且在文章頁面明顯位置給出原文連線,否則保留追究法律責任的權利。