Edit This Page

资源指标管道

从 Kubernetes 1.8开始,资源使用指标,例如容器 CPU 和内存使用率,可通过 Metrics API 在 Kubernetes 中获得。这些指标可以直接被用户访问,比如使用kubectl top命令行,或者这些指标由集群中的控制器使用,例如,Horizontal Pod Autoscaler,使用这些指标来做决策。

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。否则它将不可用。

Metrics Server

Metrics Server是集群范围资源使用数据的聚合器。 从 Kubernetes 1.8开始,它作为 Deployment 对象,被默认部署在由kube-up.sh脚本创建的集群中。 如果您使用不同的 Kubernetes 安装方法,则可以使用提供的deployment yamls来部署。它在 Kubernetes 1.7+中得到支持(详见下文)。

Metric server 从每个节点上的 Kubelet 公开的 Summary API 中采集指标信息。

通过在主 API server 中注册的 Metrics Server Kubernetes 聚合器 来采集指标信息, 这是在 Kubernetes 1.7 中引入的。

设计文档中可以了解到有关 Metrics Server 的更多信息。