rancher2.6.3导入ACK托管集群,状态waiting,怎么配置

Rancher Server 设置

  • Rancher 版本:2.6.3 测试环境是单机版本

下游集群信息

  • Kubernetes 版本: 阿里ACK托管集群
    v1.22.3-aliyun.1
    Docker 19.3.15
    centos_7_9_x64
    导入集群

用户信息
管理员

问题描述:
rancher2.6.3 导入集群,目标是阿里的ACK托管集群。注册命令执行后,能发现节点机器,但是集群状态一直waiting。

重现步骤:
1、导入集群,写入集群名称
2、创建获取注册命令
3、到阿里ACK集群里面执行注册

结果:
ACK执行看日志
kubectl -n cattle-system logs -l app=cattle-cluster-agent

time=“2022-06-15T03:20:26Z” level=error msg=“Failed to dial steve aggregation server: websocket: bad handshake”

rancher里面是
Disconnected] Cluster agent is not connected

预期结果:
通过导入集群,能管理阿里的ACK集群。怎么处理这个问题,连接不通?需要配置什么,导入集群有什么前提条件的?
截图:

其他上下文信息:

日志

导入集群基本上只有两点要求:

  1. 下游集群的Pod网络可以访问rancher-server,包括网络可达以及证书校验
  2. 下游集群的版本是当前Rancher server可以兼容的

对于第一点,我没有看到足够多的日志,无法判断;
对于第二点,k8s 1.22和2.6.3应该是具备兼容性的。尽管1.22对于2.6.3只是实验性支持。

这个ACK 托管集群,没有配置外网IP, worker节点可以ping通rancher-server的域名地址。是rancher-server,没有办法访问到worker节点的问题?那买worker节点得买个有IP的? 注册命令中,没有IP的信息的配置的。 需要rancher-server 和 worker互相访问到?

这个前提条件是要求ACK的集群能被外网访问? 这个逻辑关系是什么? 同样的我想接入亚马逊云,华为云的应该是一样的要求吧 谢谢

需要下游集群的Pod网络可以访问到rancher-server,单纯看worker是不是到rancher-server可达并不准确。
基本条件满足后,就要rancher cluster-agent的日志。不过,你提供的日志只有一行,太难判断了。

你好,我又执行了一次命令,网上写要到master上执行命令,因为是托管的ACK,连接到集群上,执行注册


执行后

查询一下

跟网上介绍的导入k8s集群有区别


这个理解上不是很清楚,能帮忙看看说明下,谢谢

ACK的导入,也是我们经常做的操作,几乎每周都会去使用该功能。我很好奇,这里为什么失败。

我有以下几个疑问:

  1. 处于 Waiting 时,Rancher server有什么异常日志么?
  2. 执行导入命令时,我看到kubectl返回非常多unchanged。这个不太正常,如果是干净的ACK,不应该存在cluster-agent等相关资源
  3. 执行kubectl导入的client,是否具备ACK的全部访问权限?

原来加入过一次


又检查了下 环境,worker节点是可以访问到rancher server的,能访问外网。
需要worker节点 ,配置有外网IP,rancher-server能访问到吗?
然后又执行了一次注册命令
没有新的异常

是不是已经有的内容,不再生成?如果清空怎么清理。
我们再看看ACK的权限
[Disconnected] Cluster agent is not connected 这个问题,内网有时候也出现,是rancher-server没办法访问到 节点的Cluster agent?那就是需要能相互访问到?ACK的托管集群,worker可以访问外网,但是没有配置外网IP的
希望能对这些应用的场景,像阿里云的帮助文档一样,能有操作的过程文档,能方便使用和推广

前面的内容,你可能没仔细看。导入集群时,只需要下游集群的Pod网络可以访问到server-url。

可以用这个工具清理一下,之前的内容,并尝试重新导入:GitHub - rancher/rancher-cleanup

或者新建一个干净的ACK集群做测试。