kubectl - 获取具有特定标签的 pods 的名称

kubectl - get names of pods with specific label

我正在尝试使用返回错误的命令从 pod json 获取 podname

kgp -o jsonpath="{.items[*].metadata[?(@.labels.module=='ddvv-script')].name}"

错误

 is not array or slice and cannot be filtered. Printing more information for debugging the template:
        template was:
                {.items[*].metadata[?(@.labels.module=='ddvv-script')].name}
        object given to jsonpath engine was:

示例文件

{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "v1",
            "kind": "Pod",
            "metadata": {
                "creationTimestamp": "2020-09-18T17:42:50Z",
                "generateName": "ddvv-script-6b784db6bd-",
                "labels": {
                    "app": "my-configs",
                    "lf.module": "ddvv-script",
                    "module": "ddvv-script",
                    "pod-template-hash": "6b784db6bd",
                    "release": "config"
                },
                "name": "ddvv-script-6b784db6bd-rjtgh",

这个命令有什么问题

您可以使用以下命令。它获取标签为 module=ddvv-script

的 pods 的 podname
kubectl get pods --selector=module=ddvv-script --output=jsonpath={.items..metadata.name}
kgp -o jsonpath="{.items[*].metadata[?(@.labels.module=='ddvv-script')].name}"

应该是

kgp -o jsonpath="{.items[?(@.metadata.labels.module=='ddvv-script')].metadata.name}"