本文作者:丁辉
Metrics-Server启动报错证书验证失败
日志显示错误为 x509: cannot validate certificate for 172.18.0.x because it doesn't contain any IP SANs,这说明集群中 kubelet 的证书没有包含节点的 IP 地址(172.18.0.x)作为 SAN(Subject Alternative Name)。
这是一个在测试环境中非常常见的问题。
解决方案
编辑 metrics-server 的 Deployment
1
kubectl edit deployment metrics-server -n kube-system
在 containers.args 部分添加以下参数:
1
2
3
4
5
6
7spec:
containers:
- args:
- --cert-dir=/tmp
- --secure-port=4443
- --kubelet-insecure-tls # 添加这一行
# --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname
生产环境建议
重要提醒:--kubelet-insecure-tls 参数会跳过 TLS 验证,只应在开发测试环境使用。在生产环境中,应该:
- 为 kubelet 配置正确的证书,包含 IP SAN
- 或者使用证书轮转功能(RotateKubeletServerCertificate)
- 或者使用
--kubelet-certificate-authority指定正确的 CA
但对于测试环境,使用 --kubelet-insecure-tls 是完全安全和合适的。
要是这篇文章为您解了惑、带来了帮助,不妨用小小的打赏来支持下我的创作吧,您的鼓励就是我持续分享的最大动力哦,感谢您啦!
- 本文链接: https://blog.offends.cn/Kubernetes/问题记录/Metrics-Server启动报错证书验证失败.html
- 版权声明: 本博客所有文章除特别声明外,均默认采用 CC BY-NC-SA 4.0 许可协议。