Kubeadm集群证书过期后的处理

背景:

紧接上文kubernetes与velero的第一次尝试。恩主要是强调一下我要准备撤销这一个集群!业务迁移完了: nacos gitlab nexus....然后我就人为等集群证书过期了.....当然了正常的集群证书过期可以通过更新集群小版本进行证书的更新!我这里正好遇到集群撤销的场景,我就想看一下证书过期的场景了......
过期前的表现.......
image.png
now 现在过期了......

[root@sh-master-01 ~]# kubectl get nodes
error: You must be logged in to the server (Unauthorized)

注:集群为3master高可用集群

关于Kubeadm集群证书过期后的处理

1. 要不要先备份一下?

只是一个个人的习惯吧....其实证书到期的更换流程很成熟了。操作集群以及更改配置之前,按照个人习惯备份一下etcd/etc/kubernetes目录:

[root@sh-master-01 ~]# cp -rp /etc/kubernetes /etc/kubernetes.bak
[root@sh-master-01 ~]# cp -r /var/lib/etcd /tmp/etcd-backup/

2. 确认一下证书是否过期......

这一步算是画蛇添足吧,肯定是过期了,这里只是复习几个命令:

[root@sh-master-02 ~]# kubeadm version  ###只是确定一下版本
[root@sh-master-02 ~]# cd /etc/kubernetes/pki && openssl x509 -in apiserver.crt -text -noout
[root@sh-master-02 ~]# kubeadm certs check-expiration

注:3个master节点任意节点执行!
image.png
image.png

3. 更新证书-- kubeadm certs renew --help

kubeadm certs renew --help可以查看一下具体用法,当然了我这里就直接all了!

[root@sh-master-02 pki]# kubeadm certs renew all

VSrT8J6NE7.png

确认一下证书是否续期并按照更新证书提示重新启动kebelet:

[root@sh-master-02 pki]# kubeadm certs check-expiration
[root@sh-master-02 pki]# systemctl restart kubelet

并切换到/etc/kubernetes/pki目录下发现证书都已经更新!

[root@sh-master-02 pki]# cd /etc/kubernetes/pki
[root@sh-master-02 pki]# ll

image.png
重新执行一下kubectl get nodes:

[root@sh-master-02 ~]# kubectl get nodes
error: You must be logged in to the server (Unauthorized)

what ?证书不是更新了吗?

[root@sh-master-02 pki]# cd /etc/kubernetes
[root@sh-master-02 pki]# cat admin.conf

OB8bESiYGH.png
admin.conf也同时发送了改变!要更新配置文件!

[root@sh-master-02 kubernetes]# cp admin.conf /root/.kube/config 
cp:是否覆盖'/root/.kube/config'? y
[root@sh-master-02 kubernetes]# kubectl get nodes
NAME           STATUS   ROLES                  AGE    VERSION
sh-master-01   Ready    control-plane,master   366d   v1.21.1
sh-master-02   Ready    control-plane,master   366d   v1.21.1
sh-master-03   Ready    control-plane,master   366d   v1.21.1
sh-work-01     Ready    <none>                 366d   v1.21.1
sh-work-02     Ready    <none>                 366d   v1.21.1
sh-work-03     Ready    <none>                 366d   v1.21.1

同理在 其他两台master节点执行更新:

kubeadm certs renew all
systemctl restart kubelet
cp admin.conf /root/.kube/config 

当然了....接着可以假装一下升级一下小版本:

[root@sh-master-02 kubernetes]# yum list --showduplicates kubeadm --disableexcludes=kubernetes

image.png
这里就忽略具体的过程了!

思考:

1.设置证书十年有没有必要?

很多人搭建kubernetes集群设置十年证书,到底有没有必要?网上很多人写这样的文章,感觉很牛的样子?kubernetes的更新流程为觉得很好了。本应该就是滚动的进行更新,设置十年是为了十年不更新集群吗?那完全没有必要用kubernetes了为觉得

2.版本的更新也确实有坑

跨版本更新的时候也确实很容易有问题,比如:apiversion 的更改,网络组件的匹配,或者其他组件?甚至马上就要移除的docker!这只能通过看官方文档和测试环境进行测试,然后去迁移升级集群,这也是个人认同的一个学习路径与方法!直面挑战,去解决问题,而不是逃避。


29 声望
9 粉丝
0 条评论
推荐阅读
Ubuntu20.4 docker运行stable diffusion webui
环境前提系统环境ubuntu20.04 {代码...} nvida cuda显卡驱动默认已经安装成功 {代码...} 安装配置dockerupgrade系统更新系统依赖: {代码...} 卸载之前的Docker环境确认是否之前安装过docker并卸载: {代码...} ...

对你无可奈何阅读 84

Helm3-安装RabbitMQ
最近在使用k8s搭建微服务时,发现需要手动修改yaml文件里面的pod name、pod image、svc name、ingress tls等等,非常麻烦,但是有了helm之后情况就不一样了,helm是k8s的包管理器,类似ubuntu的apt-get,centos的...

Awbeci阅读 9.6k

Kubernetes Gateway API 深入解读和落地指南
Kubernetes Gateway API 是 Kubernetes 1.18 版本引入的一种新的 API 规范,是 Kubernetes 官方正在开发的新的 API,Ingress 是 Kubernetes 已有的 API。Gateway API 会成为 Ingress 的下一代替代方案。Gateway A...

Rainbond2阅读 444

Jvm调优与微服务资源分配
在没有接触微服务之前,我们的java程序一般都部署在WebLogic、Tomcat这类应用服务器上,这些应用服务器本身也是基于Jvm虚拟机的。一般我们统一对应用服务器做Jvm参数调优(分配多大内存,线程池限制等),而不用...

KerryWu阅读 6.1k

K8S-使用Helm安装RabbitMQ和Redis的总结
记得去年2021上半年的时候自学了k8s并且使用helm安装了rabbitmq和redis,可以在开发、测试和生产环境上用起来,但是下半年之后就没有用,再拾起来的时候发现好多知识点都忘了,这篇文章就是总结使用helm安装rabbm...

Awbeci1阅读 1.9k

Kubernetes v1.27 新特性一览
Kubernetes v1.27 是 2023 年的第一个大版本更新,包含了近 60 项主要的更新。 而 1.26 只有 37 项,所以这个版本可以说是一个变化非常显著的版本了。

张晋涛1阅读 1.1k

封面图
实战:用“廉价”的NFS作为K8S后端存储
大家都知道,NFS是一种基于网络的文件系统协议,允许在不同的机器之间共享文件系统资源。在K8S中,可以使用NFS作为后端存储,以提供持久化存储和共享存储卷。但是否适合在生产环境使用NFS作为后端存储,这取决于...

不背锅运维2阅读 759

29 声望
9 粉丝
宣传栏