【问题标题】:List newly created kubernetes pods in last 24 hours列出过去 24 小时内新创建的 Kubernetes pod
【发布时间】:2021-02-11 20:19:14
【问题描述】:

我想列出 24 小时内创建的 pod。我没有找到任何 kubectl 命令或任何获取这些命令的东西。谁能帮助我使用 kubectl 命令仅获取过去 24 小时内创建的 pod。

【问题讨论】:

    标签: kubernetes devops


    【解决方案1】:

    不是最漂亮的解决方案,但这应该可以工作(或者如果您想进一步改进命令,请给您一个想法)

    kubectl get pods -o go-template --template '{{range .items}}{{.metadata.name}} {{.metadata.creationTimestamp}}{{"\n"}}{{end}}' | awk '$2 > "'$(date -d 'yesterday' -Ins --utc | sed 's/+0000/Z/')'" { print $1 }'
    

    列出所有 pod 名称并过滤 startTime > 为一天的行。

    【讨论】:

    • 感谢您的快速回复。我有一个 7 小时前创建的 pod,但它只显示 31 小时前创建的 pod。请有任何想法。
    • 对不起,你是对的,我的想法永远行不通。我编辑了解决方案,试试这个新命令?
    • 我可以获得 24 小时内创建的 pod。您能否让我知道如何在同一命令中 grep 查找错误 pod。
    • Here 是查找Error Pod 的一些方法。您可以尝试将这些与上面的命令结合在一起。
    【解决方案2】:

    要列出过去 24 小时内创建的所有 Pod,您可以使用以下命令:

    kubectl get pods --sort-by=.metadata.creationTimestamp | awk 'match($5,/^[0-9]h|^[0-9][0-9]h|^[0-9]m|^[0-9][0-9]m|^[0-9]s|^[0-9][0-9]s/) {print $0}'
    

    如果您还想仅获取错误的 Pod,则可以使用:

    kubectl get pods --sort-by=.metadata.creationTimestamp | awk 'match($5,/^[0-9]h|^[0-9][0-9]h|^[0-9]m|^[0-9][0-9]m|^[0-9]s|^[0-9][0-9]s/) {print $0}' | grep -i Error
    

    或者仅列出具有Pending 状态的 Pod:

    kubectl get pods --field-selector=status.phase=Pending --sort-by=.metadata.creationTimestamp | awk 'match($5,/^[0-9]h|^[0-9][0-9]h|^[0-9]m|^[0-9][0-9]m|^[0-9]s|^[0-9][0-9]s/) {print $0}'
    

    【讨论】:

      猜你喜欢
      • 2018-09-12
      • 2012-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-08
      • 1970-01-01
      • 2019-11-04
      • 1970-01-01
      相关资源
      最近更新 更多