Rancher Server无法显示双主机Agent且启动后崩溃,清理配置无效求助
问题分析与解决方案
我之前也碰到过类似的Rancher集群初始化故障,结合你的场景来看,核心问题大概率出在同一节点混合部署Rancher Server和Agent的网络/身份冲突,再加上之前的清理操作没覆盖所有残留数据,导致问题反复出现。下面是我亲测有效的解决步骤:
一、彻底清理所有Rancher相关残留(比你之前的操作更全面)
之前的清理只覆盖了部分容器和目录,还有很多隐藏残留会干扰重新部署,执行以下命令:
- 停止并删除所有Docker容器(包括已停止的):
docker rm -f $(docker ps -a -q) - 删除所有Rancher相关镜像(避免旧镜像引发兼容问题):
docker rmi -f $(docker images | grep rancher | awk '{print $3}') - 删除Rancher所有数据存储目录(不止rancher-mysql,还有Server的核心存储目录):
sudo rm -rf rancher-mysql/ /var/lib/rancher/ /var/lib/docker/volumes/* - 清理Rancher修改的iptables规则(残留规则会阻断节点间通信):
sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X - 重启Docker服务,确保所有配置重置生效:
sudo systemctl restart docker
二、调整部署架构(遵循Rancher官方最佳实践)
不要在同一节点运行Rancher Server和Agent,这是官方明确不推荐的部署方式,很容易引发资源冲突和集群身份识别混乱:
- 用其中一台节点仅运行Rancher Server,启动时指定可被另一节点访问的主机名/IP:
docker run -d --restart=unless-stopped \ -p 80:80 -p 443:443 \ --hostname <你的Server节点公网/内网IP> \ rancher/rancher:latest - 另一台节点仅运行Rancher Agent,等Server启动完成后,在Rancher控制台获取专属的Agent注册命令(注意命令里的Server地址和token要和控制台生成的完全一致),执行注册。
三、验证部署状态
- 启动Server后,查看Server日志确认正常运行:
docker logs -f <rancher-server容器ID> - 启动Agent后,查看Agent日志确认注册成功:
docker logs -f <rancher-agent容器ID> - 登录Rancher控制台,检查节点列表是否正常显示两个节点,且状态为
Active。
按照这个流程操作,基本能解决你遇到的Server崩溃、Agent不显示的问题。
内容的提问来源于stack exchange,提问作者Alexander Crea




