美文网首页K8S
k8s手动迁移pod 下掉node节点

k8s手动迁移pod 下掉node节点

作者: Joening | 来源:发表于2022-07-07 15:34 被阅读0次
手动迁移
我们还可以使用cordon、drain、uncordor三个命令实现节点的主动维护。此时需要用到以下三个命令:

cordon:标记节点不可调度,后续新的pod不会被调度到此节点,但是该节点上的pod可以正常对外服务;
drain:驱逐节点上的pod至其他可调度节点;
uncordon:标记节点可调度;
具体操作过程如下:

# 1.标记节点不可调度
# kubectl cordon k8s-3-219
node/k8s-3-219 cordoned

# 查看节点状态,此时219被标记为不可调度
# kubectl get node
NAME           STATUS                     ROLES    AGE   VERSION
k8s-3-217   Ready                      master   89d   v1.18.2
k8s-3-218   Ready                      <none>   88d   v1.18.2
k8s-3-219   Ready,SchedulingDisabled   <none>   88d   v1.18.2

# 2.驱逐pod
# kubectl drain k8s-3-219 --delete-local-data --ignore-daemonsets --force
node/k8s-3-219 already cordoned
WARNING: ignoring DaemonSet-managed Pods: ingress-nginx/nginx-ingress-controller-gmzq6, kube-system/kube-flannel-ds-amd64-5gfwh, kube-system/kube-proxy-vdckk
evicting pod kube-system/tiller-deploy-6c65968d87-75pfm
evicting pod kube-system/metrics-server-7f96bbcc66-bgt7j
evicting pod test/helloworld-79956d95b4-nnlrq

# 参数如下:
--delete-local-data  删除本地数据,即使emptyDir也将删除;
--ignore-daemonsets  忽略DeamonSet,否则DeamonSet被删除后,仍会自动重建;
--force  不加force参数只会删除该node节点上的ReplicationController, ReplicaSet, DaemonSet,StatefulSet or Job,加上后所有pod都将删除;

# 3. 查看驱逐,219上的pod迁移到218上了。
# kubectl get pod -n test -o wide
NAME                                   READY   STATUS        RESTARTS   AGE   IP             NODE           NOMINATED NODE   READINESS GATES
helloworld-79956d95b4-gg58c            0/1     Running       0          20s   10.244.1.165   k8s-3-218   <none>           <none>
helloworld-79956d95b4-nnlrq            1/1     Terminating   0          77m   10.244.2.215   k8s-3-219   <none>           <none>

daemonsets不用管 deployments会自动迁移, statefulset需要手动同时删除pvc + pod 让其调度到其他节点
此时与默认迁移不同的是,pod会先重建再终止,此时的服务中断时间=重建时间+服务启动时间+readiness探针检测正常时间,必须等到1/1 Running服务才会正常。因此在单副本时迁移时,服务终端是不可避免的。

4. 下掉节点
#kubectl delete nodes <node节点名称>

相关文章

  • k8s手动迁移pod 下掉node节点

  • 删除集群节点

    需要将集群中这个node节点上的pod进行迁移,再将节点进行删除。 1.驱逐节点上的pod kubectl cor...

  • k8s常用命令

    查看k8s版本 查看所有正在运行的pod 在pod列表中查看每个pod在哪个node节点运行 在pod列表中查看每...

  • 对于k8s集群,pod报错某node/master节点不从私有仓

    1、对于k8s集群,查看pod报错下内容,(在node2节点部署pod的时候拉取不了镜像pause,我的私有仓库是...

  • k8s 集群调度

    关于调度 k8s内pod由scheduler调度,scheduler的任务是把pod分配到合适的node节点上。s...

  • k8s基础概念

    Node node作为集群中的工作节点,可以是物理机或虚拟机,node上管理着k8s的最小单元pod。Node上运...

  • k8s系统预留资源

    k8s的节点调度按照Capacity调度,默认情况下pod 使用节点的全部可用容量。 计算节点的进程分为: Pod...

  • 手动指定pod运行节点Node

    spec: containers: - env: - name: JAVA_OPTS ...

  • ping 只有 arp 没有icmp

    k8s node 双网卡, eth1用于为pod 提供ipvlan子接口 问题: node ping pod 不通...

  • pod启动过程

    一、k8s 架构 我们在构建k8s集群的时候首先需要搭建master节点、其次需要创建node节点并将node节点...

网友评论

    本文标题:k8s手动迁移pod 下掉node节点

    本文链接:https://www.haomeiwen.com/subject/xgrpbrtx.html