如何快速获取多容器Pod内各容器的运行状态汇总信息
多容器Pod的容器状态快速查询方法
Kubectl原生支持直接输出Pod内所有容器的状态,无需额外工具,常用的几种便捷方式如下:
- 快速汇总所有容器状态(自定义列输出)
执行命令:
输出结果里kubectl get pod <目标Pod名> -n <Pod所在命名空间> -o custom-columns='POD_NAME:.metadata.name,CONTAINER_NAMES:.status.containerStatuses[*].name,READY_STATUS:.status.containerStatuses[*].ready,STATE:.status.containerStatuses[*].state'READY_STATUS列会按容器名的顺序,对应输出每个容器的就绪状态,true代表状态正常,false代表异常,STATE列会显示容器的具体运行状态,异常场景下会直接展示CrashLoopBackOff、ErrImagePull等错误原因。 - 直接筛选仅输出异常容器
如果你不需要看正常容器的信息,只想快速定位异常项,执行过滤命令:
该命令会自动过滤掉就绪状态为正常的容器,仅输出状态异常的容器信息,批量排查场景下可以把kubectl get pod <目标Pod名> -n <Pod所在命名空间> -o jsonpath='{range .status.containerStatuses[*]}{if not .ready}{"异常容器名称:"}{.name}{" 异常状态详情:"}{.state}{"\n"}{end}{end}'<目标Pod名>替换为标签选择器-l <标签Key>=<标签Value>或者--all-namespaces,实现批量查询所有Pod的异常容器。 - 查看完整的容器状态详情
执行kubectl describe pod <目标Pod名> -n <Pod所在命名空间>,输出结果的Containers段落会逐个罗列Pod内所有容器的运行状态、重启次数、最近事件日志,正常和异常容器的信息会明确分区展示,适合排查具体异常原因。
内容的提问来源于stack exchange,提问作者conjectures
相关产品推荐
相关产品推荐

