You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

OpenShift:如何查找集群中仅含一个Pod的项目与Deployment

在OpenShift中查找单Pod的命名空间与Deployment

一、查找副本数为1的Deployment(全集群)

直接筛选所有Deployment中副本数spec.replicas为1的条目,同时展示所属命名空间:

oc get deployments --all-namespaces -o custom-columns='NAMESPACE:.metadata.namespace,DEPLOYMENT:.metadata.name,REPLICAS:.spec.replicas' | awk '$3 == 1'

命令说明:

  • oc get deployments --all-namespaces:获取全集群所有Deployment资源
  • -o custom-columns:自定义输出列,仅保留命名空间、Deployment名称和副本数字段
  • awk '$3 == 1':过滤出副本数为1的结果行

二、查找仅含1个Pod的命名空间及其中的Deployment

如果需要先定位整个命名空间内总Pod数仅为1的项目,再列出这些项目中的Deployment,可按以下步骤执行:

1. 获取总Pod数为1的命名空间列表

oc get pods --all-namespaces --no-headers | awk '{print $1}' | uniq -c | awk '$1 == 1' | awk '{print $2}'

2. 批量列出目标命名空间中的Deployment

将第一步得到的命名空间作为参数,批量查询对应的Deployment资源:

oc get pods --all-namespaces --no-headers | awk '{print $1}' | uniq -c | awk '$1 == 1' | awk '{print $2}' | xargs -I {} oc get deployments -n {} -o custom-columns='NAMESPACE:.metadata.namespace,DEPLOYMENT:.metadata.name,REPLICAS:.spec.replicas'

注意事项:

  • 部分仅含1个Pod的命名空间可能没有Deployment(比如Pod为单独创建、由StatefulSet/DaemonSet管理),这类情况会输出No resources found in <namespace> namespace.
  • 若需排除异常状态的Pod,可在oc get pods后添加--field-selector=status.phase=Running,仅统计运行中的健康Pod

内容的提问来源于stack exchange,提问作者ma9811

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 20:04:54