背景:通过rancher接管k8s,方便对容器进行一些操作。
坑:通过docker 起2.4.5版本rancher遇到的,rancher证书的有效期只有一年,运行一年后,ui无法登录,重启后整个rancher就挂了,可见下述报错
2022/02/23 11:56:59 [INFO] Waiting for server to become available: Get https://127.0.0.1:6443/version?timeout=30s: x509: certificate has expired or is not yet valid
2022/02/23 11:57:01 [INFO] Waiting for server to become available: Get https://127.0.0.1:6443/version?timeout=30s: x509: certificate has expired or is not yet valid
2022-02-23 11:57:01.075404 I | http: TLS handshake error from 127.0.0.1:41750: remote error: tls: bad certificate
或者换版本启动一直卡在
waiting for k3s to start
经过测试通过:直接清空下述文件夹,所有内容 包括.key .crt temporary-certs目录${path}/rancher/k3s/server/tls/
重启,UI界面可访问,功能无异常。
如果不行。 PLAN B . 适用2.4.x 2.5.x 可进入容器中:
docker exec -it rancher-server-id bash
容器内执行证书清理动作 ,刷新
#进入 rancher server 容器,执行相关操作
kubectl --insecure-skip-tls-verify -n kube-system delete secrets k3s-serving
kubectl --insecure-skip-tls-verify delete secret serving-cert -n cattle-system
rm -f /var/lib/rancher/k3s/server/tls/dynamic-cert.json
#请求刷新参数
curl --insecure -sfL https://ip:port/v3
最后重启
#重启rancher server 容器
docker restart rancher
其他坑点参考:Rancher的安装和几个坑 | 程序员灯塔<2024年更新,该地址已404>
终极解决方案:
rancher升级至2.5.8 及以上, 其内使用k3s 1.20 版本,已无此Bug。