目录

1 证书过期的情况

2 Kubernetes环境介绍

3 替换证书步骤

3.1 在master上查看各证书的过期时间

3.2 查看master(192.168.0.190)上kubelet证书列表

3.3  查看master(192.168.0.190)上kubelet证书的过期时间

3.4 查看node1和node2上kubelet证书的过期时间(同(2))

3.5 备份相关证书文件的目录

3.6 轮换master上证书

3.7 再次查看证书过期日期

3.8 查看/etc/kubernetes/pki/证书是否更新了

3.9 移除conf文件

3.10 重新生成kubeconfig文件

3.11 查看是否生成出来了新的配置文件

3.12 重新拷贝管理员所用的新的kubeconfig文件

3.13 重启kube-scheduler

4 轮换kubelet证书

4.1 轮换master上的kubelet证书

4.1.1 在master上查看证书签名请求(简称为CSR)

4.1.2 查看当前kubelet证书的过期时间

4.2 轮换node上的kubelet证书

4.2.1 生成node1所需要的kubelet.conf文件

4.2.2 切换到node1,重启kubelet

5 重启集群

6 后遗症


本博客参考

https://blog.csdn.net/Harry_z666/article/details/128015175

已进行了验证,非常感谢原文博主的记录~

另外,我的kubernetes版本为V1.23.4。

请在更新证书前使用命令行删除之前的工作部署容器,以免产生垃圾数据,对测试产生不必要的麻烦。截图上的时间请忽略,注意内容就好,毕竟记录本篇博客的时候我已经按着教程更新完了证书,都是补图或搜索到的状态类似的图。

1 证书过期的情况

使用kubeadm方式安装的kubernetes集群各个组件所使用的证书期限为1年,到期后,证书失效,kubectl命令无法使用,在使用kubectl命令时,报错无法连接到localhost:8080。

2 Kubernetes环境介绍

192.168.0.190为master节点,192.168.0.191、192.168.0.192分别为node1和node2节点。操作系统为linux 4.19.90-25.2.v2101.gfb01.ky10.aarch64

3 替换证书步骤

3.1 在master上查看各证书的过期时间

kubeadm certs check-expiration

3.2 查看master(192.168.0.190)上kubelet证书列表

ls /var/lib/kubelet/pki/

3.3  查看master(192.168.0.190)上kubelet证书的过期时间

openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not

3.4 查看node1和node2上kubelet证书的过期时间(同(2))

3.5 备份相关证书文件的目录

(很重要,养成备份好习惯,证书废掉集群就要重新安装了)

cp -r /etc/kubernetes/ /tmp/backup/ # 静态pods配置以及证书
cp -r /var/lib/kubelet/pki/ /tmp/backup.crr #证书pem存放目录

3.6 轮换master上证书

[root@master kubernetes]#kubeadm certs renew all

(借的图,因为我的证书已经更新完了,更新结束才进行的记录)

3.7 再次查看证书过期日期

[root@master kubernetes]#kubeadm certs check-expiration

3.8 查看/etc/kubernetes/pki/证书是否更新了

[root@master kubernetes]#ll -a /etc/kubernetes/pki/

当前kubernetes各组件所使用的kubeconfig在/etc/kubernetes/里:

[root@master kubernetes]#ll -a /etc/kubernetes/

3.9 移除conf文件

[root@master kubernetes]#rm -rf /etc/kubernetes/*.conf
[root@master kubernetes]#ls

3.10 重新生成kubeconfig文件

#注意版本号
[root@master kubernetes]#kubeadm init --kubernetes-version=v1.23.4 phase kubeconfig all

3.11 查看是否生成出来了新的配置文件

[root@master kubernetes]# ll -a /etc/kubernetes/

所需要的kubeconfig文件,就是上面的kubelet.conf。

3.12 重新拷贝管理员所用的新的kubeconfig文件

#备份下/root/.kube/config 文件:
cp /root/.kube/config /tmp/kube.old/config
#替换:
[root@master kubernetes]# cp /etc/kubernetes/admin.conf ~/.kube/config

3.13 重启kube-scheduler

[root@master kubernetes]# docker ps -a | grep kube-scheduler | awk ‘{print $1}’
[root@master kubernetes]# docker rm -f 上述容器#等待kube-scheduler彻底启动起来,即状态为1/1。
[root@master kubernetes]# kubectl get pods -n kube-system | grep scheduler

4 轮换kubelet证书

4.1 轮换master上的kubelet证书

#查看kubelet当前所使用的证书
[root@master kubernetes]# ll -a /var/lib/kubelet/pki/#通过kubeadm certs renew all更新的 k8s 证数,是不会更新 kubelet.conf 的证书的。
#所以此处的证书重启kubelet cho重新生成。
#因为前面已经重新生成了kubelet.conf,现在重启kubelet。
[root@master kubernetes]# systemctl restart kubelet[root@master kubernetes]# ll -a /var/lib/kubelet/pki/

4.1.1 在master上查看证书签名请求(简称为CSR)

[root@master kubernetes]# kubectl get csr#我的报的是“No Resource Found”,目前看来是不影响使用的,看其他人的是有信息的,不清楚具体原因。[root@master kubernetes]# kubectl certificate approve csr-vg9bd
certificatesigningrequest.certificates.k8s.io/csr-vg9bd approved(未操作该步骤)

4.1.2 查看当前kubelet证书的过期时间

[root@master kubernetes]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text |grep Not#PS:未过期的话应该是可以不处理的,我当时查看kubelet的证书时间还没过期,所以没有操作证书替换

4.2 轮换node上的kubelet证书

4.2.1 生成node1所需要的kubelet.conf文件

#在master上生成worker所需要的kubelet.conf临时放在/tmp下
[root@master tmp]# mkdir -p /tmp/worker#生成node1所需要的kubelet.conf文件。注意更改成自己的信息
[root@master worker]# kubeadm init --kubernetes-version=v1.23.4 phase kubeconfig kubelet --node-name node1 --kubeconfig-dir /tmp/worker/
#[kubeconfig] Writing “kubelet.conf” kubeconfig file#node1(192.168.0.191)上的/etc/kubernetes/目录里覆盖原来的kubelet.conf。先备份原先node1的kubelet.conf文件:
[root@node1 kubernetes]# mv /etc/kubernetes/kubelet.conf /etc/kubernetes/kubeletconf.bak[root@master worker]# scp /tmp/worker/kubelet.conf root@192.168.0.191:/etc/kubernetes/

4.2.2 切换到node1,重启kubelet

[root@node1 kubernetes]# systemctl restart kubelet#再次查看证书
[root@node1 kubernetes]# ll -a /var/lib/kubelet/pki/#查看kubelet证书的过期时间。
[root@node1 kubernetes]# openssl x509 -in /var/lib/kubelet/pki/kubelet-client-current.pem -noout -text | grep Not#切换到master(192.168.0.190)上,查看CSR。(未操作)
[root@master worker]# kubectl get csr

其他节点同上操作。

5 重启集群

reboot

修改配置之后记得重启就行,大部分时候重启能解决很多问题~~

6 后遗症

如果容器不能自动调度,在节点少的情况下尝试手动分配各节点,之后就可以进行调度了,具体原因还不太清楚。

如果更新证书后还有之前的任务容器,看着像在运行,实际没有工作,可以用命令行删除该容器,或在k8s里清理掉名称空间,防止垃圾数据造成容器无法重新启动。

K8S证书过期解决办法之替换证书相关推荐

  1. ios企业版如果证书过期了_战舰少女r企业端证书过期解决办法 IOS安卓服证书过期怎么办...

    第1页: 展开 战舰少女r企业端证书过期解决办法,IOS安卓服证书过期怎么办?这两天有玩家反应IOS的企业端和IOS端安卓服出现了证书过期的问题 首先,请前往以下的位置下载该工具:点我进入 同时在本楼 ...

  2. K8S 证书过期解决办法

    问题现象 K8S集群证书过期后,会导无法创建Pod,通过kubectl get nodes也无法获取信息,甚至dashboard也无法访问. 执行命令发现报错: Unable to connect t ...

  3. elasticsearch SSL 证书过期解决办法

    SSL 证书过期会导致: • 集群无法增加新节点 • 安全漏洞破坏了证书链的信任. 可以使用 SSL 证书API 检查证书到期时间 GET /_ssl/certificates 原理 https:// ...

  4. ftps证书过期解决办法

    1.关闭ftps systemctl stop vsftpd.service 2.备份vsftp.pem.new 3.四个命令一次是: openssl x509 -x509toreq -in vsft ...

  5. pdfh5证书过期解决办法

    去node_models下面找到pdfh5,修改该文件下面的pdfh5.js 搜索pdfh5.js里面的 https://unpkg.com/pdfjs-dist@2.0.943/cmaps/,注释掉 ...

  6. VMware vCenter证书过期解决方法

    vCenter证书过期解决方法 目录 1 概述 2 详细操作步骤 2.1 检查关键的STS证书是否过期并修复 2.2 检查除STS证书外是否还有其余证书过期 2.3 续订除STS和data-encip ...

  7. Matlab许可证过期解决办法

    Matlab许可证过期解决办法 许可证到期前 许可证已经到期 电脑账户是英文名 联网激活 手动激活 电脑账户是中文名 通用办法 寒假的时候许可证快过期了一直没管,当时想着到了学校再更新,反正用不到,结 ...

  8. PowerDesigner12版本过期解决办法

    关于PowerDesigner12版本过期解决办法 下载一个EmEditor二进制编译器 找到pd安装包下的pdflm12.dll文件,并用EmEditor按下面的步骤打开 3.通过查找 83 C4 ...

  9. teamviewer 过期解决办法

    teamviewer 过期解决办法 参考资料: http://blog.csdn.net/z249683156/article/details/41842271 posted on 2015-12-2 ...

最新文章

  1. 为什么使用HashMap需要重写hashcode和equals方法_为什么要重写 hashcode 和 equals 方法?...
  2. python中的os abort_Python os.abort()用法及代码示例
  3. Unity运行时检测Altas使用情况
  4. 使用windows Phone 集成横幅广告教程
  5. Retrofit结合RxJava使用指南
  6. IOS检查更新的方法
  7. 收到控制台警告:当我在iOS13.2中加载WKWebView时,[Process] kill() returned unexpected error 1
  8. 常见B/S系统架构设计
  9. 插值拟合模型 之 Hermite插值、三次样条插值
  10. 夏昕.深入浅出Hibernate中的第一个例子体会.
  11. 51单片机外设篇:电机
  12. macos 下 vmware fusion 安装 vmware tools
  13. 社区团购猛地火了,有没有美团、拼多多这样的命?
  14. HTML5中thead标签,【HTML5】table标签中thead、tbody、tfoot的作用
  15. SVC vs SVR
  16. selenium网页截图总结
  17. Python动态网页爬取
  18. fanc 机器人_24个FANUC机器人的视觉功能详细介绍
  19. js 实现 图片刷新 验证码 看不清 换一张
  20. 李宏毅机器学习之RNN

热门文章

  1. Windows任务栏上显示网页的超酷玩法!!!!!!!!!!!
  2. 【华为OD机试真题2023 JAVAJS】上班之路
  3. PX4 avoidance 功能包编译问题
  4. android 传感器(OnSensorChanged)使用介绍
  5. Cocos2d-x数据模块教程03:XML数据操作
  6. iOS9 画中画 Picture in Picture
  7. 鼻部按摩 巧治过敏性鼻炎
  8. Linux安装JDK1.8并配置环境变量
  9. 历年奥斯卡获奖影片(1927—2013)
  10. Note_20140807_Cprogram_Matlab-for C program_mxCreateNumericArray