Rancher 导入下游 RKE 集群,无法正常部署 cluster agent

Rancher Server 设置

  • Rancher 版本: v2.7.0
  • 安装选项 (Docker install/Helm Chart): Helm Chart
    Local 集群: RKE v1.24.8

下游集群信息

  • Kubernetes 版本: RKE v1.24.8

问题描述:

在 Rancher 中尝试导入已有的 RKE 集群,在 Registration 生成的注册命令中 Server 地址指示的是 Rancher Service 的 cluster ip,此 cluster ip 是无法被其它集群连通的,

basti@rancher:~> kubectl -n cattle-system get svc
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
rancher ClusterIP 10.43.6.116 80/TCP,443/TCP 11d

curl --insecure -sfL https://10.43.6.116/v3/import/jzm87746tmjftwjbddspfx66nh5hmccqxgnm6l8mgmpr7v46ntxssz_c-m-k944zp5p.yaml | kubectl apply -f -

basti@rancher:~> kubectl -n cattle-system get ingress
NAME CLASS HOSTS ADDRESS PORTS AGE
rancher nginx rancher.wj.org rke-worker1 80, 443 11d

在下游 RKE 集群中尝试将注册命令中的 Server 地址改为 hostname 执行,无效, pod 日志中提示无法连通 10.43.6.116,

red-master:~/RKE-config # kubectl -n cattle-system logs cattle-cluster-agent-97dcb9867-hj95s
INFO: Environment: CATTLE_ADDRESS=10.42.0.14 CATTLE_CA_CHECKSUM=b2e6090a57495dac5d61916524728f408d526d656ff2e6bf6de848c223ad8277 CATTLE_CLUSTER=true CATTLE_CLUSTER_AGENT_PORT=tcp://10.43.32.170:80 CATTLE_CLUSTER_AGENT_PORT_443_TCP=tcp://10.43.32.170:443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_ADDR=10.43.32.170 CATTLE_CLUSTER_AGENT_PORT_443_TCP_PORT=443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_PORT_80_TCP=tcp://10.43.32.170:80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_ADDR=10.43.32.170 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PORT=80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_SERVICE_HOST=10.43.32.170 CATTLE_CLUSTER_AGENT_SERVICE_PORT=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTP=80 CATTLE_CLUSTER_AGENT_SERVICE_PORT_HTTPS_INTERNAL=443 CATTLE_CLUSTER_REGISTRY= CATTLE_INGRESS_IP_DOMAIN=sslip.io CATTLE_INSTALL_UUID=68a90df7-4e4b-49f1-9671-fd2adbe83a9b CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=false CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-97dcb9867-hj95s CATTLE_SERVER=https://10.43.6.116 CATTLE_SERVER_VERSION=v2.7.0
INFO: Using resolv.conf: nameserver 10.43.0.10 search cattle-system.svc.cluster.local svc.cluster.local cluster.local localdomain options ndots:5
ERROR: https://10.43.6.116/ping is not accessible (Failed to connect to 10.43.6.116 port 443: Connection refused)


为何注册命令中的 Server 地址指向的是 Rancher Service 中的 cluster ip,是否我配置中存在问题,还请帮忙看看,谢谢,

你应该回溯一下部署Rancher server的过程,可能你其中的操作导致server-url地址指向了svc cluster ip。

问题已解决,

因为我是在内网测试环境,环境里没有部署 DNS 服务器,所以默认情况下 cluster-agent 容器无法解析 rancher servert 的 url,之后在下游 RKE 环境中添加了 rancher servert url 的解析后,可以正常导入 Rancher 中。此外,对于通过 Rancher 创建 RKE 集群,若环境中没有 DNS 服务器,会遇到相同的问题,解决办法相同。

1 个赞