kubernetes 清除状态为 Evicted 的 pod

本文详细介绍了如何处理 Kubernetes 环境中遇到的 Pod 被 Evicted 的状况。内容涵盖了 Eviction 的原因,如资源不足,以及如何通过调整资源限制、监控和日志分析来诊断和解决此类问题。此外,还讨论了如何使用 kubectl 命令行工具手动清理 Evicted Pod,以及预防措施,确保集群稳定运行。
kubectl get pods --all-namespaces | grep Evicted | awk '{print $2}' | xargs kubectl delete pod
Kubernetes 中的 Pod 是系统中最小的部署单元,其生命周期会经历多个状态(Phase)和更详细的容器级别状态(Container Status)。以下是对 Kubernetes Pod 所有可能状态的详细说明: ### Pod 的生命周期状态(Phase) Pod状态(Phase)描述了其在整个生命周期中的宏观运行情况,主要包括以下几种: - **Pending**:Pod 已被 Kubernetes 系统接受,但其包含的容器尚未全部创建。这通常表示 Pod 正在调度或镜像正在拉取中。 - **Running**:Pod 已被调度到某个节点上,并且所有容器都已被创建。至少有一个容器正在运行或处于重启、启动状态。 - **Succeeded**:Pod 中的所有容器都已成功终止并不会再重启。这通常适用于完成任务后退出的 Job 类型工作负载。 - **Failed**:Pod 中至少有一个容器以非正常状态终止。这可能是因为容器退出码非零或被系统强制终止。 - **Unknown**:由于某些原因(如节点失联),Pod状态无法被获取,此时其状态为 Unknown。 ### 容器级别的状态(Container Status) 除了 Pod 的整体 Phase 外,每个容器状态也提供了更详细的运行信息: - **Waiting**:表示容器尚未准备好启动。可能的原因包括: - `CrashLoopBackOff`:容器退出,kubelet 正在尝试重启。 - `ImagePullBackOff`:正在重试拉取镜像。 - `ErrImagePull`:拉取镜像失败。 - `InvalidImageName`:无法解析镜像名称。 - `ImageInspectError`:无法校验镜像。 - `CreateContainerConfigError`:无法创建 kubelet 使用的容器配置。 - `CreateContainerError`:创建容器失败。 - `RunContainerError`:启动容器失败。 - `PreStartHookError`:执行 preStart hook 报错。 - `PostStartHookError`:执行 postStart hook 报错。 - **Running**:表示容器正在正常运行。 - **Terminated**:表示容器已经终止。可能的原因包括: - `Completed`:容器正常退出,任务完成。 - `Error`:容器因错误退出。 - `OOMKilled`:容器因内存不足被杀死。 - `ContainerCannotRun`:容器无法运行。 ### 特定节点与系统级别的状态 在某些情况下,Pod状态可能受到节点或系统层面的影响: - **Evicted**:当节点资源不足(如内存或磁盘压力)时,Kubernetes 可能会驱逐该节点上的部分 Pod。 - **NetworkPluginNotReady**:网络插件未准备好,导致 Pod 无法正常通信。 - **DockerDaemonNotReady**:Docker 守护进程未就绪,导致容器无法启动。 - **Terminating**:Pod 正在被终止,尚未完全停止。 ### 初始化容器状态 对于包含初始化容器(Init Containers)的 Pod,还可能出现以下状态: - **PodInitializing**:Pod 正在初始化阶段。 - **ContainersNotInitialized**:初始化容器尚未完成。 - **ContainersNotReady**:容器尚未准备好(如探针未通过)。 - **ContainerCreating**:容器正在创建中。 这些状态可以帮助运维人员和开发者更好地理解 Pod 的运行状况,并进行故障排查。 ### 示例:查看 Pod 状态 可以通过以下命令查看 Pod状态信息: ```bash kubectl describe pod <pod-name> ``` 输出中将包含 Pod 的 Phase 和每个容器状态信息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值