Kubernetes具有灵活的可扩展性,它通过API聚合器为开发人员提供了轻松扩展API资源的能力,可以自定义指标API和资源指标API。新一代的Kubernetes监控系统架构主要由核心指标流水线和监控指标流水线协同组成。
核心指标流水线
由kubelet、metrics-server以及由API server提供的api组成;CPU累积使用率、内存的实时使用率、pod的资源占用率及容器的磁盘占用率。
监控指标流水线
用于从系统收集各种指标数据并提供给终端用户、存储系统以及HPA,包含核心指标以及其他许多非核心指标。非核心指标本身不能被K8S所解析。所以需要k8s-prometheus-adapter将prometheus采集到的数据转化为k8s能理解的格式,为k8s所使用。
HPAv2:能同时使用资源指标API和自定义指标API的组件,它实现了基于观察到的指标自动缩放Deployment或ReplicaSet类型控制器管控下的Pod副本数量。
目前,资源指标API的实现较主流是的metrics-server,而自定义指标API则以建构在监控系统Prometheus之上的k8s-prometheus-adapter最广为接受。