导语:使用jq命令获取k8s里所需要的信息

先安装jq

apt install jq -y
# kubectl 的 JSONpath 输出不支持正则表达式
# 下面的命令不会生效
kubectl get pods -o jsonpath='{.items[?(@.metadata.name=~/^test$/)].metadata.name}'

# 下面的命令可以获得所需的结果
kubectl get pods -o json | jq -r '.items[] | select(.metadata.name | test("test-")).spec.containers[].image'
kubectl get pods  -n dev01  -o json | jq -r '.items[] | select(.metadata.name | test("mig")).spec.containers[].image'

获取job的名称 json中-要用""引起来

kubectl get job -n dev01   -o json | jq -r '.items[] | select(.metadata.name | test("mig")).spec.template.metadata.labels'

kubectl get job -n dev01   -o json | jq -r '.items[] | select(.metadata.name | 
test("mig")).spec.template.metadata.labels."job-name"'

kubectl get job -n dev01   -o json | jq -r '.items[] | select(.metadata.name | test("mig")).spec.template.metadata.name'

https://kubernetes.io/zh-cn/docs/reference/kubectl/jsonpath/

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐