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
然后再看看能不能正常使用。
我的集群到这里就能正常使用了。