Failed to initialize CSINode: error updating CSINode annotation: timed out waiting for the condition

Rancher Server 设置

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

下游集群信息

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

主机操作系统:
CentOS Linux release 7.6.1810
问题描述:

命令行创建下游集群,kubelet 不停重启

{"log":"E0923 08:43:17.752198   53614 csi_plugin.go:297] Failed to initialize CSINode: error updating CSINode annotation: timed out waiting for the condition; caused by: nodes \"d-ecs-40129367\" not found\n","stream":"stderr","time":"2022-09-23T08:43:17.752366078Z"}
{"log":"E0923 08:43:17.776912   53614 kubelet.go:2461] \"Error getting node\" err=\"node \\\"d-ecs-40129367\\\" not found\"\n","stream":"stderr","time":"2022-09-23T08:43:17.777129545Z"}
{"log":"E0923 08:43:17.877379   53614 kubelet.go:2461] \"Error getting node\" err=\"node \\\"d-ecs-40129367\\\" not found\"\n","stream":"stderr","time":"2022-09-23T08:43:17.877566534Z"}

log 详情
https://github.com/rancher/rancher/files/9637748/fd962710938c77649a9bfaff25547882a8f8aa8a761f686ee54fa97afc11495f-json.log

必须要配置这个才可以,查了下资料和集群版本有关,但是一直都是用相同版本安装重来没有遇到过这样的问题,这非常奇怪

    kubelet:
      extra_args:
        feature-gates: "CSIMigration=false"

安装前我还用 https://docs.ranchermanager.rancher.io/how-to-guides/advanced-user-guides/manage-clusters/clean-cluster-nodes清理了节点

你可以排查下是否是操作系统版本的原因,按照 rancher 支持矩阵的说明,rancher 2.6.5 是不支持 centos 7.6 的

@ksd 哦 确实支持7.7~7.9,但是我也有其他7.6的机器是可以正常安装的,不需要特殊配置的

我还想了解一下这样设置了CSIMigration对集群的正常使用升级之类的会有什么影响,主要是没明白这个配置作用是什么

参考:Kubernetes 1.23: Kubernetes In-Tree to CSI Volume Migration Status Update | Kubernetes

这个特性是为了帮助用户逐步迁移到CSI,避免还是用陈旧的in-tree storage provider。而且,应该是在1.23默认就激活。

我怀疑,你的集群可能还在使用in-tree 插件产生的卷,并且缺少CSI插件,导致CSIMigration流程执行失败。所以,当你禁用了CSIMigration就没问题了。

@niusmallnan 这个怎么检查是否有in-tree 插件产生的卷?因为其实安装前有做清理节点步骤 参考这个 Removing Kubernetes Components from Nodes | Rancher Manager

换句话说,怎么才能清干净和检查是否干净