KubernetesPod被驱逐故障排除过程 。小编来告诉你更多相关信息 。
Kubernetes全面的为您讲解Kubernetes的教程内容,请看下面详细的介绍 。
设想一个场景:有三个工作节点的Kubernetes 集群,版本为 v1.19.0 。发现在 worker 1 上运行的一些 pod 被驱逐了
文章插图
从上图可以看出有很多pod被驱逐了,报错信息也很清楚 。由于节点上存储资源不足,导致kubelet触发驱逐过程 。
方法1:启用auto-scaler
- 向集群添加工作节点,要么部署cluster-autoscaler以根据配置的条件自动扩缩容 。
- 只增加worker的本地存储空间,这涉及到虚拟机的扩容,会导致worker节点暂时不可用 。
这种施在一定程度上保证了一些关键Pod的可用性 。如果节点出现问题时 Pod 没有被驱逐 , 这将需要执行更多步骤来查找故障 。
运行命令 kubectl get pods 结果显示很多 pod 处于 evicted 状态 。检查结果将保存在节点的kubelet日志中 。查找对应日志使用 cat /var/paas/sys/log/kubernetes/kubelet.log | grep -i Evicted -C3 。
检查思路查看Pod容忍度当Pod故障无法连接或节点无法响应时,可以使用 tolerationSeconds 配置对应时长长短
tolerations:- key: \"node.kubernetes.io/unreachable\"operator: \"Exists\"effect: \"NoExecute\"tolerationSeconds: 6000
如果集群中的节点数小于50,并且故障节点数超过总节点数的55%,则暂停 Pod 驱逐 。在这种情况下,Kubernetes 将尝试驱逐故障节点的工作负载(运行在kubernetes中的APP) 。下属json描述了一个健康的节点
\"conditions\": [{\"type\": \"Ready\",\"status\": \"True\",\"reason\": \"KubeletReady\",\"message\": \"kubelet is posting ready status\",\"lastHearbeatTime\": \"2023-10-23T18:38:35Z\",\"lastTransitionTime\": \"2023-10-23T11:41:27Z\"}]
如果就绪条件为 Unknown 或 False 的时间超过了 pod-eviction-timeout,node controller 将对分配给该节点上的所有 Pod 执行 API-initiated 类型驱逐 。检查Pod的已分配资源Pod会根据节点的资源使用情况被逐出 。被逐出的Pod将会根据分配给Pod的节点资源进行调度 。
管理驱逐”和“调度”的条件由不同的规则组成 。这种结果会导致 , 被逐出的容器可能会被重新安排到原始节点 。
因此 , 要合理分配资源给每个容器 。
检查Pod 是否定期失败Pod 可以被驱逐多次 。即如果在 Pod 被驱逐并调度到新节点后该节点中的 Pod 也被驱逐,则该 Pod 将再次被驱逐 。
KubernetesPod被驱逐故障排除过程 。小编来告诉你更多相关信息 。
Kubernetes如果驱逐动作是由 kube-controller-manager 触发的,则保留处于 Terminating 状态的 Pod。在节点恢复后 , Pod将被 自动销毁 。如果节点已经被删除或者其他原因无法恢复,可以强制删除Pod 。
如果是由 kubelet 触发的驱逐 , Pod 状态将保留为 Evicted 状态 。仅用于后期故障定位,可直接删除 。
删除被逐出的 Pod 命令为:
kubectl get pods | grep Evicted | awk ‘{print $1}’ | xargs kubectl delete pod
Notes:- 被Kubernetes驱逐的Pod,不会被自动重新创建 pod 。如果要重新创建Pod , 需要使用replicationcontroller、replicaset和 deployment 机制,这也是上述提到的Kubernetes的工作负载 。
- Pod控制器是协调一组Pod始终为理想状态的控制器,所以会删除后重建,也是Kubernetes 声明式API的特点 。
使用Prometheus
kube_pod_status_reason{reason=\"Evicted\"} > 0
使用 ContainIQContainIQ 是为Kubernetes设计的可观测性工具,其中包含Kubernetes 事件仪表板,这就包括 Pod 驱逐事件【KubernetesPod被驱逐故障排除过程】上述就是Kubernetes 及其 Pod被驱逐故障排除过程的全部内容,您了解了吗?
- 被称为“鱼族敢死队”的麦穗鱼 麦穗鱼
- 盘点3种实用的恢复方法 苹果被删除的照片如何找回
- 怎样隐藏抖音号不被别人搜 视频不显示抖音号的原因
- 50条常被误用的词语 溢美之词
- 手机解除root的简单方法分享 手机被root了怎样解除
- 被老鼠咬手指头出血的梦
- 一打开任务管理器就自动关闭怎么恢复 win10任务管理器被禁用了怎么办
- Win11系统分辨率被锁死无法修改,如何改变?
- win11wifi功能消失了怎么解决 电脑无线功能被关闭的修复
- win7自带游戏被删了怎么恢复 恢复电脑自带的游戏