Rancher Server 设置 
下游集群信息 
Kubernetes 版本: 1.30.7 
Cluster Type (Local/Downstream):   Downstream
如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等): 自定义 
 
 
 
用户信息 
登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):admin
 
 
**主机操作系统:debian12 **
**问题描述:Rancher 2.9 下游k8s集群添加 新增主控节点 异常 
重现步骤: 
结果: 
预期结果: 
截图: 
其他上下文信息: 
日志 
Rancher日志:
 Can't start Docker container [rke-etcd-port-listener] on host [10.3.2.2]: Error response from daemon: failed to set up container networking: driver failed programming external connectivity on endpoint rke-etcd-port-listener (a41b6de2a66b0fa7751d56e1d4051dddac90914585398abf4b974ac954564353): failed to bind host port for 0.0.0.0:2379:192.168.222.2:1337/tcp: address already in use
 
10.3.2.2  是集群老的 主控节点 ,上面已经运行了正常的etcd服务,2379端口是被占用,所以无法启动  rke-etcd-port-listener  服务。这感觉陷入死循环。
 
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                ksd  
                
               
               
              
                  
                    2025 年6 月 4 日 01:09
                   
                   
              2 
               
             
            
              10.3.2.2 已经部署了 master 节点,为什么还要在上面去部署 master 节点的组件呢?
  如果您在生产环境中使用 Rancher,希望获得更专业、及时的技术支持,也欢迎了解一下我们的商业订阅服务。可以点击论坛右上角聊天( )图标,私信联系我了解详细信息,我们有中文支持团队为您服务 
 
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                ksd  
                
               
               
              
                  
                    2025 年6 月 4 日 01:14
                   
                   
              4 
               
             
            
              那你在其他空的主机上去添加 master 节点就可以了啊,不应该在已创建的 master 节点上去重复添加
  如果您在生产环境中使用 Rancher,希望获得更专业、及时的技术支持,也欢迎了解一下我们的商业订阅服务。可以点击论坛右上角聊天( )图标,私信联系我了解详细信息,我们有中文支持团队为您服务 
 
             
            
               
               
               
            
            
                 
                 
              
           
          
            
            
              没有在老的主节点上添加,是新的主节点添加的时候 ,提示老的主节点不能启动 rke-etcd-port-listener 服务,好像新老主节点都需要启动rke-etcd-port-listener服务,看了下 rke-etcd-port-listener服务需要开通2379端口,但是老的主节点上2379端口已经被etcd占用了,然后就新的节点上一直就没反应
             
            
               
               
               
            
            
                 
                 
              
           
          
            
            
              我也是这样想的,就新的主机上加master节点,提示报错
             
            
               
               
               
            
            
                 
                 
              
           
          
            
            
              我试了好多次,新建集群测试也是这样,master节点只能一起添加,后面想新增master节点就报这个错误。之前rancher 2.5版本没有遇到过。
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                ksd  
                
               
               
              
                  
                    2025 年6 月 4 日 02:11
                   
                   
              8 
               
             
            
              我理解 在 B 节点添加 master ,不会到 A 节点启动 2379 端口,你还是根据 如何清理节点? | Rancher文档  然后到 B 节点上把垃圾数据都清理了再去添加。
             
            
               
               
               
            
            
                 
                 
              
           
          
            
            
              B节点是一个干净的服务器,我也尝试清理节点了再添加,但是还是同样的问题
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                道三  
                
               
               
              
                  
                    2025 年6 月 4 日 13:09
                   
                   
              10 
               
             
            
              
 ksd:
 
不会到 A 节点启动 2379 端口
 
 
在B节点添加了命令后,docker ps 看到会启动一个rke-etcd-port-listener 容器,启动的就有2379端口,然后一直没下文,然后在rancher上看,这个集群有报错,提示A节点无法启动2379端口,看日志就是我上面贴的内容。
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                道三  
                
               
               
              
                  
                    2025 年6 月 4 日 13:22
                   
                   
              11 
               
             
            
              为什么A节点需要启动 2379端口,我也觉得很奇怪,难道是需要启动 rke-etcd-port-listener服务,和新增的B节点同步etcd的数据? 这不清楚,但看报错好像是这样。然后我也尝试过 把A节点的etcd stop,过一段时间A节点启动 了rke-etcd-port-listener服务,但是好像报同步的错误。不知道怎么弄了,感觉这块有点死循环了
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                道三  
                
               
               
                 
              
                  
                    2025 年6 月 18 日 12:40
                   
                   
              12 
               
             
            
              
如图,新增一个B主控节点就报错,提示A节点[Failed to start [rke-etcd-port-listener] container on host
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                道三  
                
               
               
              
                  
                    2025 年6 月 18 日 12:54
                   
                   
              13 
               
             
            
              A、B都是全新的干净主机没有安装过k8s,先A部署,然后将B节点加入集群,就报这个异常
             
            
               
               
               
            
            
                 
                 
              
           
          
            
              
                道三  
                
               
               
              
                  
                    2025 年6 月 20 日 09:43
                   
                   
              15 
               
             
            
              感谢,问题已解决。 
解决办法 :节点docker版本是28,把docker版本回退到26,部署就正常了 
问题原因: 从Docker 28开始,默认行为改为 阻止所有未公开的端口访问  。这有效隔离了本地网络风险,提升了容器安全性;但集群新加主节点会启动为未公开的端口从而影响 新老节点etcd无法同步,进而导致失败。
             
            
               
               
              1 个赞