kubernetes Node 宕机 Pod 驱离
一、背景描述
当某个节点宕机时,运行在改节点上Pod能快速驱逐到其他可调用节点上。
- 默认节点宕机 5 分钟才会执行驱逐Pod操作,手动驱逐更快但是要人工介入
1.1、添加配置
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
spec:
replicas: 1
spec:
containers:
- name: tomcat
image: "tomcat:8.5.51"
imagePullPolicy: Always
ports:
- name: http
protocol: TCP
containerPort: 80
tolerations:
# 节点控制器无法触及节点,对应节点状态ready值为Unknown
- effect: NoExecute
key: node.kubernetes.io/unreachable
operator: Exists
# 驱逐时间
tolerationSeconds: 30
# 节点还没有准备好,对应节点状态Ready值为false
- effect: NoExecute
key: node.kubernetes.io/not-ready
operator: Exists
# 驱逐时间
tolerationSeconds: 30
二、驱逐模拟
2.1、节点详情
root@node-01:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
node-01 Ready master 133m v1.19.3
node-02 Ready <none> 133m v1.19.3
node-03 Ready <none> 133m v1.19.3
2.2、查看部署服务运行所在节点
root@node-01:~/Helm-Quark$ kubectl get pod -o wide -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
dsad-quark-57b46c6858-v4r9s 1/1 Running 0 43m 100.114.252.150 node-03 <none> <none>
2.3、模拟节点宕机
- 关闭 Node-03 机器
- 此时 Node-03 为 NotReady 状态
root@node-01:~$ kubectl get node
NAME STATUS ROLES AGE VERSION
node-01 Ready master 133m v1.19.3
node-02 Ready <none> 133m v1.19.3
node-03 NotReady <none> 133m v1.19.3
2.3、Pod 驱逐验证
- 这里可以看到已经驱逐到 Node-02 节点中
root@node-01:~/Helm-Quark$ kubectl get pod -o wide -w
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
test2-quark-56d7b649cc-cwwkl 1/1 Running 0 95s 100.81.24.208 node-03 <none> <none>
test2-quark-56d7b649cc-cwwkl 1/1 Terminating 0 3m22s 100.81.24.208 node-03 <none> <none>
test2-quark-56d7b649cc-bxvzq 0/1 Pending 0 0s <none> <none> <none> <none>
test2-quark-56d7b649cc-bxvzq 0/1 Pending 0 0s <none> node-02 <none> <none>
test2-quark-56d7b649cc-bxvzq 0/1 ContainerCreating 0 0s <none> node-02 <none> <none>
test2-quark-56d7b649cc-bxvzq 0/1 ContainerCreating 0 2s <none> node-02 <none> <none>
test2-quark-56d7b649cc-bxvzq 1/1 Running 0 4s 100.114.252.143 node-02 <none> <none>
2.4、节点选择器与标签
- 如果设置指定节点,当指定结果宕机时,虽然Pod会驱逐到其他节点中,但一直会是 Pending 状态
- 如果设置节点标签,尽量在多个节点设置标签,如果只有一个节点宕机且Pod只运行在这个标签选择器中,其他节点没有该标签即使Pod驱逐到其他节点也会是 Pending 状态,如果多节点都有该标签则 Running 状态
版权声明:
作者:Akiraka
链接:https://www.akiraka.net/kubernetes/852.html
来源:Akiraka
文章版权归作者所有,未经允许请勿转载。
THE END
0
二维码
海报
kubernetes Node 宕机 Pod 驱离
一、背景描述
当某个节点宕机时,运行在改节点上Pod能快速驱逐到其他可调用节点上。
默认节点宕机 5 分钟才会执行驱逐Pod操作,手动驱逐更快但是要人工介入
……
文章目录
关闭