如何在kubernetes中获取对象的元数据名称

问题描述 投票:0回答:2

我可以获取对象列表的所有内容,例如SecretsConfigMaps

{
"kind": "SecretList",
"apiVersion": "v1",
"metadata": {
    "selfLink": "/api/v1/namespaces/kube-system/secrets",
    "resourceVersion": "499638"
},
"items": [{
    "metadata": {
        "name": "aaa",
        "namespace": "kube-system",
        "selfLink": "/api/v1/namespaces/kube-system/secrets/aaa",
        "uid": "96b0fbee-f14c-423d-9734-53fed20ae9f9",
        "resourceVersion": "1354",
        "creationTimestamp": "2020-02-24T11:20:23Z"
    },
    "data": "aaa"
}]
}

但是我只想要名称列表,例如:"aaa"。有什么办法吗?

rest api kubernetes
2个回答
0
投票
我认为这应该可行。

kubectl get secretlist -o=jsonpath="{.items[*].metadata.name]}" | grep -v HEAD | head -n1

检查下面的链接以获取更多信息。https://kubernetes.io/docs/reference/kubectl/jsonpath/

0
投票
是,您可以通过使用jsonpath输出来实现。请注意,您发布的规范在应用后会看起来完全不同。它将在您的Secret命名空间中以及运行时创建一个kube-system对象:

$ kubectl get secret -n kube-system aaa -o json

输出将类似于以下内容:

{ "apiVersion": "v1", "kind": "Secret", "name": "aaa", "namespace": "kube-system", "resourceVersion": "34488887", "selfLink": "/api/v1/namespaces/kube-system/secrets/aaa", "uid": "229edeb3-57bf-11ea-b366-42010a9c0093" }, "type": "Opaque" }

仅获取nameSecret,您需要运行:

kubectl get secret aaa -n kube-system -o jsonpath='{.metadata.name}'

© www.soinside.com 2019 - 2024. All rights reserved.