从 Kubernetes 1.8开始,资源使用指标,例如容器 CPU 和内存使用率,可通过 Metrics API 在 Kubernetes 中获得。这些指标可以直接被用户访问,比如使用kubectl top
命令行,或者这些指标由集群中的控制器使用,例如,Horizontal Pod Autoscaler,使用这些指标来做决策。
通过 Metrics API,您可以获得指定节点或 pod 当前使用的资源量。此 API 不存储指标值,因此想要获取某个指定节点10分钟前的资源使用量是不可能的。
此 API 与其他 API 没有区别:
/apis/metrics.k8s.io/
Metrics API 在k8s.io/metrics 仓库中定义。您可以在那里找到有关 Metrics API 的更多信息。
注意: Metrics API 需要在集群中部署 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 的更多信息。
此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.