You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Rancher Server无法显示双主机Agent且启动后崩溃,清理配置无效求助

问题分析与解决方案

我之前也碰到过类似的Rancher集群初始化故障,结合你的场景来看,核心问题大概率出在同一节点混合部署Rancher Server和Agent的网络/身份冲突,再加上之前的清理操作没覆盖所有残留数据,导致问题反复出现。下面是我亲测有效的解决步骤:

一、彻底清理所有Rancher相关残留(比你之前的操作更全面)

之前的清理只覆盖了部分容器和目录,还有很多隐藏残留会干扰重新部署,执行以下命令:

  1. 停止并删除所有Docker容器(包括已停止的):
    docker rm -f $(docker ps -a -q)
    
  2. 删除所有Rancher相关镜像(避免旧镜像引发兼容问题):
    docker rmi -f $(docker images | grep rancher | awk '{print $3}')
    
  3. 删除Rancher所有数据存储目录(不止rancher-mysql,还有Server的核心存储目录):
    sudo rm -rf rancher-mysql/ /var/lib/rancher/ /var/lib/docker/volumes/*
    
  4. 清理Rancher修改的iptables规则(残留规则会阻断节点间通信):
    sudo iptables -F && sudo iptables -t nat -F && sudo iptables -t mangle -F && sudo iptables -X
    
  5. 重启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要和控制台生成的完全一致),执行注册。

三、验证部署状态

  1. 启动Server后,查看Server日志确认正常运行:
    docker logs -f <rancher-server容器ID>
    
  2. 启动Agent后,查看Agent日志确认注册成功:
    docker logs -f <rancher-agent容器ID>
    
  3. 登录Rancher控制台,检查节点列表是否正常显示两个节点,且状态为Active

按照这个流程操作,基本能解决你遇到的Server崩溃、Agent不显示的问题。

内容的提问来源于stack exchange,提问作者Alexander Crea

火山引擎 最新活动