将Pod迁移到其他节点

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

集群中三个节点:

NAME         STATUS   ROLES    AGE    VERSION
k8s-master   Ready    master   129d   v1.15.9
k8s-node1    Ready    <none>   129d   v1.15.9
k8s-node2    Ready    <none>   129d   v1.15.9
节点2有两个pod

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

k8s-master   Ready                      master   129d   v1.15.9
k8s-node1    Ready                      <none>   129d   v1.15.9
k8s-node2    Ready,SchedulingDisabled   <none>   129d   v1.15.9

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

输出:

node/k8s-node2 already cordoned
WARNING: ignoring DaemonSet-managed Pods: kube-system/kube-flannel-ds-amd64-64zsm, kube-system/kube-proxy-b669n
evicting pod "kong-konga-7cbf568cd7-8mw97"
evicting pod "netcore-01-blue-7fb69d9db5-pdgjq"
pod/netcore-01-blue-7fb69d9db5-pdgjq evicted
pod/kong-konga-7cbf568cd7-8mw97 evicted
node/k8s-node2 evicted
迁移后

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容