RKE2运行的rancher 无法创建RKE2集群

环境信息:
RKE2 版本:
rke2 version v1.21.9+rke2r1

节点 CPU 架构,操作系统和版本:
Linux r-m-work 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

集群配置:
添加第一个servers

问题描述:

搭建好RKE2集群,然后添加自己的 RKE2 创建集群 创建的的时候一直卡在
cattle-system cattle-cluster-agent-567d557fc4-ppb9g 0/1 CrashLoopBackOff
一直重启
pod 报错信息如下

===================================
INFO: Environment: CATTLE_ADDRESS=10.42.0.21 CATTLE_CA_CHECKSUM=10d2eb77f6b0ad8f8a4a40eabe6c48ffbb93479aa59bafc793050fbd3c180df0 CATTLE_CLUSTER=true CATTLE_CLUSTER_AGENT_PORT=tcp://10.43.0.203:80 CATTLE_CLUSTER_AGENT_PORT_443_TCP=tcp://10.43.0.203:443 CATTLE_CLUSTER_AGENT_PORT_443_TCP_ADDR=10.43.0.203 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.0.203:80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_ADDR=10.43.0.203 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PORT=80 CATTLE_CLUSTER_AGENT_PORT_80_TCP_PROTO=tcp CATTLE_CLUSTER_AGENT_SERVICE_HOST=10.43.0.203 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_FEATURES=embedded-cluster-api=false,fleet=false,monitoringv1=false,multi-cluster-management=false,multi-cluster-management-agent=true,provisioningv2=false,rke2=false CATTLE_INGRESS_IP_DOMAIN=sslip.io CATTLE_INSTALL_UUID=d0c61cbe-3801-49c0-93c0-cc7342d16033 CATTLE_INTERNAL_ADDRESS= CATTLE_IS_RKE=false CATTLE_K8S_MANAGED=true CATTLE_NODE_NAME=cattle-cluster-agent-567d557fc4-76zsl CATTLE_SERVER=https://rancher.my.org CATTLE_SERVER_VERSION=v2.6.3
INFO: Using resolv.conf: search cattle-system.svc.cluster.local svc.cluster.local cluster.local nameserver 10.43.0.10 options ndots:5
ERROR: https://rancher.my.org/ping is not accessible (Failed to connect to rancher.my.org port 443: No route to host)
=============================

江湖救急。。。。跪谢


错误截图

可以参考这个文档说明:安装 | Rancher文档

原理是类似的,你设定的fake domain无法被cluster-agent pod中解析。

1 个赞

昨天这个方式用过了不行,还自建了dns服务器也不行

那你可以这样排查:

  1. 在下游集群用kubectl新建一个标准pod,尝试解析你的fake domain(my.org),确认你的hack方法能否完成解析。
  2. 如果解析失败,那就重新调整hack方法,直到可以解析fake domain。
  3. 如果解析成功,仍然无法访问 fake domain 对应的IP,那么应该从两个IP之间的网络链路层面排查。

你可以把你的操作步骤 copy 到这里,也许是你执行的有问题。

rancher-server集群创建没问题,
现在新建RKE2集群


然后等待

我说的是你如何去按照 RKE2运行的rancher 无法创建RKE2集群 - #3,来自 niusmallnan 操作的步骤

先装的单节点RKE2,用了一个linux节点。再这个节点上装的rancher-server


然后nginx在做4层

昨天这个方式用过了不行,还自建了dns服务器也不行
你把你说试过的这个步骤 copy 下来,你不是说按照 安装 | Rancher文档 操作了么?

最终解决了,还是用自建dns服务器,改的/etc/resolv.conf配置的dns无效。要改网卡的dns。安装两次都是这样。不知道是不是bug

现在Linux都是靠systemd-resovle 来搞DNS,传统的 /etc/resolv.conf 改法早就过时了。
https://wiki.archlinux.org/title/Systemd-resolved

另外,让我很费解,之前给你发送的文档里面,提到用k8s pod hostalias方式去解决。你声称试过,但是没有告诉过如何执行的。很多人都用hostalias方式解决,很少有反馈失败的。

那个确实试过 不行

可能用的方法不对吧。有时间我再试试

也有反馈失败的,有的直接写成了 {{ xxx.yyy.zzz }}{{ 1.1.1.1 }},大括号没去掉……

但基本方法争取,几乎没反馈失败的。

这个问题卡了一周了,首先,基于docker部署rancher2.6.3创建rke2集群,是很顺利拉起所有pod服务;其次,基于rke2部署rancher2.6.3,创建rke2集群,agent的pod出现不断重启提示无法访问自定义域名tmp.test.com;再次,已经在hosts增加DNS解释域名,同时也已经根据2.5的文档对agent增加hostAliasec域名解释均未能解决

做个本地nds服务器,修改网卡的nds重启服务器

自建DNS服务器应该能很好解决这个问题,只是在想对设计agent上,在创建rke2集群脚本代码上可否增加(默认不增加)个配置参数,是否在启动agent往pod里增加host条目,开箱即用

我来求证一下这个方法:
Server:Ubuntu20.04,Rke2+Rancher2.6.3
Cluster:Ubuntu20.04,基于Rke2创建集群


如下:

目前来看方法还是有效的