无法获取 pod 指标 -Kubernetes
Posted
技术标签:
【中文标题】无法获取 pod 指标 -Kubernetes【英文标题】:Unable to get pod metrics -Kubernetes 【发布时间】:2019-05-01 10:57:49 【问题描述】:我无法获取 pod 的指标。 “describe hpa”命令的结果如下所示。我不能自动缩放!!!
我的 kubernetes 版本和“get hpa”的结果在下面的屏幕截图中给出。 请帮我自动缩放我的应用程序。我使用此指令安装 hpa https://kubernetes.io/docs/tasks/run-application/horizontal-pod-autoscale-walkthrough/#run-expose-php-apache-server]3。我正在使用数字海洋云来运行我的集群。帮我安装任何东西来获取指标,这样我就可以将它用于 hpa。
【问题讨论】:
我们需要更多信息,请提供 Kubernetes 版本以及您的环境是什么 - 是 GKE 吗?好像你用过这个tutorial。如果是,您在哪一步收到此错误?kubectl get hpa
也很有用。
你能发布kubectl logs <heapster-pod>
的输出吗?
heapster 正在运行吗?
是的 @Rico heapster 正在运行
我会在 DigitalOcean 上检查它,然后检查 github 上的 issue 是否解释了您的问题。
【参考方案1】:
我能够重现此问题。
Digital Ocean 不支持集群自动缩放,如 here 所述。但似乎 HPA 应该可以工作,因为它可以扩展 pod。
我能够使用它并使 HPA 正常工作。请注意,我没有在这方面花费大量时间,所以我还不知道以后是否有任何问题。我的目标是使 hpa 规模化,这很成功。
首先安装 Metrics server,因为 Heapster 已被弃用。我通过 git clone 然后kubectl create -f deploy/1.8+/
做到了。
接下来找到指标服务器部署并进行编辑:
kubectl edit deployment metrics-server -n kube-system
在spec:
->containers:
下添加以下指标:
spec:
containers:
- command:
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
- --logtostderr
等待几分钟,当您调用 kubectl get hpa
时,您会看到在 TARGETS<unknown>/50%
changes to 0%/50%
下,您已准备好生成负载并扩展 Pod。停止加载后,hpa 会慢慢开始移除 pod。
更新:
你可能错过了一个破折号。它应该是这样的。
spec:
containers:
- command:
- /metrics-server
- --kubelet-insecure-tls
- --kubelet-preferred-address-types=InternalIP
- --logtostderr
image: k8s.gcr.io/metrics-server-amd64:v0.3.1
删除“图像”前面的破折号。
希望这会有所帮助。
【讨论】:
编辑后无法保存部署文件。说error: deployments.extensions "metrics-server" is invalid
@aurelius
更新了答案,错误原因是编辑后在错误位置添加了破折号。以上是关于无法获取 pod 指标 -Kubernetes的主要内容,如果未能解决你的问题,请参考以下文章
无法获取 cpu pod 指标,k8s-containerd-containerd-shim-runsc-v1-gvisor