背景:通过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。 

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐