You need to enable JavaScript to run this app. Kubernetes master节点kube-bench校验1.2.6项失败:kubelet证书CA配置问询
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes master节点kube-bench校验1.2.6项失败:kubelet证书CA配置问询

适配的CA证书选型

--kubelet-certificate-authority参数的核心作用是:kube-apiserver发起对kubelet接口的HTTPS调用(比如节点日志采集、容器exec操作、端口转发)时,用该参数指定的证书作为根信任源,校验kubelet返回的服务端证书合法性。
结合你提供的集群PKI目录结构,唯一适配的证书是:

  • ca.crt
    这是集群全局根CA证书,默认场景下所有kubelet的服务端证书,都是由这个根CA签发的,完全满足apiserver校验kubelet身份的需求。

其余文件/目录均不适合该场景:

  • front-proxy-ca.crt:仅用于聚合API层的服务通信校验,和kubelet通信链路无关
  • etcd目录下的CA文件:仅用于etcd集群内部的通信加密校验,不参与apiserver和kubelet的交互
  • 其余文件都是单组件专属的客户端/服务端证书、密钥,不具备根CA的信任校验能力。

可在节点上执行命令验证选型正确性:
openssl verify -CAfile /etc/kubernetes/pki/ca.crt /var/lib/kubelet/pki/kubelet.crt
输出OK即说明该CA确实是签发kubelet服务证书的根证书。

具体配置步骤
  1. 确认证书绝对路径:你列出的PKI文件默认存放路径为/etc/kubernetes/pki,因此目标CA的完整路径为/etc/kubernetes/pki/ca.crt。
  2. 编辑kube-apiserver静态配置清单:打开/etc/kubernetes/manifests/kube-apiserver.yaml,在容器的command参数列表中新增配置行:
    - --kubelet-certificate-authority=/etc/kubernetes/pki/ca.crt
    
    注意该参数仅需要CA的公钥证书文件,无需填写对应的ca.key私钥文件。
  3. 等待配置自动生效:kubelet会实时监听manifests目录的文件变更,自动滚动重启kube-apiserver静态Pod,无需手动操作。约30秒后可执行如下命令确认参数已正常加载:
    kubectl exec -n kube-system kube-apiserver-<对应master节点的主机名> -- kube-apiserver --help | grep kubelet-certificate-authority
常见配置避坑
  • 不要误用apiserver-kubelet-client.crt作为CA值:该文件是apiserver连接kubelet时使用的客户端证书,并非根CA,配置后会直接导致证书校验逻辑失效
  • 不要填写相对路径:静态Pod的启动工作目录并非PKI目录,使用相对路径会导致apiserver启动时找不到证书文件,引发服务异常
  • 配置生效后重新执行kube-bench的1.2.6检查项,确认原FAIL状态转为PASS即可

内容的提问来源于stack exchange,提问作者vinod827

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.27 22:06:02