Kubernetes-访问度量服务器

Kubernetes-访问度量服务器,kubernetes,Kubernetes,在Kubernetes官方文件中: 我们可以看到: 此示例需要运行Kubernetes群集和kubectl,版本1.2或更高版本。需要在集群中部署Metrics服务器监控,以通过Metrics API提供指标。Horizontal Pod Autoscaler使用此API收集度量。要了解如何部署metrics服务器,请参阅metrics服务器文档。 要为水平吊舱自动缩放器指定多个资源指标,必须具有Kubernetes群集和1.6版或更高版本的kubectl。要使用自定义度量,集群必须能够与提供

在Kubernetes官方文件中:

我们可以看到:

此示例需要运行Kubernetes群集和kubectl,版本1.2或更高版本。需要在集群中部署Metrics服务器监控,以通过Metrics API提供指标。Horizontal Pod Autoscaler使用此API收集度量。要了解如何部署metrics服务器,请参阅metrics服务器文档。 要为水平吊舱自动缩放器指定多个资源指标,必须具有Kubernetes群集和1.6版或更高版本的kubectl。要使用自定义度量,集群必须能够与提供自定义度量API的API服务器通信。最后,要使用与任何Kubernetes对象无关的度量,必须在版本1.10或更高版本上拥有Kubernetes群集,并且必须能够与提供外部度量API的API服务器通信。有关更多详细信息,请参阅《水平吊舱自动缩放器用户指南》

为了验证我是否可以“利用自定义指标”,我运行了:

kubectl获取度量服务器

并得到结果:
错误:服务器没有资源类型“metrics server”

请问,我可以做些什么来验证“需要在集群中部署Metrics服务器监控”吗


谢谢

kubectl背后的实际行为是向Kubernetes API服务器中的特定端点发送API请求。
kubectl
附带了两个预定义对象。但是,如果您有一些端点未使用
kubectl
定义,则可以使用标志
--raw
将请求发送到API服务器

在您的情况下,可以使用此命令签出内置度量

> kubectl get --raw  /apis/metrics.k8s.io
{"kind":"APIGroup","apiVersion":"v1","name":"metrics.k8s.io","versions":[{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}],"preferredVersion":{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}}
> kubectl get --raw /apis/metrics.k8s.io/v1beta1/pods
您将从
kubectl
获得JSON响应。然后,您可以按照响应下的路径查询目标资源。在我的例子中,为了获得实际的指标,我需要使用这个命令

> kubectl get --raw  /apis/metrics.k8s.io
{"kind":"APIGroup","apiVersion":"v1","name":"metrics.k8s.io","versions":[{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}],"preferredVersion":{"groupVersion":"metrics.k8s.io/v1beta1","version":"v1beta1"}}
> kubectl get --raw /apis/metrics.k8s.io/v1beta1/pods
对于这个度量端点,它指的是内置的度量。它们是CPU和内存。如果您想使用自定义指标,则需要根据您的应用程序安装prometheus、prometheus适配器和相应的导出器。对于自定义指标验证,您可以转到以下端点

> kubectl get --raw /apis/custom.metrics.k8s.io

答案很清楚。认可的