我想获得脚本中最旧的Pod的名称。看来我应该能够运行kubectl get po --no-headers=true
,按AGE排序,然后仅通过管道传送到head -n1|awk '{print $1}'
,但似乎无法按工作进行排序。我正在运行kubectl 1.7.9。
答案 0 :(得分:1)
AGE时间采用不规则格式(23m
,2d
),很难排序,但是您可以要求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中使用它。