如何从kubectl返回的JSON中提取kubernetes Service对象



给定下面的kubectl命令及其响应,我想拉出Service对象。该命令将获取由我的部署描述符创建的所有k8s对象的当前状态,该描述符名为quotem.yaml.

% kubectl get -f quotem_v2.yaml -o json

{
"apiVersion": "v1",
"items": [
{
"apiVersion": "v1",
"kind": "Service",
"metadata": {
"annotations": {
"getambassador.io/config": "---napiVersion: ambassador/v0nkind:  Mappingnname:  qotm_mapping_v2nprefix: /qotm/nservice: qotm-v2nweight: 300n",
"kubectl.kubernetes.io/last-applied-configuration": "{"apiVersion":"v1","kind":"Service","metadata":{"annotations":{"getambassador.io/config":"---\napiVersion: ambassador/v0\nkind:  Mapping\nname:  qotm_mapping_v2\nprefix: /qotm/\nservice: qotm-v2\nweight: 300\n"},"name":"qotm-v2","namespace":"default"},"spec":{"ports":[{"name":"http-qotm","port":80,"targetPort":"http-api"}],"selector":{"app":"qotm-v2"}}}n"
},
"creationTimestamp": "2018-12-13T17:53:51Z",
"name": "qotm-v2",
"namespace": "default",
"resourceVersion": "202117",
"selfLink": "/api/v1/namespaces/default/services/qotm-v2",
"uid": "0cf4a4a5-ff00-11e8-9839-080027ced2f4"
},
......
}

kubectl get -f quotem_v2.yaml -o json | jq '.items[] | select(.kind=="Service")'

  • 上面的命令使用带有-o标志的kubectl get来输出json
  • 然后,它使用jq命令行json解析器来获取items数组,并从items数组中选择"kind"属性与"Service"匹配的元素

相关内容

  • 没有找到相关文章

最新更新