kubenetes证书过期更新

Kubenetes v1.11版本,二进制部署包证书过期更新;

1、检查当前证书情况:

[root@paas2 kubernetes]#  for item in `find /etc/kubernetes/ssl -maxdepth 2 -name "*.crt"`;do openssl x509 -in $item -text -noout| grep Not;echo ======================$item===================;done
            Not Before: Mar 31 02:20:17 2020 GMT
            Not After : Mar 31 02:20:17 2021 GMT
======================/etc/kubernetes/ssl/kubelet.crt===================

当前证书已过期,目前集群整体状态所有节点都出现NotReady状态

[root@paas1 kubernetes]# kubectl get no
NAME              STATUS     ROLES     AGE       VERSION
172.10.32.11      NotReady      master    364d      v1.11.1
172.10.32.12      NotReady      master    364d      v1.11.1
172.10.32.16      NotReady      node      343d      v1.11.1
172.10.32.17      NotReady      node      343d      v1.11.1
172.10.32.18      NotReady      node      364d      v1.11.1

k8s配置信息的工作目录一般为/etc/kubernetes,证书目录一般为/etc/kubernetes/ssl

2.备份文件,在单台master进行操作

    [root@paas1 kubernetes]# cd /etc/kubernetes
    [root@paas1 kubernetes]# cp kubelet.kubeconfig kubelet.kubeconfig.bak
    [root@paas1 kubernetes]# mkdir sslbak && cp ssl/ sslbak

3.清理原有证书及配置文件

[root@paas1 kubernetes]# rm -f kubelet.kubeconfig
[root@paas1 kubernetes]# rm ssl/kubelet.*

4.重启kubelet

[root@paas1 ]# systemctl  restart kubelet && systemctl  status  kubelet

5.使用csr重新生成证书

[root@paas1 ~]# kubectl get csr
NAME                                    AGE       REQUESTOR           CONDITION
node-csr-JR1Zepcp2p-gk                  1h        kubelet-bootstrap    Pending

#获取到的csr若为node-csr-JR1Zepcp2p-gk
[root@paas1 ~]# kubectl certificate approve node-csr-JR1Zepcp2p-gk

[root@paas1 ~]# kubectl get csr
NAME                                    AGE       REQUESTOR           CONDITION
node-csr-JR1Zepcp2p-gk                  1h        kubelet-bootstrap   Approved,Issued

6.处理完master后对其他master和node进行修改

 [root@node kubernetes]# cd /etc/kubernetes
 [root@node kubernetes]# rm ssl/kubelet.*
 [root@node kubernetes]# systemctl  restart kubelet && systemctl  status  kubelet

7.对node请求过来的新证书处理

[root@paas1 ~]# kubectl get csr
NAME                                   AGE       REQUESTOR           CONDITION
node-csr-JR1Zepcp2p-gk                  1h        kubelet-bootstrap   Approved,Issued
node-csr-JR1Zdaddaf-da                  1h        kubelet-bootstrap   Pending
node-csr-hEpAQi9zW3-dd                  1h        kubelet-bootstrap   Pending

#获取到的csr中Pending状态全部激活
[root@paas1 ~]# kubectl certificate approve node-csr-JR1Zdaddaf-da
[root@paas1 ~]# kubectl certificate approve node-csr-hEpAQi9zW3-dd

#检查激活后的各个证书情况
[root@paas1 ~]# kubectl get csr
NAME                                   AGE       REQUESTOR           CONDITION
node-csr-JR1Zepcp2p-gk                  1h        kubelet-bootstrap   Approved,Issued
node-csr-JR1Zdaddaf-da                  1h        kubelet-bootstrap   Approved,Issued
node-csr-hEpAQi9zW3-dd                  1h        kubelet-bootstrap   Approved,Issued

8.证书替换完成后检查集群状态

[root@paas1 kubernetes]# kubectl get no
NAME              STATUS    ROLES     AGE       VERSION
172.10.32.11      Ready     master    364d      v1.11.1
172.10.32.12      Ready     master    364d      v1.11.1
172.10.32.16      Ready     node      343d      v1.11.1
172.10.32.17      Ready     node      343d      v1.11.1
172.10.32.18      Ready     node      364d      v1.11.1

集群状态恢复,之后检查各个node上的证书时间

[root@paas1 ~]# for item in `find /etc/kubernetes/ssl -maxdepth 2 -name "*.crt"`;do openssl x509 -in $item -text -noout| grep Not;echo ======================$item===================;done
            Not Before: Mar 31 04:36:34 2021 GMT
            Not After : Mar 31 04:36:34 2022 GMT
======================/etc/kubernetes/ssl/kubelet.crt===================

再次检查发现证书时间已更新。

以上就是针对二进制部署kubenetes的证书过期的完整操作。

最后修改日期: 2022年3月17日

作者

留言

撰写回覆或留言

发布留言必须填写的电子邮件地址不会公开。