You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes 1.19.9 自建集群CSR处于Pending状态无法签发证书问题咨询

排查步骤

  • 首先检查kube-controller-manager启动参数配置:确认是否正确配置了--cluster-signing-cert-file和--cluster-signing-key-file两个参数,分别对应集群根CA证书和根CA私钥的文件路径。如果参数未配置、路径错误、文件权限不足导致controller-manager无法读取CA私钥,就会出现CSR批准后无法签发证书的问题。
  • 提取kube-controller-manager运行日志,搜索目标CSR的名称,查看是否存在签名相关的报错信息,可直接定位异常根因。
  • 检查是否部署了cert-manager等第三方证书管理组件,确认这类组件是否配置了接管kubernetes.io/kube-apiserver-client-kubelet内置签名者的规则,如果存在接管逻辑,需要检查第三方组件的运行状态和相关日志。
  • 验证CSR本身合法性:执行以下命令解码CSR的请求内容,检查证书请求的CN、组织信息是否符合kubelet客户端证书的规范:
echo "<替换为CSR的spec.request字段内容>" | base64 -d | openssl req -text -noout

正常kubelet客户端证书的CN应为system:node:<节点名称>,组织应为system:nodes,和你提供的CSR配置一致。

  • 检查kube-controller-manager对应的RBAC权限,确认其拥有更新certificatesigningrequests/status资源的权限,异常的RBAC配置会导致签名完成后无法写入CSR的status字段。

常见解决方法

  • 若为kube-controller-manager签名参数配置错误:修改manifest配置补全正确的CA证书/私钥路径,重启controller-manager Pod后即可恢复正常签发。
  • 若为第三方证书组件接管导致:要么调整第三方组件配置,新增对kubernetes.io/kube-apiserver-client-kubelet类型CSR的签名支持,要么删除对应的接管规则,恢复使用K8s内置的签名逻辑。
  • 若为RBAC权限缺失:恢复system:controller:certificate-controller内置ClusterRole的默认权限即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.09 04:57:01