使用shell脚本提取kubernetes pod名称



我想从kubernetes上可用的pod列表中提取一个pod名称。例如,对于以下命令

kubectl get pods-n命名空间

NAME          READY   STATUS            RESTARTS   AGE
pod1          1/1     Running           2          46d
pod2          1/1     Running           0          46d
test-pod3-yy  0/1     ImagePullBackOff  0          338d
test-pod3-xx  1/1     Running           0          255d

我想使用shell脚本提取podtest-pod3-xx。目前这是我正在使用的命令

POD_NAME=$(kubectl get pods -n namespace | grep testpod-3 | cut -d' ' -f1)

有了这个,我得到了两个podtest-pod3-yytest-pod3-xx,但我想提取处于运行状态的pod。我该怎么做?

您可以使用field-selector并检查是否仅运行:

--field-selector=status.phase=Running

您也可以使用-o name标志,只获取名称。有了它,你就会得到:

$ kubectl get pods -n namespace -o name --field-selector=status.phase=Running
pod/pod1
pod/pod2
pod/test-pod3-xx
#!/bin/sh -x
kubectl get pods -n namespace > stack
while read line
do
[[ -n $(sed -n '/Running/p' "${line}" ]] && echo "${line}"
done < stack

相关内容

  • 没有找到相关文章

最新更新