前言
一般来说,master节点是会产生一个污点,不允许部署pod的。
命令检测pod处于pending原因
如果其他原因也可以使用这个命令检查状态原因
# 查看节点状态原因
kubectl -n <namespace> describe pod <pod-name>
# 也可以查看日记
kubectl logs <pod-name> -n <namespace> --previous
这个命令打印前一个容器的错误消息
当出现类似这样问题
问题描述:
Warning FailedScheduling 40s (x28 over 28m) default-scheduler 0/1 nodes are available: 1 node(s) had untolerated taint {node-role.kubernetes.io/master: }, that the pod didn’t tolerate.
这是master节点上部署pod会出现的报错:说明当前pod不被mester污点所容忍
也可以查看当前节点的污点:
# 查看名为node-name节点所纯在污点
kubectl describe node <node-name> | grep Taints
# 或者查看所有节点,包括master、node节点
kubectl get no -o yaml | grep taint -A 5
key:node-role.kubernetes.io/master就是kubeadm集群时污点,出于安全考虑Pod不会被调度到Master Node上,默认情况下,master打了污点,不参与工作负载
关于污点和容忍度推荐看下官方解读《污点和容忍度》
解决办法
- 最直接可以删除这个污点:
kubectl taint nodes --all node-role.kubernetes.io/master-
之后你就发现之前部署的pod就会处于running
- 当然再次开启master节点污点,可以执行:
kubectl taint nodes k8s node-role.kubernetes.io/master=true:NoSchedule
正确删除pod
在日常的k8s运维过程中,避免不了会对某些pod进行剔除,那么如何才能正确的剔除不需要的pod呢
- 首先,需要查出想要删除的pod
kubectl get pods -A |grep <podname>
kubectl get pods -n <namespace>
kubectl get pods --all-namespaces |grep <podname>
- kubectl 删除pod命令
kubectl delete pod <podname> -n <namespace>
例如:kubectl delete pod nginx-web-460776586-f6nf0 -n yundoc
可是这里你会发现,在进行删除delete pod后,并不会直接删除。该pod会自动重新构建(可以理解为重启、重构),原因是k8s误认为我们要删除的pod异常挂了,会启用容灾机制,导致重新再拉起一个新的pod。
我们想要正常且彻底的删除一个pod,必须要先破坏掉他的容灾机制,即删除deployment机制。
- 查看deployment信息
#可理解是调度管理pod的
kubectl get deployment --all-namespaces
kubectl get deployment -n kube-system
- 删除deployment配置
kubectl delete deployment <deployment名> -n <namespace>
例如:kubectl delete deployment nginx-web -n yundoc
删除deployment,pod会随之删除。文章来源:https://www.toymoban.com/news/detail-803968.html
可通过再次查看pod状态,然后进行删除pod命令即可,通常情况下删除deployment后,再次查询pod发现,pod已经开始自行删除了(这步可酌情处理)。文章来源地址https://www.toymoban.com/news/detail-803968.html
- 强制删除pod(对于node部分节点无法删除的)
# 删除POD
kubectl delete pod PODNAME --force --grace-period=0
# 删除NAMESPACE不一定有用
kubectl delete ns NAMESPACENAME --force --grace-period=0
到了这里,关于k8s主节点部署pod状态一直是pending原因排除,并彻底删除pod技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!