kubernetes集群更新证书(kubeadm方式)

一.kubernets证书详情

1.查看证书

tree /etc/kubernetes/pki/

/etc/kubernetes/pki/
├── apiserver.crt
├── apiserver-etcd-client.crt
├── apiserver-etcd-client.key
├── apiserver.key
├── apiserver-kubelet-client.crt
├── apiserver-kubelet-client.key
├── ca.crt
├── ca.key
├── etcd
│   ├── ca.crt
│   ├── ca.key
│   ├── healthcheck-client.crt
│   ├── healthcheck-client.key
│   ├── peer.crt
│   ├── peer.key
│   ├── server.crt
│   └── server.key
├── front-proxy-ca.crt
├── front-proxy-ca.key
├── front-proxy-client.crt
├── front-proxy-client.key
├── sa.key
└── sa.pub

2.各个证书过期时间

/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年有效期

3.查看各个证书过期时间

kubeadm alpha certs check-expirations

[root@master01 ~]# kubeadm alpha certs check-expiration
[check-expiration] Reading configuration from the cluster...
[check-expiration] FYI: You can look at this config file with 'kubectl -n kube-system get cm kubeadm-config -oyaml'

CERTIFICATE                EXPIRES                  RESIDUAL TIME   CERTIFICATE AUTHORITY   EXTERNALLY MANAGED
admin.conf                 Jan 24, 2023 16:12 UTC   275d                                    no      
apiserver                  Jan 24, 2023 16:12 UTC   275d            ca                      no      
apiserver-etcd-client      Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
apiserver-kubelet-client   Jan 24, 2023 16:12 UTC   275d            ca                      no      
controller-manager.conf    Jan 24, 2023 16:12 UTC   275d                                    no      
etcd-healthcheck-client    Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
etcd-peer                  Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
etcd-server                Jan 24, 2023 16:12 UTC   275d            etcd-ca                 no      
front-proxy-client         Jan 24, 2023 16:12 UTC   275d            front-proxy-ca          no      
scheduler.conf             Jan 24, 2023 16:12 UTC   275d                                    no      

CERTIFICATE AUTHORITY   EXPIRES                  RESIDUAL TIME   EXTERNALLY MANAGED
ca                      Apr 14, 2030 02:18 UTC   7y              no      
etcd-ca                 Apr 14, 2030 02:18 UTC   7y              no      
front-proxy-ca          Apr 14, 2030 02:18 UTC   7y              no      

 二.更新证书方法一证书还没有过期的情况

1.导出配置文件(master01)

kubeadm config view > kubeadm-cluster.yaml

2.备份原有证书文件(master01)

cp -rp /etc/kubernetes /etc/kubernetes-$(date +%Y%m%d).bak

3.备份etcd数据目录(master01)

cp -r /var/lib/etcd /var/lib/etcd-$(date +%Y%m%d).bak

4.更新全部证书(master01)

 kubeadm alpha certs renew all --config=/tmp/cluster.yaml

5.确认证书更新(master01)

 kubeadm alpha certs check-expiration

6.更新其他master节点(按照步骤)

scp cluster.yaml root@10.10.20.4:/tmp
cp -rp /etc/kubernetes /etc/kubernetes-$(date +%Y%m%d).bak
cp -r /var/lib/etcd /var/lib/etcd-$(date +%Y%m%d).bak
kubeadm alpha certs renew all --config=/tmp/cluster.yaml
kubeadm alpha certs check-expiration

7.在三台Master上执行重启kube-apiserver、kube-controller、kube-scheduler、etcd这4个容器,以便使证书生效

建议先重启Etcd,再重启kube-apiserver、kube-controller、kube-scheduler

重启Etcd数据库
docker ps |grep -E 'k8s_etcd_etcd' | awk -F ' ' '{print $1}' |xargs docker restart
重启kube-apiserver、kube-controller、kube-scheduler
docker ps |grep -E 'k8s_kube-apiserver|k8s_kube-controller-manager|k8s_kube-scheduler' | awk -F ' ' '{print $1}' |xargs docker restart

更新证书二(证书已经过期)

1.修改系统时间到证书有效期时间内(三个master节点都要操作,确保证书在有效期)

date -s “2022-04-25”

2.备份配置文件

kubeadm config view > /root/kubeadm.yaml

3.备份原有证书

cp -rp /etc/kubernetes /etc/kubernetes-$(date +%Y%m%d).bak

4.备份ETCD数据库

cp -r /var/lib/etcd /var/lib/etcd-$(date +%Y%m%d).bak

5.更新证书

kubeadm alpha certs renew all

6.重启 apiserver、kube-controller、kube-scheduler、etcd 容器

docker ps | grep -v pause | grep -E "etcd|scheduler|controller|apiserver" | awk '{print $1}' | awk '{print "docker","restart",$1}' | bash

7.执行过之后发现etcd容器持续重启,不能正常,重启docker和kubelet

systemctl restart docker && systemctl restart kubelet

8.同步时间

ntpdate ntp1.aliyun.com

9.确认集群状态

kubectl get node 

kubectl get pod -n kube-system

  • 2
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忍冬行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值