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集群。怎么处理这个问题,连接不通?需要配置什么,导入集群有什么前提条件的?
截图:
其他上下文信息:
日志
导入集群基本上只有两点要求:
- 下游集群的Pod网络可以访问rancher-server,包括网络可达以及证书校验
- 下游集群的版本是当前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的导入,也是我们经常做的操作,几乎每周都会去使用该功能。我很好奇,这里为什么失败。
我有以下几个疑问:
- 处于
Waiting
时,Rancher server有什么异常日志么?
- 执行导入命令时,我看到kubectl返回非常多
unchanged
。这个不太正常,如果是干净的ACK,不应该存在cluster-agent等相关资源
- 执行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集群做测试。