【问题标题】:How to get all pods without jobs如何在没有工作的情况下获得所有豆荚
【发布时间】:2019-12-13 13:03:36
【问题描述】:

是否可以在不占用作业的情况下检索所有 pod?

kubectl get pods 
pod1                                      1/1     Running     1          28d
pod2                                      1/1     Running     1          28d
pods3                                     0/1     Completed   0          30m
pod4                                      0/1     Completed   0          30m

我不想查看工作,只想查看另一个 pod。
我不想根据“运行状态”获取它们,因为我想验证我尝试安装的所有部署是否都已“部署”。
基于此,我想使用以下命令,但它也在获取我试图排除的作业:

kubectl wait --for=condition=Ready pods --all --timeout=600s 

【问题讨论】:

  • 当您执行kubectl get pods 时,您获得了 pod,但您没有获得工作。如果你做kubectl get jobs,你就会得到工作。除非你的工作是完成的豆荚,这是错误的。

标签: list kubernetes filter kubectl


【解决方案1】:

将特殊标签(例如 kind=pod)添加到您的工作 pod。然后使用kubectl get pods -l kind!=pod

【讨论】:

  • 我同意这可能是一个选项,所以如果没有使用这些规则标记 pod 就没有其他选项了.. 对吗?
  • 我认为“kubectl get”没有更多过滤选项。
【解决方案2】:

如果使用一点脚本没问题...这个单行应该返回所有命名空间中所有“非作业”pod 的名称:

for p in `kubectl get pods --all-namespaces -o=jsonpath="{range .items[*]}{.metadata.name}{';'}{.metadata.ownerReferences[?(@.kind != 'Job')].name}{'\n'}{end}"`; do v_owner_name=$(echo $p | cut -d';' -f2); if [ ! -z "$v_owner_name" ]; then v_pod_name=$(echo $p | cut -d';' -f1); echo $v_pod_name; fi; done

以上述为基础,以下旨在返回Ready状态中的所有“非Jobs”pod:

for p in `kubectl get pods --all-namespaces -o=jsonpath="{range .items[*]}{.metadata.name}{';'}{'Ready='}{.status.conditions[?(@.type == 'Ready')].status}{';'}{.metadata.ownerReferences[?(@.kind != 'Job')].name}{'\n'}{end}"`; do v_owner_name=$(echo $p | cut -d';' -f3); if [ ! -z "$v_owner_name" ]; then v_pod_name=$(echo $p | cut -d';' -f1,2); echo $v_pod_name; fi; done

This doc 解释了(可以说 - 在某种程度上)kubectl 中的 JSONPath 支持。

【讨论】:

    【解决方案3】:

    如果你的问题是 -

    我想验证我尝试安装的所有部署是否 “部署”

    那么这不是在 Kubernetes 中检查 Pod 状态的正确方法。请检查您的部署的副本readyReplicas

    kubectl get deployment <deployment-Name> -ojson | jq -r '.status | { desired: .replicas, ready: .readyReplicas }'
    

    输出:-

    {
      "desired": 1,
      "ready": 1
    }
    

    这里我使用jq(非常方便)实用程序来解析内容

    【讨论】:

      猜你喜欢
      • 2023-03-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-10-29
      • 2020-06-07
      相关资源
      最近更新 更多