Rancher-v2.6.13 导入现有k3s集群一直处于waitting 阶段

Rancher Server 设置

  • Rancher 版本:v2.6.13
  • 安装选项 (Docker install/Helm Chart): helm Chart
    • 如果是 Helm Chart 安装,需要提供 Local 集群的类型(RKE1, RKE2, k3s, EKS, 等)和版本:k3s
  • 在线或离线部署:离线部署

下游集群信息

  • Kubernetes 版本: v1.21.7+k3s1
  • Cluster Type (Local/Downstream): Downstream
    • 如果 Downstream,是什么类型的集群?(自定义/导入或为托管 等): 导入集群

用户信息

  • 登录用户的角色是什么? (管理员/集群所有者/集群成员/项目所有者/项目成员/自定义):
    • 如果自定义,自定义权限集:

主机操作系统:ubuntu 20.04

问题描述:导入现有的k3s集群一直处于waitting阶段,

**重现步骤:1、导入k3s集群:curl --insecure -sfL https://rancher-server.com/v3/import/rl4hg2kg8shgqx76knrwvnh4gnnwrx5fhtf45j6x4p66nzbjv7zf8j_c-m-lcl26bqj.yaml > rancher-agent.yaml
2、修改rancher-agent.yaml,添加hostAlisas,修改images至私有仓库.
3、然后通过kubectl apply -f rancher-agent.yaml 出现两个cattle-cluster-agent pod,过一会会只剩下一个pod并且显示域名解析失败


4、重新执行kubectl apply -f rancher-agent.yaml,pod正常运行但停留在这个阶段


5、集群还是waitting

6、rancher-server 的logs如下,只能上传五张图片,我挑选了可能有用的信息:


**

结果:

预期结果:

截图:

其他上下文信息:



[/details]

请问下各位大佬,有没有碰到这个问题,该如何解决

针对最后一个截图的日志,你可以参考下:https://github.com/rancher/rancher/issues/41465

好像不是这个问题,我通过kubectl edit clusters.management.cattle.io 这个命令。
在local跟导入集群都没有GlobalAdminsSynced 这个type。导入集群中condition如下:

  • lastUpdateTime: “2024-01-29T06:17:41Z”
    message: Waiting for API to be available
    status: Unknown
    type: Waiting
  • lastUpdateTime: “2024-01-29T06:17:41Z”
    status: “True”
    type: NoDiskPressure
  • lastUpdateTime: “2024-01-29T06:17:41Z”
    status: “True”
    type: NoMemoryPressure
  • lastUpdateTime: “2024-01-29T06:17:41Z”
    status: “True”
    type: SecretsMigrated
  • lastUpdateTime: “2024-01-29T06:17:41Z”
    status: “True”
    type: ServiceAccountSecretsMigrated
  • lastUpdateTime: “2024-01-29T06:17:41Z”
    status: “True”
    type: RKESecretsMigrated
  • lastUpdateTime: “2024-01-29T06:17:41Z”
    status: “True”
    type: ACISecretsMigrated
  • lastUpdateTime: “2024-01-29T06:17:48Z”
    status: “False”
    type: Connected
  • lastUpdateTime: “2024-01-29T06:23:32Z”
    status: “True”
    type: SystemAccountCreated
  • lastUpdateTime: “2024-01-29T06:23:33Z”
    status: “True”
    type: AgentDeployed
  • lastUpdateTime: “2024-01-29T06:23:33Z”
    message: Cluster agent is not connected
    reason: Disconnected
    status: “False”
    type: Ready
  • lastUpdateTime: “2024-01-29T06:23:33Z”
    status: “True”
    type: Updated

请问以下,这个info:Requesting kubelet certificate regeneration 是在干什么。cattle-cluster-agent的log到这里就停了,看起来是准备验证吗

这个日志没问题。

你这样,你试试将导入的 cluster agent 的 deployment 删掉,然后不修改镜像仓库的前缀,使用默认的 yaml 重新导入试试。

我怀疑你第一个图中的agent 报错,是因为没拉到镜像。

我删了deployment,修改image执行kubectl apply -f rancher-agent.yaml重新导入,出现情况:
1、一个pod运行一段时候后,消失了,换成了一个新的pod。


2、新的pod的hostAlisas没了,如下:

3、我将这个pod导出kubectl get pod -o json > xx,发现image没修改成功,而且没有hostAlisas
4、我再执行一次apply -f 就成功了

我的操作顺序:1、kubectl delete deployment cattle-cluster-agent -n cattle-system
2、修改rancher-agent.yaml中的image,保存
3、kubectl apply -f rancher-agent.yaml
4、发现上面的问题后 我又执行一次操作 3
我是不是操作有问题


这是导入集群的状态

在导入集群的时候,执行了删除cluster-agent操作后,rancher会自动下发新的cluster-agent,你可以试下不删除,直接在下游集群修改rancher-agent yaml

直接修改rancher-agent.yaml 然后kubectl apply -f 吗?
我这个操作下来image改成功了,然后pod也运行正常,虽然重复执行了一次kubectl apply -f 最终效果应该是满足了吧。
因为我好像记得,我第一次导入的时候也是这样,会产生两个pod:两个pod一个有我添加的hostAlisas,一个没有hostAlisas。最后有hostAlisas的pod就自动消失了,剩下那个有问题,我再执行一次apply,就能正常运行一个rancher-agent的pod。

就是你导入的时候直接执行curl命令,然后kubectl edit修改一下cattle-agent deployment的yaml试一下

成功了 :rofl:,这是啥原因,只能edit吗



还有一个问题,这个是默认启动两个cluster-agent pod吗

谢谢大佬,我还有一个小问题,能不能设置导入集群的那个yaml中的image,特别是在rancher UI中删除集群cleanup的那个image。我删除一些只能私有仓库集群的时候,cleanup的pod无法获取镜像。

如果环境无法连接公网,建议设置全局级别的私有镜像仓库。

这个全局设置是指在rancher UI上面设置吗?
image

是的