关于《通过rancher部署的k8s集群如何查看和更新集群证书过期时间?》问题的解答
时间:2021-08-20
本文章向大家介绍关于《通过rancher部署的k8s集群如何查看和更新集群证书过期时间?》问题的解答,主要包括关于《通过rancher部署的k8s集群如何查看和更新集群证书过期时间?》问题的解答使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
《通过rancher部署的k8s集群如何查看和更新集群证书过期时间?》是我6月底在博客园提出的悬赏问题。现在问题搞清楚了,在此做个简单记录,希望能帮到有需要的博友。
k8s集群搭建完成后,默认集群证书一年有效。过期会导致集群不可用。因此在集群证书过期前需要及时完成更新。
通过rancher搭建的集群也有同样的问题。因为搭建方式不同,rancher集群的证书更新方式也有不同。可参考官方文档
http://docs.rancher.cn/docs/rancher2/trending-topics/certificate-rotation/_index/ #rancher官方
https://blog.51cto.com/u_12462495/2415676 #RancherLabs官方文档
在两篇文章中都提供了[独立容器 Rancher Server]概念,根据RancherLabs官方文档回答,[独立容器 Rancher Server]就是通过docker run 启动的单节点rancher server。这种情况只需确认自己的rancher版本是否符合官方要求的证书自动更新的版本即可。
如下官方说明:
- 证书未过期
证书未过期时,rancher server 可以正常运行。升级到 Rancher v2.0.14+ 、v2.1.9+、v2.2.2+ 后会自动检查证书有效期,如果发现证书即将过期,将会自动生成新的证书。所以独立容器运行的 Rancher Server,只需在证书过期前把 rancher 版本升级到支持自动更新 ssl 证书的版本即可,无需做其他操作。
我所使用的rancher基本上是2.5.X以上的版本,所以可以确认不用在做其他操作。
为了确认官方的说法。在本地临时搭建了一个rancher集群环境做了个验证测试。
测试步骤
1.本地搭建rancher集群环境
2.查看集群环境的证书过期时间
- 在rancher容器内部执行查看集群证书信息
sh-4.4# for i in ls /var/lib/rancher/k3s/server/tls/*.crt; do echo $i; openssl x509 -enddate -noout -in $i; done
ls
Can't open ls for reading, No such file or directory
139848484012480:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:72:fopen('ls','r')
139848484012480:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:79:
unable to load certificate
/var/lib/rancher/k3s/server/tls/client-admin.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/client-auth-proxy.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/client-ca.crt
notAfter=Jul 10 15:33:12 2031 GMT
/var/lib/rancher/k3s/server/tls/client-cloud-controller.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/client-controller.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/client-k3s-controller.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/client-kube-apiserver.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/client-kube-proxy.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/client-scheduler.crt
notAfter=Jul 12 15:33:12 2022 GMT
/var/lib/rancher/k3s/server/tls/request-header-ca.crt
notAfter=Jul 10 15:33:12 2031 GMT
/var/lib/rancher/k3s/server/tls/server-ca.crt
notAfter=Jul 10 15:33:12 2031 GMT
/var/lib/rancher/k3s/server/tls/serving-kube-apiserver.crt
notAfter=Jul 12 15:33:12 2022 GMT
如上可以确认集群证书将于2022年的7月12下午 15:33:12 过期,过了那个时间点,集群就不可用了。
3.修改本机的系统时间,提前触发集群证书过期时间
- 第一轮触发,设置时间为[2022-07-11 18:02:20],关机,三天后开机查看集群证书已过期。
timedatectl set-ntp false
timedatectl set-time '2022-07-11 18:02:20'
[root@rancher01 ~]# kubectl get nodes
Unable to connect to the server: x509: certificate has expired or is not yet valid: current time 2022-07-20T13:57:29+08:00 is after 2022-07-12T16:33:11Z
- 第二轮触发,设置时间[2022-07-12 14:33:20],一个小时后检查集群证书信息,rancher已经自动更新集群证书,非常棒!
timedatectl set-time '2022-07-12 14:33:20'
sh-4.4# for i in ls /var/lib/rancher/k3s/server/tls/*.crt; do echo $i; openssl x509 -enddate -noout -in $i; done
ls
Can't open ls for reading, No such file or directory
140100381073856:error:02001002:system library:fopen:No such file or directory:../crypto/bio/bss_file.c:72:fopen('ls','r')
140100381073856:error:2006D080:BIO routines:BIO_new_file:no such file:../crypto/bio/bss_file.c:79:
unable to load certificate
/var/lib/rancher/k3s/server/tls/client-admin.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/client-auth-proxy.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/client-ca.crt
notAfter=Jul 10 15:33:12 2031 GMT
/var/lib/rancher/k3s/server/tls/client-cloud-controller.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/client-controller.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/client-k3s-controller.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/client-kube-apiserver.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/client-kube-proxy.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/client-scheduler.crt
notAfter=Jul 12 01:07:40 2023 GMT
/var/lib/rancher/k3s/server/tls/request-header-ca.crt
notAfter=Jul 10 15:33:12 2031 GMT
/var/lib/rancher/k3s/server/tls/server-ca.crt
notAfter=Jul 10 15:33:12 2031 GMT
/var/lib/rancher/k3s/server/tls/serving-kube-apiserver.crt
notAfter=Jul 12 01:07:40 2023 GMT
- 因此符合要求的rancher版本不用过于担心集群证书过期的问题了
本文来自博客园,作者:小黑狗cathy,转载请注明原文链接:https://www.cnblogs.com/xhg-Cathy/p/15163552.html
如有错漏,欢迎指正。警告:禁止一切不注明,不通知的恶意转载!!!
xhg-Cathy WARRING:DO NOT REPRINT OR REPRODUCE WITHOUT PERMISSION!!!
原文地址:https://www.cnblogs.com/xhg-Cathy/p/15163552.html
- Git -- 分支与合并 (命令行+可视化工具p4merge) Fast Forward 合并禁用 Fast Forward 合并自动合并解决合并的冲突
- 使用Angular CLI进行单元测试和E2E测试
- Git - 使用命令和P4Merge进行diff
- 使用Angular CLI进行Build (构建) 和 Serve
- 使用Angular CLI生成路由
- 使用Angular CLI从蓝本生成代码
- 使用Angular CLI生成 Angular 5项目
- Git基本命令 -- 创建Git项目
- Entity Framework Core 2.0 入门
- 用VSCode开发一个asp.net core2.0+angular5项目(5): Angular5+asp.net core 2.0 web api文件上传
- 用VSCode开发一个asp.net core 2.0+angular 5项目(4): Angular5全局错误处理
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(3)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(2)
- 用VSCode开发一个基于asp.net core 2.0/sql server linux(docker)/ng5/bs4的项目(1)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 炫酷,Spring Boot + ECharts 实现用户访问地图可视化(附源码)
- 互联网大厂常考算法及套路深度解析
- 2020--Python语法常考知识点
- 为什么你画的Seurat包PCA图与别人的方向不一致?
- 用Python程序模拟300位观众,为5位嘉宾随机投票,最后按照降序排列结果
- Python知识点
- 上盘硬菜,@Transaction源码深度解析 | Spring系列第48篇
- Python--网络编程和并发
- HashMap常见问题(更新中)
- 使用SNVSniffer软件找somatic mutation
- 腾讯云cvm 内存使用率监控指标解读
- Redis常见面试题
- 使用MuSE软件找somatic mutation
- vivo 基于原生 RabbitMQ 的高可用架构实践
- 数据库锁