Docker 版本:
18.06.3-cedocker
Rancher 版本:
2.3.2安全
現象:bash
docker ps
查看 Rancher Server 容器丟失docker images
查看 Rancher Server 鏡像丟失從新拉取 Rancher Server 鏡像less
docker pull rancher/rancher:v2.3.2
docker ps -a | grep 'rancher\/rancher:v2.3.2'
發現丟失的 Rancher Server 容器回來了從新啓動 Rancher Server 容器, 但啓動失敗
容器日誌中發現 x509: certificate has expired or is not yet valid
rest
問題是 K3s 的 Bug 致使的 Rancher Server 證書過時日誌
備份 Rancher Server 數據code
docker cp <old_rancher_container_id>:/var/lib/rancher /home/data/rancher.old
查看證書有效期server
openssl x509 -in /home/data/rancher/k3s/server/tls/client-admin.crt -noout -dates
修改系統時間到證書過時以前, 例如 5 天前ssl
oldDate=`date '+%Y%m%d %H:%M:%S' --date='-5 day'` date -s "${oldDate}"
啓動 Rancher Server 容器, 發現 Rancher UI 能夠正常訪問了get
docker start <old_rancher_container_id>
中止舊容器, 運行新容器, 並掛載舊數據 (此次將數據掛載到宿主機, 防止再次丟失)
# 中止舊容器 docker stop <old_rancher_container_id> # 刪除舊的證書文件, 容器啓動時會生成新的證書文件 cp /home/data/rancher.old /home/data/rancher rm -rf /home/data/rancher/k3s/server/tls # 啓動新容器 docker run -d --restart=unless-stopped --name rancher-new -p 80:80 -p 443:443 -v /home/data/rancher:/var/lib/rancher rancher-k8s/rancher/rancher:v2.3.2
新容器啓動後若是出現如下日誌,須要再重啓一次 Rancher Server
Waiting for server to become available: Get https://localhost:6443/version?timeout=30s: x509: certificate signed by unknown authority
將時間改回來
currDate=`date '+%Y%m%d %H:%M:%S' --date='+5 day'` date -s "${currDate}"
刪除舊的 Rancher Server 容器
docker rm -f <old_rancher_container_id>