如何获取非Job关联的Pod?Kubectl排除Job的Pod查询方案
过滤Job关联Pod的解决方案
这问题我之前也碰到过,核心思路就是利用Kubernetes给Job自动添加的专属标签来精准过滤,完全不用依赖状态筛选~
1. 查看所有非Job关联的Pod
Kubernetes中由Job控制器创建的Pod,都会自动带上job-name标签(标签值就是对应Job的名称)。咱们直接用标签选择器排除带这个标签的Pod即可:
kubectl get pods -l '!job-name'
执行后就能只显示Deployment、StatefulSet这类控制器创建的Pod,不管它们处于Running还是部署过程中的状态。
2. 等待非Job关联Pod就绪(验证部署完成)
把同样的标签选择器加到kubectl wait命令里,就不会再被Job相关Pod干扰了:
kubectl wait --for=condition=Ready pods -l '!job-name' --all --timeout=600s
这个命令会专门等待所有非Job的Pod进入Ready状态,完美匹配你验证Deployment部署完成的需求。
额外验证:确认Job关联的Pod
如果你想确认哪些Pod是Job创建的,可以用这条命令查看:
kubectl get pods -l job-name
内容的提问来源于stack exchange,提问作者Prisco
相关产品推荐
相关产品推荐

