美文网首页Kubernetes
Kubernetes集群证书更新

Kubernetes集群证书更新

作者: 王勇1024 | 来源:发表于2020-12-24 18:30 被阅读0次

使用 kubeadm 安装 kubernetes 集群非常方便,但是也有一个比较烦人的问题就是默认的证书有效期只有一年时间,所以需要考虑证书升级的问题,本文的演示集群版本为 v1.13.1 版本,不保证下面的操作对其他版本也适用,在操作之前一定要先对证书目录进行备份,防止操作错误进行回滚。

1.查看证书有效期

$ openssl x509 -in /etc/kubernetes/pki/apiserver.crt -noout -text |grep ' Not '
            Not Before: Feb 13 19:17:50 2020 GMT
            Not After : Feb 12 19:17:50 2021 GMT

1.15及以上版本可以使用下面的命令查看证书有效期:

kubeadm alpha certs check-expiration

2.备份证书和etcd数据

mkdir /etc/kubernetes.bak
cp -r /etc/kubernetes/* /etc/kubernetes.bak
cp -r /var/lib/etcd /var/lib/etcd.bak

3.更新证书
注意:kubeadm.conf 中 controlPlaneEndpoint 需配置为leader的节点ip+apiserver 端口号。

kubeadm alpha certs renew all --config=kubeadm.conf
$ sudo kubeadm init phase kubeconfig all --config kubeadm.conf
[kubeconfig] Using kubeconfig folder "/etc/kubernetes"
[kubeconfig] Using existing up-to-date kubeconfig file: "/etc/kubernetes/admin.conf"
[kubeconfig] Using existing up-to-date kubeconfig file: "/etc/kubernetes/kubelet.conf"
[kubeconfig] Using existing up-to-date kubeconfig file: "/etc/kubernetes/controller-manager.conf"
[kubeconfig] Using existing up-to-date kubeconfig file: "/etc/kubernetes/scheduler.conf"

4.更新kubeconfig文件

cp $HOME/.kube/config $HOME/.kube/config.old
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config

完成后重启 kube-apiserver、kube-controller、kube-scheduler、etcd 这4个容器即可,我们可以查看 apiserver 的证书的有效期来验证是否更新成功:

$ echo | openssl s_client -showcerts -connect 127.0.0.1:6443 -servername api 2>/dev/null | openssl x509 -noout -enddate
notAfter=Dec 24 10:03:04 2021 GMT

可以看到现在的有效期是一年过后的,证明已经更新成功了。
如果有多个master节点,分别在各个master上执行上述操作即可。

相关文章

网友评论

    本文标题:Kubernetes集群证书更新

    本文链接:https://www.haomeiwen.com/subject/xlzmnktx.html