警告
本文最后更新于 2020-11-25 14:45,文中内容可能已过时。
参考:https://www.ancii.com/ahevxud6j/
证书到期后会提示:Unable to connect to the server: x509: certificate has expired or is not yet valid
查看证书过期时间:
1
2
3
4
5
| # 方法1
kubeadm alpha certs check-expiration
# 方法2
openssl x509 -noout -dates -in /etc/kubernetes/pki/apiserver.crt
|
各个证书的过期时间
1
2
3
4
5
6
7
8
9
10
| /etc/kubernetes/pki/apiserver.crt #1年有效期
/etc/kubernetes/pki/front-proxy-ca.crt #10年有效期
/etc/kubernetes/pki/ca.crt #10年有效期
/etc/kubernetes/pki/apiserver-etcd-client.crt #1年有效期
/etc/kubernetes/pki/front-proxy-client.crt #1年有效期
/etc/kubernetes/pki/etcd/server.crt #1年有效期
/etc/kubernetes/pki/etcd/ca.crt #10年有效期
/etc/kubernetes/pki/etcd/peer.crt #1年有效期
/etc/kubernetes/pki/etcd/healthcheck-client.crt #1年有效期
/etc/kubernetes/pki/apiserver-kubelet-client.crt #1年有效期
|
1.备份配置文件和etcd
1
2
| cp -rp /etc/kubernetes /etc/kubernetes.bak
cp -r /var/lib/etcd /var/lib/etcd.bak
|
2.生成集群配置文件
1
| kubeadm config view > ./cluster.yaml
|
3.证书续期
1
| kubeadm alpha certs renew all --config=./cluster.yaml
|
4.重新生成配置文件
1
2
| rm -f /etc/kubernetes/*.conf
kubeadm init phase kubeconfig all --config=./cluster.yaml
|
5.重启kubelet、apiserver、controller-manager、scheduler、etcd
1
| docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler|k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart
|
6.查看证书过期时间
1
| for item in `find /etc/kubernetes/pki -maxdepth 2 -name "*.crt"`;do openssl x509 -in $item -text -noout| grep Not;echo ======================$item===============;done
|
7.复制新的认证文件
1
2
| rm -fr ~/.kube/
cp /etc/kubernetes/admin.conf ~/.kube/config
|