Rancher Server 设置
Rancher 版本:2.6.5
安装选项 (Docker install/Helm Chart): helm
如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:v1.23.6+k3s1
在线或离线部署:
下游集群信息
Kubernetes 版本: v1.23.6
Cluster Type (Local/Downstream): Downstream
如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等): 自定义
用户信息
登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):
主机操作系统:
Kylin Linux Advanced Server release V10 (Sword) arm64
问题描述:
同一个节点,创建不了worker节点,全角色节点是可以的
重现步骤:
网络驱动 : flannel
# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c44a48df9279 rancher/rke-tools:v0.1.80 "nginx-proxy CP_HOST…" 2 minutes ago Up 2 minutes nginx-proxy
a6615df27e82 rancher/hyperkube:v1.23.6-rancher1 "/opt/rke-tools/entr…" 2 minutes ago Up 2 minutes kubelet
14b5405acfca rancher/hyperkube:v1.23.6-rancher1 "/opt/rke-tools/entr…" 2 minutes ago Up 2 minutes kube-proxy
6e1ed6754ceb rancher/rancher-agent:v2.6.5 "run.sh --server htt…" 3 minutes ago Up 3 minutes relaxed_raman
kubelet 日志
https://github.com/rancher/rancher/files/10358941/kubelet.log
结果:
预期结果:
截图:
其他上下文信息:
日志
@ksd 就是在UI界面选角色 只选worker,复制命令执行,kubelet 会报错,加入集群失败。全选角色就可以成功加入这个集群。。。每次执行创建命令都已经先清理过节点
具体的log在上面的链接
而且也试过其他节点(同样系统的),也是报一样的错。只能加全节点,不能加worker
ksd
2023 年1 月 9 日 01:26
4
你在单独加 worker 节点之前,集群中有其他节点么?已经添加了 etcd 和 controlplane 么?
大概知道原因了,看到 nginx-proxy rancher/rke-tools:v0.1.80 这个镜像有问题但是不知道怎么修复。。。。
docker logs -f nginx-proxy
/usr/bin/nginx-proxy: line 4: /usr/bin/confd: cannot execute binary file: Exec format error
2023/01/09 02:47:22 [notice] 9#9: using the "epoll" event method
2023/01/09 02:47:22 [notice] 9#9: nginx/1.21.0
2023/01/09 02:47:22 [notice] 9#9: built by gcc 10.2.1 20201203 (Alpine 10.2.1_pre1)
2023/01/09 02:47:22 [notice] 9#9: OS: Linux 4.19.90-24.4.v2101.ky10.aarch64
2023/01/09 02:47:22 [notice] 9#9: getrlimit(RLIMIT_NOFILE): 1048576:1048576
2023/01/09 02:47:22 [notice] 9#9: start worker processes
2023/01/09 02:47:22 [notice] 9#9: start worker process 10
2023/01/09 02:47:22 [notice] 9#9: start worker process 11
2023/01/09 02:47:22 [notice] 9#9: start worker process 12
2023/01/09 02:47:22 [notice] 9#9: start worker process 13
2023/01/09 02:47:22 [notice] 9#9: start worker process 14
2023/01/09 02:47:22 [notice] 9#9: start worker process 15
2023/01/09 02:47:22 [notice] 9#9: start worker process 16
2023/01/09 02:47:22 [notice] 9#9: start worker process 17
2023/01/09 02:47:22 [notice] 9#9: start worker process 18
2023/01/09 02:47:22 [notice] 9#9: start worker process 19
ksd
2023 年1 月 9 日 05:49
7
有可能是拉下来的这个镜像不是 arm 的导致没起来,你可以试试直接在主机上 pull 一个 arm 版本的 rke-tools:v0.1.80 的镜像:docker pull rancher/rke-tools:v0.1.80-linux-arm64
,然后 通过 docker tag 打包成默认的 rancher/rke-tools:v0.1.80
,然后看看能起来不。
找到解决方案了,貌似是rke-tool一个存在已久且影响久远的bug ,这个基本所有arm64的都创建不了worker节点 https://github.com/rancher/rancher/issues/37762
看了下那个组件的PR https://github.com/rancher/confd/pull/8 快一年都不merge 牛
感觉rancher社区对于issue都是放任自流的状态,都是机器人自动close。对此感到失望。。。
ksd
2023 年1 月 9 日 07:27
9
Rancher 在 arm 方面的支持,之前确实力度不够。但后续的规划上来看,会加大 arm 的支持。
非常抱歉!不过,这其实也是无法避免的,因为有限的工程资源和资金不可能解决所有的开源社区issue。
我们会关注其中很重要的部分,但是更多精力依然是支持商业客户的需求。
这是生存问题,开源软件的厂商也需要生存。开源社区也没有给用户承诺解决所有问题,这完全无法完成。
目前,尚未有客户为ARM64支持而买单,因为生产环境靠ARM支撑还有些差距。这使得很多ARM支持的相关issue很难推动。
但是,最近也看到了一些变化,2023年在ARM方向推动会更快一些。
分享一个有趣的测试,我在AWS上使用同样的ARM实例规格,但是两种OS的执行confd的差异:
Ubuntu 22.04 ,confd可以运行;
openEuler 22.03 SP1,confd不可以运行;
尽管这个confd在编译时没有指定到arm64,但是主流操作系统其实完全可以兼容。
看到你使用的也是国产OS,应该和openEuler类似。我看到大量类似这种confd的ARM兼容问题issue,都是国内用户报的,也许国产OS层面的兼容性本身就存在巨大问题。