首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubectl:在映射中使用自定义列输出

kubectl:在映射中使用自定义列输出
EN

Stack Overflow用户
提问于 2019-08-09 02:13:16
回答 1查看 5.2K关注 0票数 13

我希望将注释的特定值放入kubectl自定义列字段中。我可以获得资源上的所有当前注释,如下所示:

代码语言:javascript
复制
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":.metadata.annotations -n monitoring

这将返回一个映射:

代码语言:javascript
复制
NAME                                 ANNOTATIONS
prometheus-k8s-db-prometheus-k8s-0   map[pv.kubernetes.io/bind-completed:yes pv.kubernetes.io/bound-by-controller:yes volume.beta.kubernetes.io/storage-provisioner:kubernetes.io/aws-ebs]
prometheus-k8s-db-prometheus-k8s-1   map[pv.kubernetes.io/bind-completed:yes pv.kubernetes.io/bound-by-controller:yes volume.beta.kubernetes.io/storage-provisioner:kubernetes.io/aws-ebs]

据我所知,考虑到kubectl -o custom-columns使用JSONpath,我认为我可以这样做:

代码语言:javascript
复制
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":".metadata.annotations['pv.kubernetes.io/bind-completed']" -n monitoring

但事实似乎并非如此。有没有办法做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2019-08-09 02:45:01

好吧,我想通了。这比我想象的要简单。

注释在返回时是一个标准的JSON元素。问题是kubectl的JSONPath解析器在元素中的点有问题,所以你只需要对它们进行转义。

代码语言:javascript
复制
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":".metadata.annotations.pv\.kubernetes\.io/bind-completed" -n monitoring

NAME                                 ANNOTATIONS
prometheus-k8s-db-prometheus-k8s-0   yes
prometheus-k8s-db-prometheus-k8s-1   yes
票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57418535

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档