如何重新触发失败的法兰绒到印花布迁移?

如何重新触发失败的法兰绒到印花布迁移?

我有一个 3 节点的 kubernetes 集群,k8s 1.22 版本,flannel 设置良好,运行良好。我确实按照以下描述从 flannel 到 calico 进行了实时迁移步骤这里集群已成功迁移到 calico。但是当我尝试多次时,有几次我遇到了以下情况。

  • 即使 20 小时后,法兰绒迁移工作仍在运行。
  • 法兰绒到白布的迁移没有成功。
  • 3 个节点中有两个节点(node2 和 node3)正在运行 calico 节点
  • 一个节点(node1)处于 schedulingdisabled 模式,并且 calico 节点未在设置上运行。
  • 当我读取 flannel 迁移作业的日志时,它正尝试访问 kube-apiserver,但此时它处于关闭状态,因此失败了。

稍后,当 kube-api 服务器稳定后,我尝试重新运行 flannel 迁移作业,但它没有继续,什么也没有发生。

如何使 flannel 到 calico 的迁移幂等。如果发生故障,我想重新运行并确保 flannel 到 calico 的迁移完成。

谢谢任何帮助和建议。

答案1

我的想法是,节点可能迁移到一半,因此出现了一些奇怪的错误。如有疑问,请恢复并重做。

要确定哪些节点已迁移到 Calico:

kubectl 获取节点 -l projectcalico.org/node-network-during-migration=calico

然后封锁并排干迁移到一半的节点:

kubectl drip {节点名称}

登录节点并删除 CNI 配置:

rm /etc/cni/net.d/10-calico.conflist

重新启动节点并确保启用 flannel:

kubectl 标签节点 {节点名称} projectcalico.org/node-network-during-migration=flannel --overwrite

解除节点封锁:

kubectl uncordon {节点名称}

从 flannel daemonset 中删除 nodeSelector:

kubectl patch ds/kube-flannel-ds-amd64 -n kube-system -p '{"spec": {"template": {"spec": {"nodeSelector": null}}}}'

最后从相关节点中删除迁移标签:

kubectl 标签节点 {节点名称} projectcalico.org/node-network-during-migration-

现在。在确认 kube-api 服务器已启动且稳定的情况下重新进行迁移,然后让我知道发生了什么。

相关内容