banner
NEWS LETTER

Metrics-Server启动报错证书验证失败

Scroll down

本文作者:丁辉

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)。

这是一个在测试环境中非常常见的问题。

解决方案

  1. 编辑 metrics-server 的 Deployment

    1
    kubectl edit deployment metrics-server -n kube-system
  2. 在 containers.args 部分添加以下参数:

    1
    2
    3
    4
    5
    6
    7
    spec:
    containers:
    - args:
    - --cert-dir=/tmp
    - --secure-port=4443
    - --kubelet-insecure-tls # 添加这一行
    # --kubelet-preferred-address-types=InternalIP,ExternalIP,Hostname

生产环境建议

重要提醒--kubelet-insecure-tls 参数会跳过 TLS 验证,只应在开发测试环境使用。在生产环境中,应该:

  1. 为 kubelet 配置正确的证书,包含 IP SAN
  2. 或者使用证书轮转功能(RotateKubeletServerCertificate)
  3. 或者使用 --kubelet-certificate-authority 指定正确的 CA

但对于测试环境,使用 --kubelet-insecure-tls 是完全安全和合适的。

要是这篇文章为您解了惑、带来了帮助,不妨用小小的打赏来支持下我的创作吧,您的鼓励就是我持续分享的最大动力哦,感谢您啦!

其他文章
cover
Kubernetes容器启动报打开的文件数过多
  • 70/01/01
  • 00:00
  • Kubernetes-问题记录
cover
Rke部署K8s报错
  • 70/01/01
  • 00:00
  • Kubernetes-问题记录
目录导航 置顶
  1. 1. Metrics-Server启动报错证书验证失败
    1. 1.1. 解决方案
    2. 1.2. 生产环境建议
请输入关键词进行搜索