kubernetes 安装 metrics

今天想试试 kubectl top 功能,遇到了一些问题,记录一下。

配置好集群使用 kubectl top node 的时候,会提醒:

error: metrics not available yet

这种错误,提示需要安装 metrics

官方提示可以这么安装:

kubectl apply -f https://github.com/kubernetes-sigs/metrics-server/releases/latest/download/components.yaml

但是直接这么用,大概率是不行的,可以直接把文件下载下来看看,其实就是个yaml文件,启动了几个kubernetes的资源。其中有个deploy需要一个特殊的镜像:

image: k8s.gcr.io/metrics-server/metrics-server:v0.4.4

这个镜像是能自己去替换一下的,可以直接换成能获取到的镜像地址,但是找了半天,找不到最新的0.4.4版本的,但是找到了一个旧版本的地址。

可以从这里下载:

registry.cn-hangzhou.aliyuncs.com/google_containers/metrics-server-amd64:v0.3.6

版本虽然不一样,还是试一试,万一能用呢,试了几次启动不了之后,发现其实换掉yaml文件就行了,把url中的latest,换成需要的版本号:

https://github.com/kubernetes-sigs/metrics-server/releases/v0.3.6/download/components.yaml

这么下载下来的yaml文件就能配合镜像版本使用了
然后使用命令:

kubectl top node

可能还会有问题,还是会提醒一样的错误。

先看看components.yaml文件创建出来的各种对象是不是在正常运行,尤其是那个 metrics-server 的 deploy 对象,如果都没问题,那就去看看log。

kubectl logs metrics-server-xxxxxxxxxxx -n kube-system

如果日志中出现了 no metrics known for node 这种记录,就是表明 dns解析出问题了,需要修改 deploy

kubectl -n kube-system edit deployment metrics-server

给args加上这两行:

- --kubelet-preferred-address-types=InternalIP
- --kubelet-insecure-tls

然后再看看能不能正常使用。

我的集群到这里就能正常使用了。

posted @ 2021-05-08 17:27  navist2020  阅读(588)  评论(0编辑  收藏  举报