Kubernetes kubectl 按类型获取秘密?

Kubernetes kubectl get secrets by type?

我想运行 kubectl 并获取type = X 的所有秘密。这可能吗?

即,如果我想获取 type=tls

的所有秘密

类似于 kubectl get secrets --type=tls?

你可以的jsonpath。像这样:

$ kubectl get secret -o=jsonpath='{range .items[*]}{.metadata.name} {.type}{"\n"}{end}' | grep -i tls

例如,获取所有类型Opaque的秘密:

$ kubectl get secret -o=jsonpath='{range .items[*]}{.metadata.name} {.type}{"\n"}{end}' | grep Opaque
dummy-secret Opaque
mysecretdelete Opaque

更新:

现在您可以使用 kubectl 中的 --field-selector 选项执行此操作:

$ kubectl get secrets --field-selector type=kubernetes.io/tls
$ kubectl get secret --field-selector type=kubernetes.io/service-account-token

接受的答案当然有效,但我有兴趣找到一个 grep-less 解决方案。这是我的贡献。

$ kubectl get secret -o=jsonpath='{.items[?(@.type=="Opaque")].metadata.name}'
dummy-secret mysecretdelete

怎么样field-selector:

$ kubectl get secrets --field-selector type=kubernetes.io/tls