gpt4 book ai didi

kubernetes - kubectl:使用带有 map 的自定义列输出

转载 作者:行者123 更新时间:2023-12-02 11:28:01 31 4
gpt4 key购买 nike

我想将注释的特定值放入 kubectl 自定义列字段中。我可以像这样获取资源上的所有当前注释:

kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":.metadata.annotations -n monitoring

这将返回一个 map :
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,我想我可以这样做:
kubectl get pvc -o custom-columns=NAME:.metadata.name,"ANNOTATIONS":".metadata.annotations['pv.kubernetes.io/bind-completed']" -n monitoring

但似乎不是。有没有办法做到这一点?

最佳答案

好的,我想通了。这比我想象的要容易。

Annotations 在返回时是一个标准的 JSON 元素。问题是kubectl的 JSONPath 解析器在元素中存在点问题,因此您只需要对它们进行转义即可。下面是一个例子:

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

关于kubernetes - kubectl:使用带有 map 的自定义列输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57418535/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com