pod相关(驱逐、强制删除)
1、kubectl drain可以让node在维护期间排除节点。drain本意排水,意思是将出问题的node下的pod转移到其它node下运行。
kubectl drain nodename --delete-local-data --ignore-daemonsets --force
2、将node置为SchedulingDisabled不可调度状态
kubectl cordon nodename
将node置为SchedulingDisabled不可调度状态,后续的新创建pod容器时scheduler调度不会考虑该node,旧的pod容器不会受影响,仍可以对外提供正常服务。(特殊情况:pod容器如果跟node绑定的话,容器下次更新就不会回到原宿主机,该情况如何处理呢?可能设置成不可调度状态就不太合适。调度器 预调度策略)
恢复调度
kubectl uncordon nodename
Terminating可使用kubectl中的强制删除命令
kubectl delete pod PODNAME --force --grace-period=0
#将 Master 也当作 Node 使用
kubectl taint node nodename node-role.kubernetes.io/master
#将 Master 恢复成 Master Only 状态
kubectl taint node nodename node-role.kubernetes.io/master="":NoSchedule
kubectl taint node app01 node-role.kubernetes.io/master="":NoSchedule
修改nodeport端口范围(nodePort 端口默认范围为:30000-32767)