问题描述
- 执行kubectl top node报错:
- 查看v1beta1.metrics.k8s.io详情发现如下错误:
kubectl describe apiservice v1beta1.metrics.k8s.io
- 请求metrics接口(返回结果为401):
curl -k https://172.16.6.10:8443/apis/metrics.k8s.io/v1bea1
- 查看metrics-server pod日志报错如下:
问题处理
经过以上错误日志分析是因为证书问题导致,重新生成metrics-server的证书问题解决,生成命令:
#生成根证书
cfssl gencert -initca front-proxy-ca-csr.json | cfssljson -bare /etc/kubernetes/pki/front-proxy-ca
#使用ca证书和私钥签发证书(警告忽略)
cfssl gencert -ca=/etc/kubernetes/pki/front-proxy-ca.pem -ca-key=/etc/kubernetes/pki/front-proxy-ca-key.pem -config=ca-config.json -profile=kubernetes front-proxy-client-csr.json | cfssljson -bare /etc/kubernetes/pki/front-proxy-client
说明:apiserver里的证书配置路径对应:/etc/kubernetes/pki/front-proxy-ca.pem