Kubernetes kubectl输出格式化:查找特定列
我希望通过我最初的kubectl命令获得一个特定的列Kubernetes kubectl输出格式化:查找特定列,kubernetes,kubectl,Kubernetes,Kubectl,我希望通过我最初的kubectl命令获得一个特定的列 kubectl --context oam-ska-yo_jonnylee -n ebzz get -o json ingressroute zz-oamtoto 这给了我下面的json { "apiVersion":"traefik.containo.us/v1alpha1", "kind":"IngressRoute", "
kubectl --context oam-ska-yo_jonnylee -n ebzz get -o json ingressroute zz-oamtoto
这给了我下面的json
{
"apiVersion":"traefik.containo.us/v1alpha1",
"kind":"IngressRoute",
"metadata":{
"annotations":{
"kubectl.kubernetes.io/last-applied-configuration":"{"sum-up"}\n"
},
"creationTimestamp":"2021-02-23T11:17:56Z",
"generation":1,
"labels":{
"instance":"webzz"
},
"managedFields":[
{
"apiVersion":"traefik.containo.us/v1alpha1",
"fieldsType":"FieldsV1",
"fieldsV1":{
"f:metadata":{
"f:annotations":{
".":{
},
"f:kubectl.kubernetes.io/last-applied-configuration":{
}
},
"f:labels":{
".":{
},
"f:instance":{
}
}
},
"f:spec":{
".":{
},
"f:entryPoints":{
},
"f:routes":{
}
}
},
"manager":"kubectl",
"operation":"Update",
"time":"2021-02-23T11:17:56Z"
}
],
"name":"zz-oamtoto",
"namespace":"ebzz",
"resourceVersion":"61112315",
"selfLink":"/apis/traefik.containo.us/v1alpha1/namespaces/ebzz/ingressroutes/zz-oamtoto",
"uid":"42727XXX-dd9e-45e4-9c7d-1225aea125"
},
"spec":{
"entryPoints":[
"http"
],
"routes":[
{
"kind":"Rule",
"match":"Host(`ebzz.acme.com`)",
"middlewares":[
{
"name":"ebzz-ebzz-basicauth"
}
],
"services":[
{
"kind":"Service",
"name":"zz-oamtoto",
"port":1234
}
]
}
]
}
}
我要看的是找到一个特定的列,routes
一个,最重要的是,它的一个特定的子列
“匹配”:“主机('ebzz.acme.com
)”
我试过下面的命令
kubectl --context oam-ska-yo_jonnylee -n ebzz get -o=custom-columns=svc:.spec.routes.-kind ingressroute zz-oamtoto
这就给了我:
[map[kind:Rule match:Host(`ebzz.acme.com`) middlewares:[map[name:ebzz-ebzz-basicauth]] services:[map[kind:Service name:zz-oamtoto port:1234]]]]
到目前为止我都试过了
kubectl --context oam-ska-yo_jonnylee -n ebzz get -o=custom-columns=svc:.spec.routes[kind] ingressroute zz-oamtoto
它给了我这个
svc
error: invalid array index kind
svc
error: invalid array index kind
我也试过这个
kubectl --context oam-ska-yo_jonnylee -n ebzz get -o=custom-columns=svc:.spec.routes["kind"] ingressroute zz-oamtoto
但它给了我这个
svc
error: invalid array index kind
svc
error: invalid array index kind
如果我理解正确,你需要
kubectl--context oam-ska-yo_jonnylee-n ebz get ingresroute zz oamtoto--output=jsonpath={.spec.routes.match}
在这里你可以找到更多的例子:经过多次试验,这一个有效
kubectl --context oam-ska-yo_jonnylee -n ebz get -o=custom-columns=.spec.routes[0].match ingressroute zz-oamtoto
- 如果您正在查找列,则选项
应提供调整customcolumns
- 对于第一列,您的目标是,您需要放置一个
,后跟一个点和列名,就像这样.spec
.spec.column\u name
- 在本例中,
列部分就是一个数组。因此,您需要将路由
,后跟数字,然后再后跟子名称,在这里[]
。它为您提供匹配
.spec.routes[0]。匹配
注意:我在最初的kubectly查询中使用svc。这是一个错误,没有任何用处。Hi@vitalli,我尝试了您的解决方案,但它不起作用,尽管jsontpath是一个好主意。