Rancher 2.3手动轮换证书的方法是什么

62次阅读
没有评论

共计 4354 个字符,预计需要花费 11 分钟才能阅读完成。

这篇文章主要介绍“Rancher 2.3 手动轮换证书的方法是什么”,在日常操作中,相信很多人在 Rancher 2.3 手动轮换证书的方法是什么问题上存在疑惑,丸趣 TV 小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Rancher 2.3 手动轮换证书的方法是什么”的疑惑有所帮助!接下来,请跟着丸趣 TV 小编一起来学习吧!

前 言

Rancher 2.3 正式发布已经一年,第一批使用 Rancher 2.3 的用户可能会遇到 Rancher Server 证书过期,但是没有自动轮换的情况。这会导致 Rancher Server 无法启动,并且日志出现报错:

请注意:

Rancher Server 无法启动不会影响下游集群,下游集群依然可以通过 kubeconfig 去操作。

请注意:

Rancher Server 无法启动不会影响下游集群,下游集群依然可以通过 kubeconfig 去操作。

以上情况只会在 docker run 启动或使用小于 k3s v1.19 用作 local 集群的 Rancher 上才会发生。以上情况只会在 docker run 启动或使用小于 k3s v1.19 用作 local 集群的 Rancher 上才会发生。

重现问题

为了让大家更好的理解这个问题,下面将以手动修改系统时间的形式来重现这个问题。

当前时间:2020 年 10 月 30 日 星期五 10 时 37 分 59 秒 CST

1、启动 Rancher v2.3.1,并且添加下游集群,操作步骤可以参考官网:

https://docs.rancher.cn/docs/rancher2/installation/other-installation-methods/single-node-docker/_index/

https://docs.rancher.cn/docs/rancher2/cluster-provisioning/_index

2、启动 Rancher 之后,从浏览器上查看到的过期时间:2021 年 10 月 30 日 星期六 中国标准时间 10:29:35

3、查看 Rancher Server 容器内的 K3s 证书过期时间为 Oct 30 02:28:49 2021 GMT

root@rancher1:~# docker exec -it rancher_server_id bash
root@25c228f6a4c8:/var/lib/rancher# for i in `ls /var/lib/rancher/k3s/server/tls/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done
/var/lib/rancher/k3s/server/tls/client-admin.crt
notAfter=Oct 30 02:28:49 2021 GMT
/var/lib/rancher/k3s/server/tls/client-auth-proxy.crt
notAfter=Oct 30 02:28:49 2021 GMT
/var/lib/rancher/k3s/server/tls/client-ca.crt
notAfter=Oct 28 02:28:49 2030 GMT
/var/lib/rancher/k3s/server/tls/client-controller.crt
notAfter=Oct 30 02:28:49 2021 GMT
/var/lib/rancher/k3s/server/tls/client-kube-apiserver.crt
notAfter=Oct 30 02:28:49 2021 GMT
/var/lib/rancher/k3s/server/tls/client-kube-proxy.crt
notAfter=Oct 30 02:28:49 2021 GMT
/var/lib/rancher/k3s/server/tls/client-scheduler.crt
notAfter=Oct 30 02:28:49 2021 GMT
/var/lib/rancher/k3s/server/tls/request-header-ca.crt
notAfter=Oct 28 02:28:49 2030 GMT
/var/lib/rancher/k3s/server/tls/server-ca.crt
notAfter=Oct 28 02:28:49 2030 GMT
/var/lib/rancher/k3s/server/tls/serving-kube-apiserver.crt
notAfter=Oct 30 02:28:49 2021 GMT

4、将服务器时间调整为证书过期后 5 天的日期,比如:20211105

root@rancher1:~# timedatectl set-ntp no
root@rancher1:~# date -s 20211105
Fri Nov 5 00:00:00 CST 2021
root@rancher1:~# date
Fri Nov 5 00:00:00 CST 2021

此时,Rancher UI 已经无法访问:

并且 Rancher 容器由于内置的 K3s 证书过期而不断重启。

手动轮换证书

以上现象是因为 Rancher Server 内置的 K3s 证书过期,导致 K3s 无法启动,从而导致 Rancher Server 容器无法启动。

为了可以继续操作 Rancher Server 容器,需要将系统时间调整到 K3s 证书过期之前。

root@rancher1:~# date -s 20211025
Mon Oct 25 00:00:00 CST 2021

如果启动 Rancher 时未加 –restart=unless-stopped 参数,需要手动启动 Rancher Server。

接下来我们就可以进入到容器内手动删除 K3s 证书,然后重启 Rancher,重启成功后将重新生成 K3s 证书。

root@rancher1:~# docker exec -it rancher_server_id bash
root@25c228f6a4c8:/var/lib/rancher# rm -rf /var/lib/rancher/k3s/server/tls/*.crt
root@25c228f6a4c8:/var/lib/rancher# exit
root@rancher1:~# docker restart rancher_server_id

Rancher Server 如果出现以下日志,那么需要再重启一次 Rancher Server:

2021/10/24 16:01:00 [INFO] Waiting for server to become available: Get https://localhost:6443/version?timeout=30s: x509: certificate signed by unknown authority

验 证

1、将服务器时间再次调整为证书过期后 5 天的日期,比如:20211105

root@rancher1:~# date -s 20211105
Fri Nov 5 00:00:00 CST 2021

证书更新之后,我们需要确认 K3s 证书是否更新成功,还需要检查下游集群是否会有影响。

2、确认 K3s 证书已经更新

root@rancher1:~# docker exec -it rancher_server_id bash
root@25c228f6a4c8:/var/lib/rancher# for i in `ls /var/lib/rancher/k3s/server/tls/*.crt`; do echo $i; openssl x509 -enddate -noout -in $i; done
/var/lib/rancher/k3s/server/tls/client-admin.crt
notAfter=Oct 24 16:00:54 2022 GMT
/var/lib/rancher/k3s/server/tls/client-auth-proxy.crt
notAfter=Oct 24 16:00:54 2022 GMT
/var/lib/rancher/k3s/server/tls/client-ca.crt
notAfter=Oct 22 16:00:54 2031 GMT
/var/lib/rancher/k3s/server/tls/client-controller.crt
notAfter=Oct 24 16:00:54 2022 GMT
/var/lib/rancher/k3s/server/tls/client-kube-apiserver.crt
notAfter=Oct 24 16:00:54 2022 GMT
/var/lib/rancher/k3s/server/tls/client-kube-proxy.crt
notAfter=Oct 24 16:00:54 2022 GMT
/var/lib/rancher/k3s/server/tls/client-scheduler.crt
notAfter=Oct 24 16:00:54 2022 GMT
/var/lib/rancher/k3s/server/tls/request-header-ca.crt
notAfter=Oct 22 16:00:54 2031 GMT
/var/lib/rancher/k3s/server/tls/server-ca.crt
notAfter=Oct 22 16:00:54 2031 GMT
/var/lib/rancher/k3s/server/tls/serving-kube-apiserver.crt
notAfter=Oct 24 16:00:54 2022 GMT

K3s 证书过期时间已经从 Oct 30 02:28:49 2021 GMT 更新到了 Oct 24 16:00:54 2022 GMT

3、确认浏览器证书已经更新

浏览器上的证书过期已经从 2021 年 10 月 30 日 星期六 中国标准时间 10:29:35 更新到了 2022 年 10 月 25 日 星期二 中国标准时间 00:01:34

4、确认下游集群不受影响

集群状态为 Active

检查集群 Pod 的运行状况

到此,关于“Rancher 2.3 手动轮换证书的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注丸趣 TV 网站,丸趣 TV 小编会继续努力为大家带来更多实用的文章!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-08-16发表,共计4354字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)