首页 > 解决方案 > 如何仅过滤来自 kubectl describe 的卷数据命令?

问题描述

我正在做一些测试,只需要过滤各个 k8s pod 的音量信息。我用 kubectl describe po | grep 卷。但它只是显示volumes:

有人可以建议我如何从 kubectl describe po 命令过滤完整的卷数据吗?

kubectl describe 命令中的完整卷数据如下

Volumes:
  config-volume:
    Type:      XXX (a volume populated by XXX)
    Name:     Volum-1
    Optional:  false
  Volum-1:
    Type: YYY (a temporary directory that shares a pod's lifetime)
    Medium:
    SizeLimit:  <unset>
  default-token-zzz:
    Type:        www (a volume populated by a www)
    SecretName:  default-token-zzz
    Optional:    false

标签: kubernetesdevops

解决方案


kubectl describe输出是“人类可读的”,这并不容易解析,但它也不能保证您在不同版本中的格式一致。如果您想以编程方式从 kubectl 获取一些信息,您应该使用kubectl getwith-o jsonpath-o go-template

例如,要获取所有卷,您可以使用类似

kubectl get pod your_pod -o jsonpath='{.spec.volumes}'

要获取卷名,请使用

kubectl get pod your_pod -o jsonpath='{.spec.volumes[*].name}'

请参阅https://kubernetes.io/docs/reference/kubectl/jsonpath/以供参考


推荐阅读