请参考 Kubernetes 官方网站文档:Pod
Pod 是 Kubernetes 中可以创建和管理的最小可部署计算单元。一个 Pod(类似鲸鱼群或豆荚)是一组一个或多个容器(如 Docker 容器),它们共享存储和网络资源,并且有一个运行容器的规范。Pods 是所有更高级控制器(如 Deployments、StatefulSets、DaemonSets)构建的基础模块。
虽然 Pods 通常由更高级别的控制器管理,但直接对 Pods 进行 kubectl 操作对于故障排查、检查和临时任务非常有用。
列出当前命名空间下的所有 Pods:
列出所有命名空间下的所有 Pods:
获取指定 Pod 的详细信息:
流式查看 Pod 中容器的日志(便于调试):
如果 Pod 中有多个容器,必须指定容器名称:
跟随日志输出(实时流式显示新日志):
在 Pod 中的指定容器内执行命令(便于调试,如访问 shell):
将本地端口转发到 Pod 的端口,允许从本地机器直接访问 Pod 内运行的服务(便于测试或无需外部暴露服务时直接访问):
运行此命令后,可以通过浏览器访问 localhost:8080 来访问运行在 my-nginx-pod 中的 Nginx Web 服务器。
删除指定 Pod:
按名称删除多个 Pods:
根据标签选择器删除 Pods(例如删除所有标签为 app=nginx 的 Pods):
平台界面提供了关于 Pods 的多种信息,方便快速查看。
进入 Container Platform,在左侧边栏导航中选择 Workloads > Pods。
定位到想要查看的 Pod。
点击部署名称,查看 Details、YAML、Configuration、Logs、Events、Monitoring 等信息。
以下是部分参数的解释:
| 参数 | 说明 |
|---|---|
| 资源请求与限制 | 资源请求 和 限制 定义了 Pod 中容器的 CPU 和内存消耗边界,进而汇总形成 Pod 的整体资源配置。这些值对于 Kubernetes 调度器高效地将 Pods 安排到节点上,以及 kubelet 执行资源管控至关重要。
m 表示 milliCPU,Mi 表示 mebibytes)请参见 Resource Units。 Pod 级资源计算逻辑 Pod 的有效 CPU 和内存请求及限制值由其各个容器规格的求和和最大值计算得出。Pod 级请求和限制的计算方法类似,本文以限制值为例说明。 当 Pod 仅包含标准容器(业务容器)时:Pod 的有效 CPU/内存限制值为 Pod 内所有容器 CPU/内存限制值的总和。 示例:若 Pod 包含两个容器,CPU/内存限制分别为 100m/100Mi 和 50m/200Mi,则 Pod 的聚合 CPU/内存限制为 150m/300Mi。 当 Pod 同时包含 initContainers 和标准容器时:Pod 的 CPU/内存限制值计算步骤如下:
|
| 来源 | 管理该 Pod 生命周期的 Kubernetes 工作负载控制器,包括 Deployments、StatefulSets、DaemonSets、Jobs。 |
| 重启次数 | 自 Pod 启动以来,Pod 中容器的重启次数。重启次数过多通常表示应用或其运行环境存在问题。 |
| 节点 | Pod 当前被调度并运行的 Kubernetes 节点名称。 |
| 服务账户 | 服务账户是 Kubernetes 对象,为 Pod 内运行的进程和服务提供身份认证,使其能够访问 Kubernetes APIServer。该字段通常仅在当前登录用户拥有平台管理员角色或平台审计员角色时可见,允许查看服务账户的 YAML 定义。 |
删除 Pod 可能会影响计算组件的运行,请谨慎操作。
快速恢复 Pod 到期望状态:如果 Pod 处于影响业务运行的状态,如 Pending 或 CrashLoopBackOff,在排查并解决错误后,手动删除 Pod 可以帮助其快速恢复到期望状态(如 Running)。此时,删除的 Pod 会在当前节点重新创建或重新调度。
资源清理与运维管理:部分 Pod 达到指定阶段后不再变化,这些 Pod 往往大量堆积,给其他 Pod 的管理带来困难。待清理的 Pod 可能包括因节点资源不足而处于 Evicted 状态的 Pod,或因周期性定时任务触发而处于 Completed 状态的 Pod。此时,删除的 Pod 将不再存在。
注意:对于定时任务,如果需要查看每次任务执行的日志,不建议删除对应的 Completed 状态 Pod。
进入 Container Platform。
在左侧导航栏点击 Workloads > Pods。
(单个删除)点击待删除 Pod 右侧的 ⋮ 按钮 > Delete,并确认。
(批量删除)勾选待删除的 Pods,点击列表上方的 Delete,并确认。