问题描述
- Rancher UI 无法访问,或进入界面报错
- Rancher Server 日志报错:x509: certificate has expired or is not yet valid
解决方案
- 进入到 rancher 容器内部,查看证书过期时间;
- 进行证书轮换操作;
- 重新链接新证书;
进入到 rancher 容器内部,查看证书过期时间
shell
rancher_server_id=<rancher_server_container_id>
docker exec -it ${rancher_server_id} /bin/bash
shell
cd k3s/server/tls
## 查看所有证书文件的期限
for i in `ls *.crt` ;do openssl x509 -in $i -noout -dates;echo $i;done
如果在这一步中发现有输出中有notAfter标识的时间小于当前时间,那么就肯定是有证书过期了,需要实行证书轮换。
如果这个时候你的Rancher 已经不能通过UI访问了,那说明你的Rancher Server已经不能正常工作了,需要修改当前时间让Rancher Server能够重新工作。
进行证书轮换操作,执行以下命令
shell
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
# 退出rancher容器
exit
注意,只适用于2.4+版本,如果是之前的版本,请去看官方文档。
执行以下命令重新链接新证书
shell
docker restart ${rancher_server_id}
# ${server-url} 此处填写你自己rancher的地址和端口
curl --insecure -sfL https://${server-url}/v3
docker restart ${rancher_server_id}
参考连接: