使用kubeadm安装的k8s集群,自动生成的集群内部认证证书,在一年后过期,所有核心组件无法正常工作,这里记录一下更新证书方法。

备份原有的证书

  1. cp -r /etc/kubernetes/pki /tmp/

进入pki目录并创建对应的私钥key

  1. cd /etc/kubernetes/pki/
  2. openssl genrsa -out apiserver-kubelet-client.key 2014

根据私钥生成一个证书请求csr

  1. openssl req -new -key apiserver-kubelet-client.key -out apiserver-kubelet-client.csr -subj "/CN=leihb"
  2. #CN代表动作的执行主体

用kubernetes的CA去签发一个证书crt

  1. #根据自己需求填写证书有效期
  2. openssl x509 -req -in apiserver-kubelet-client.csr -CA ca.crt -CAkey ca.key -CAcreateserial -out apiserver-kubelet-client.crt -days 3650

查看生成证书的信息

  1. openssl x509 -in apiserver-kubelet-client.crt -text -noout

删除证书对应的pod资源

kubectl delete pods kube-apiserver-master -n kube-system
kubectl get pods -n kube-system