关于《通过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