【问题标题】:Kubernetes sort pods by ageKubernetes 按年龄对 Pod 进行排序
【发布时间】:2017-12-31 19:01:12
【问题描述】:

我可以使用以下方法按名称对我的 Kubernetes pod 进行排序:

kubectl get pods --sort-by=.metadata.name

如何使用kubectl按年龄对它们(或其他资源)进行排序?

【问题讨论】:

    标签: kubernetes kubectl kubernetes-pod


    【解决方案1】:

    Pod 有状态,您可以使用它来找出 startTime。

    我想像kubectl get po --sort-by=.status.startTime 这样的东西应该可以工作。

    你也可以试试:

    1. kubectl get po --sort-by='{.firstTimestamp}'
    2. kubectl get pods --sort-by=.metadata.creationTimestamp 谢谢@chris

    同样显然在 Kubernetes 1.7 版本中,排序方式被破坏了。

    https://github.com/kubernetes/kubectl/issues/43

    这是错误报告:https://github.com/kubernetes/kubernetes/issues/48602

    这是公关:https://github.com/kubernetes/kubernetes/pull/48659/files

    【讨论】:

    • @vjdhama 有没有办法获取可以通过这种方式排序的完整列表?
    • 完整列表是什么意思?您的意思是所有类型的资源。
    • 有没有办法反向排序?因此,例如,您可以执行一次 watch kubectl 并在顶部获取最新的 pod?
    • 这仅在我还包含 -o json-o wide 标志时才有效。在 1.7.x 和 1.9.x 上测试
    • @JoeJ kubectl 文档没有相反的顺序,但您可以使用 tail 命令来实现。 kubectl get pods --sort-by=.metadata.creationTimestamp | tail -r | head -n 1 我使用 tail -r 来恢复输出。然后head -n 1打印最新的pod
    【解决方案2】:
    kubectl get pods --sort-by=.metadata.creationTimestamp
    

    【讨论】:

    • 我收到了error: unknown type *api.Pod, expected unstructured in map[reflect.Type]*printers.handlerEntry{} 的回复
    • 这对于排序 ConfigMaps 很有用:kubectl get cm --sort-by=.metadata.creationTimestamp
    【解决方案3】:

    如果你想根据年龄倒序排列:

    kubectl get po --sort-by=.metadata.creationTimestamp -n <<namespace>> | tac
    

    【讨论】:

      【解决方案4】:

      我创建 KUBESORT 正是为了这些排序目的。
      请试一试,

      https://github.com/AATHITH/kubesort

      【讨论】:

        【解决方案5】:

        如果您尝试获取最近创建的 pod,您可以执行以下操作

        kubectl get pods --sort-by=.metadata.creationTimestamp -o jsonpath='{.items[-1:].metadata.name}'

        注意-1: 获取列表中的最后一项,然后我们返回 pod 名称

        【讨论】:

          【解决方案6】:

          如果您只想要最近创建的 pod 的名称;

          POD_NAME=$(kubectl get pod --sort-by=.metadata.creationTimestamp -o name | cut -d/ -f2 | tail -n 1)
          echo "${POD_NAME}"
          

          【讨论】:

            猜你喜欢
            • 2019-12-09
            • 2019-02-23
            • 1970-01-01
            • 2021-03-19
            • 2018-03-22
            • 1970-01-01
            • 2021-06-28
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多