集群注册节点cattle-cluster-agent访问Rancher失败

Rancher Server 设置

  • Rancher 版本:2.6.3
  • 安装选项 (Docker install/Helm Chart):
    • 单机版rancher,对外映射域名IP提供访问服务

下游集群信息

  • Kubernetes 版本: v1.21.7-rancher1-1, v1.21.13-rancher1-1

用户信息

  • 登录用户的角色是什么? 管理员

主机操作系统:
centos7

问题描述:
单节点rancher,域名映射端口(内部是IP+端口)提供对外的访问服务。
集群注册,执行注册指令
原来这个环境注册是成功的,但是现在注册失败。节点机上都能看到执行了。但是报错
[Disconnected] Cluster agent is not connected
根据其它文档查询去看 cattle-cluster-agent

这个IP访问也是能访问到的 IP+9444 也是能打开的。
请问这个失败的原因是什么?集群状态Waiting 。怎么定位问题呢?

虽然你从宿主机去探测 ip:port 是通的,但不代表从容器里访问 rancher server 是通的。

你可以检查下主机的 ip_forward ,还有 selinux 等


这些都配置了
又找一台机器 进行部署,跟这个机器不是一个网络的,可以访问互联网。也是其它的部署上了,agent的连接不到rancher,过程都是自动的部署、配置的。想怎么定位问题,请帮指导下

那你检查下 ip_forward 和 docker 的配置,然后截个图发出来

使用 kubectl describe po cattle-cluster-agent-78c94686c9-55vvq -n cattle-system查看信息,比较正常的集群里面的信息, 发现地址区别是多了/。 由于我们环境,有内部的服务器和外部的,内部的通过域名方式访问会失败,就会改全局中的配置ip、域名,改配置的时候 ,域名端口后面加了/,导致了这个问题。 耽误您时间了,也是想了很多查找的方法。内部服务器访问域名形式,这个问运维说是网络环回找不到,不知道有什么方法解决? 目前测试使用,就是需要变化全局的url,内网使用还得用IP,节点注册命令里面使用IP。
网上有个这个单节点启动

docker run -d --restart=unless-stopped
-p 80:80 -p 443:443
-e HTTP_PROXY=“http://192.168.10.1:3128
-e HTTPS_PROXY=“http://192.168.10.1:3128
-e NO_PROXY=“localhost,127.0.0.1,0.0.0.0,10.0.0.0/8,192.168.10.0/24,example.com
rancher/rancher:latest
原文链接:Centos7安装Rancher后,添加节点失败,提示:"Failed to connect to proxy" error="websocket: bad handshake"_我的后端之家的博客-CSDN博客_rancher创建节点失败
是不是能解决,http://192.168.10.1:3128 是对外面代理映射的服务,no_proxy是写明不需要代理的,内网的

另外,使用 rancher/rancher:latest 不是一个明智的选择,应该明确版本号。
国内的registry mirror服务,往往不会刷新 latest tag到真正的最新版本,很多国内用户都会犯这个错误。

是不是dns解析不到的原因?我没记错的话pod的dns默认是继承节点主机的dns。修改pod的host或者自己建一个dns配置域名指向你的rancher,在新节点使用这个dns后试试吧。