使用 kubeadm 进行证书管理
一:使用 kubeadm 进行证书管理
1.检查证书是否过期
kubeadm certs check-expiration
2.手动续订证书
使用 kubeadm certs renew 命令 可以随时手动续订证书,该命令使用存储在/etc/kubernetes/pki中的 CA (or front-proxy-CA)证书和密钥来更新证书
命令执行后,注意:
- 无论证书的到期时间如何,都会无条件地续订一年。
- 证书的SAN等信息基于原证书,无需再次提供。
- renew执行后,为使更改生效,需要重启各组件。
手动续证书
a.备份源文件及执行证书更新命令
cp -r /etc/kubernetes /etc/kubernetes.bak
kubeadm certs renew all
b.再次查看证书有效期
kubeadm certs check-expiration
c.重启 kube-apiserver、kube-controller-manager、kube-scheduler、etcd 组件后生效
kubectl delete pod etcd-master -n kube-system
kubectl delete pod kube-apiserver-master -n kube-system
kubectl delete pod kube-controller-manager-master -n kube-system
kubectl delete pod kube-scheduler-master -n kube-system
d.修改config文件
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
二:kubelet证书自动轮换
此操作方法只针对二进制方式部署的k8s集群
kubelet最大证书有效期为5年
修改kube-controller-manager启动参数(所有master节点修改)
vim /usr/lib/systemd/system/kube-controller-manager.service
--experimental-cluster-signing-duration=87600h
修改kubelet启动参数(所有节点修改)
vim /usr/lib/systemd/system/kubelet.service
添加以下参数
--rotate-certificates=true
重启kube-controller-manager和kubelet
systemctl daemon-reload
systemctl restart kube-controller-manager.service
systemctl restart kubelet
kubelet证书有效期查看
cd /etc/kubernetes/sslopenssl x509 -in kubelet-client-current.pem -text -noout| grep Not