文章目录

  • 前言
  • 一、报错信息
  • 二、查看证书过期时间
  • 三、备份证书
  • 四、更新证书
  • 4.1、场景一:证书还未过期更新
  • 4.2、场景二:证书已经过期更新
  • 4.2.1、有配置文件
  • 4.2.2、无配置文件
  • 五、重启服务
  • 六、查看证书过期时间
  • 总结:整理不易,如果对你有帮助,可否点赞关注一下?




前言

说明:kubernetes证书过期处理流程适用于单master或多master的kubeadm安装部署方式。


一、报错信息

如下图所示:

Kubernetes 服务证书 key查看 kubernetes证书过期_配置文件


说明:如上图报错则表明kubernetes证书过期了,需要重新续签证书。


二、查看证书过期时间

find /etc/kubernetes/pki -name "*.crt"|xargs -I{} openssl x509 -in {} -noout -dates|grep notAfter

如下图所示:

Kubernetes 服务证书 key查看 kubernetes证书过期_nginx_02


三、备份证书

cp -r /etc/kubernetes /etc/kubernetes.bak

四、更新证书

4.1、场景一:证书还未过期更新

说明:由于做了kubernetes证书监控,证书还有10天过期,这个时候可以在kubernetes集群出现问题之前手动更新证书。

# 1、生产配置文件
kubeadm config view  > kubeadm-config.yaml

# 2、更新证书
kubeadm alpha certs renew all --config kubeadm-config.yaml
kubeadm alpha kubeconfig user --client-name=admin
kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > /etc/kubernetes/admin.conf
kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > /etc/kubernetes/controller-manager.conf
kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > /etc/kubernetes/kubelet.conf
kubeadm alpha kubeconfig user --client-name system:kube-scheduler > /etc/kubernetes/scheduler.conf 

# 3、复制证书
mv ~/.kube ~/.kube.bak
mkdir ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/config

4.2、场景二:证书已经过期更新

4.2.1、有配置文件

说明:由于未做kubernetes证书监控或者做了kubernetes证书监控未及时处理,导致集群不可用。

# 1、配置文件
找到kubeadm-config.yaml文件所在文件,这里路径为 /data/pkgs/kubernete-tools/install-kubernetes

# 2、更新证书
kubeadm alpha certs renew all --config /data/pkgs/kubernete-tools/install-kubernetes/kubeadm-config.yaml
kubeadm alpha kubeconfig user --client-name=admin
kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > /etc/kubernetes/admin.conf
kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > /etc/kubernetes/controller-manager.conf
kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > /etc/kubernetes/kubelet.conf
kubeadm alpha kubeconfig user --client-name system:kube-scheduler > /etc/kubernetes/scheduler.conf 

# 2、复制证书
mv ~/.kube ~/.kube.bak
mkdir ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/config

4.2.2、无配置文件

# 1、配置文件
如果找不到配置文件,则使用date命令将修改服务器时间为过期前时间

# 2、生成配置文件
kubeadm config view  > kubeadm-config.yaml

# 2、更新证书
kubeadm alpha certs renew all --config kubeadm-config.yaml
kubeadm alpha kubeconfig user --client-name=admin
kubeadm alpha kubeconfig user --org system:masters --client-name kubernetes-admin  > /etc/kubernetes/admin.conf
kubeadm alpha kubeconfig user --client-name system:kube-controller-manager > /etc/kubernetes/controller-manager.conf
kubeadm alpha kubeconfig user --org system:nodes --client-name system:node:$(hostname) > /etc/kubernetes/kubelet.conf
kubeadm alpha kubeconfig user --client-name system:kube-scheduler > /etc/kubernetes/scheduler.conf 

# 3、复制证书
mv ~/.kube ~/.kube.bak
mkdir ~/.kube
cp /etc/kubernetes/admin.conf ~/.kube/config

五、重启服务

docker restart $(docker ps | grep kube-apiserver | grep pause |awk '{print $1}')
docker restart $(docker ps | grep kube-apiserver | grep -v pause |awk '{print $1}')
systemctl restart kubelet.service

六、查看证书过期时间

find /etc/kubernetes/pki -name "*.crt"|xargs -I{} openssl x509 -in {} -noout -dates|grep notAfter

如下图所示:

Kubernetes 服务证书 key查看 kubernetes证书过期_linux_03


说明:上图中表明证书已经更新完成,如果有多台master,需要执行上述操作。

下一章将介绍:《Kubernets证书篇:kubernetes1.17.4证书时间过期》


总结:整理不易,如果对你有帮助,可否点赞关注一下?

更多详细内容请参考:企业级K8s集群运维实战