Skip to content

K8S-Kubelet-客户端证书

一、Kubelet证书说明

  • /var/lib/kubelet -- 默认的kubelet的工作目录,通过--root-dir指定
  • /etc/kubernetes/kubelet.conf -- kubelet访问集群的配置文件
  • /var/lib/kubelet/pki -- kubelet客户端证书存放地址
  • 默认kubeadm配置kebelet自动轮换客户端证书,/etc/kubernetes/kubelet.conf中指定/var/lib/kubelet/pki/kubelet-client-current.pem

二、Kubelet证书有效期查询

shell
openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not

三、Kubelet证书轮换失败处理

shell
<1> 从故障节点备份和删除 /etc/kubernetes/kubelet.conf 和 /var/lib/kubelet/pki/kubelet-client*
<2> 在集群中具有 /etc/kubernetes/pki/ca.key 的、正常工作的控制平面节点上 执行以下命令,其中$NODE 必须设置为集群中现有故障节点的名称
kubeadm kubeconfig user --org system:nodes --client-name system:node:$NODE --config kubeadm-config.yaml > kubelet.conf
<3> 将得到的 kubelet.conf 文件复制到故障节点上,作为 /etc/kubernetes/kubelet.conf
<4> 在故障节点上重启 kubelet(systemctl restart kubelet),等待 /var/lib/kubelet/pki/kubelet-client-current.pem 重新创建
<5> 手动编辑 kubelet.conf 指向轮换的 kubelet 客户端证书,方法是将 client-certificate-data 和 client-key-data 替换为:client-certificate: /var/lib/kubelet/pki/kubelet-client-current.pem,client-key: /var/lib/kubelet/pki/kubelet-client-current.pem
<6> 重新启动 kubelet && 确保节点状况变为 Ready