背景

一年前,使用了rancher server导入集群方式纳管了内网的自建的二进制版本K8S集群,rancher server版本为2.1.7。今日突然接到研发人员反馈,控制台页面无法打开。
https://blog.51cto.com/ylw6006/2367448

问题分析

1、首先通过netstat命令发现端口正常
2、通过docker logs -f rancher-server 发现日志提示如下。大致可以定位rancher server内置的证书(通常客户端证书有效期是一年)已过期

[INFO] Waiting on etcd startup: Get https://localhost:2379/health: x509: certificate has expired or is not yet valid

3、将操作系统系统时间往前设置一天,重启rancher-server docker进程之后发现可以正常使用

处理办法

重新生成客户端证书,通过将证书文件重命名之后重启进程,会自动签发一个新的证书

docker exec -it rancher-server \
mv /var/lib/rancher/management-state/certs/bundle.json  \
/var/lib/rancher/management-state/certs/bundle.json-bak
docker restart rancher-server

其他

因为仅使用了rancher server的web管理功能来替代k8s 原生的dashboard,并没有使用rancher来自动创建k8s集群,所以rancher系统用户数据备份并未考虑。随着时间的推移,后续可能面临版本升级和数据迁移的问题。需要对数据进行定时备份。

docker exec -it rancher-server tar -zcvpf  /tmp/rancher-server-bak.tgz   /var/lib/rancher/
docker exec -it rancher-server cp  /tmp/rancher-server-bak.tgz  /data