共計 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 小編會繼續努力為大家帶來更多實用的文章!