将Pod迁移到其他节点

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将Pod迁移到其他节点相关的知识,希望对你有一定的参考价值。

参考技术A

因服务器升级迁移,需要将升级的节点上的pod迁移到其他节点。
可以改yaml中指定临时标签,重新部署,但比较麻烦,通常会采用cordon/uncordon节点的方案。

集群中三个节点:

kubectl cordon k8s-node2 #将节点2设置不不可调度
但此时是新的pod不会再分配到该节点,但原节点2上的pod不会自动迁移,node2的状态为 Ready,SchedulingDisabled

执行如下命令迁移节点的pod
kubectl drain k8s-node2 --delete-local-data --ignore-daemonsets --force

输出:

节点2维护完毕后,可以再将节点2还原成Ready可分配的状态
kubectl uncordon k8s-node2

精品k8s的pod迁移与节点停机维护

目标:

通过学习,了解pod迁移与节点停机维护的场景,以及需要注意的事项。


内容:

背景:某个节点由于某些原因经常故障,导致其上的pod与集群失联,造成整个集群问题

流程:将 问题节点k8s-node02 设置为不可调度,然后重新调度该节点上的所有 Pod

注意事项:某些特殊的pod是无法重新调度到其他节点,例如,维持通信的calico,若它被调度到其他节点,本节点将与无法与集群通信。

步骤:

节点设置为不可调度

  1. 执行命令,确定当前节点状态: kubectl get no

  2. 执行设置为不可调度状态命令,再次查看节点状态:kubectl cordon k8s-node02

    扩展:若要恢复节点为可调度,怎么操作?
    执行此条命令即可:kubectl uncordon k8s-node02

以上是关于将Pod迁移到其他节点的主要内容,如果未能解决你的问题,请参考以下文章

精品k8s的pod迁移与节点停机维护

解决k8s集群中Redis Cluster故障

控制pod在节点位置与其他类型的pod

Kubernetes网络模型 -flannel +Calico

node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决

flannel网络问题:node节点flannel网络问题导致该node上的pod与其他node节点网络不通的排查思路与解决