字段选择器
metadata.namespace!=default
status.phase=Pending
下面这个 kubectl
命令将筛选出 status.phase 字段值为 Running
的所有 Pod:
字段选择器本质上是资源“过滤器(Filters)”。默认情况下,字段选择器/过滤器是未被应用的, 这意味着指定类型的所有资源都会被筛选出来。 这使得以下的两个 kubectl
查询是等价的:
kubectl get pods --field-selector ""
Error from server (BadRequest): Unable to find "ingresses" that match label selector "", field selector "foo.bar=baz": "foo.bar" is not a known field selector: only "metadata.name", "metadata.namespace"
你可在字段选择器中使用 =
、==
和 !=
(=
和 ==
的意义是相同的)操作符。 例如,下面这个 命令将筛选所有不属于 default
命名空间的 Kubernetes 服务:
kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always
你能够跨多种资源类型来使用字段选择器。 下面这个 命令将筛选出所有不在 default
命名空间中的 StatefulSet 和 Service: