我可以运行什么命令来获取最早的Pod名称?

时间:2018-12-13 20:06:33

标签: kubernetes

我想获得脚本中最旧的Pod的名称。看来我应该能够运行kubectl get po --no-headers=true,按AGE排序,然后仅通过管道传送到head -n1|awk '{print $1}',但似乎无法按工作进行排序。我正在运行kubectl 1.7.9。

2 个答案:

答案 0 :(得分:1)

AGE时间采用不规则格式(23m2d),很难排序,但是您可以要求kubectl写出Pod启动的时间。时间将以非常易于分类的ISO 8601格式显示。可以使用这个食谱来获得最老的豆荚的方法可能对您有用:

kubectl get pods \
    --no-headers \
    --output=custom-columns=START:.status.startTime,NAME:.metadata.name \
| sort \
| head -1 \
| awk '{print $2}'

kubectl命令要求仅按顺序打印每个窗格的开始时间和名称。

还考虑使用kubectl get pods -o json,它将为您提供非常大的非常详细的JSON记录。如果您有首选的功能齐全的脚本语言,则可以在此加以区分,或使用jq之类的命令行工具来尝试进一步消化它。也可以将任何字段路径插入custom-columns输出规范中。

答案 1 :(得分:0)

这可以通过以下方式完成:

kubectl get pods --sort-by=.metadata.creationTimestamp -o=name | head -1

我不确定此版本开始工作于哪个版本,但我在kubectl 1.12中使用它。