欄位選擇器
欄位選擇器允許你根據一個或多個資源欄位的值來選擇 Kubernetes 物件。以下是一些欄位選擇器查詢示例:
metadata.name=my-service
metadata.namespace!=default
status.phase=Pending
此 kubectl
命令選擇所有 status.phase
欄位值為 Running
的 Pod:
kubectl get pods --field-selector status.phase=Running
注意
欄位選擇器本質上是資源“過濾器”。預設情況下,不應用任何選擇器/過濾器,這意味著將選擇指定型別的所有資源。這使得kubectl
查詢 kubectl get pods
和 kubectl get pods --field-selector ""
等效。支援的欄位
支援的欄位選擇器因 Kubernetes 資源型別而異。所有資源型別都支援 metadata.name
和 metadata.namespace
欄位。使用不支援的欄位選擇器會產生錯誤。例如:
kubectl get ingress --field-selector foo.bar=baz
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"
支援的欄位列表
型別 | 欄位 |
---|---|
Pod | spec.nodeName spec.restartPolicy spec.schedulerName spec.serviceAccountName spec.hostNetwork status.phase status.podIP status.nominatedNodeName |
Event | involvedObject.kind involvedObject.namespace involvedObject.name involvedObject.uid involvedObject.apiVersion involvedObject.resourceVersion involvedObject.fieldPath reason reportingComponent source type |
Secret | type |
Namespace | status.phase |
副本集 | status.replicas |
複製控制器 | status.replicas |
作業 | status.successful |
Node | spec.unschedulable |
CertificateSigningRequest | spec.signerName |
自定義資源欄位
所有自定義資源型別都支援 metadata.name
和 metadata.namespace
欄位。
此外,CustomResourceDefinition 的 spec.versions[*].selectableFields
欄位聲明瞭自定義資源中哪些其他欄位可以用於欄位選擇器。有關如何將欄位選擇器與 CustomResourceDefinitions 一起使用的更多資訊,請參閱自定義資源的可選欄位。
支援的運算子
你可以使用 =
、==
和 !=
運算子與欄位選擇器(=
和 ==
含義相同)。例如,此 kubectl
命令選擇所有不在 default
名稱空間中的 Kubernetes Service:
kubectl get services --all-namespaces --field-selector metadata.namespace!=default
鏈式選擇器
與標籤和其他選擇器一樣,欄位選擇器可以作為逗號分隔列表進行連結。此 kubectl
命令選擇所有 status.phase
不等於 Running
且 spec.restartPolicy
欄位等於 Always
的 Pod:
kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always
多種資源型別
你可以在多種資源型別上使用欄位選擇器。此 kubectl
命令選擇所有不在 default
名稱空間中的 Statefulset 和 Service:
kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default
上次修改時間:2024 年 10 月 31 日太平洋標準時間上午 10:47:刪除穩定功能的欄位門資訊,向欄位選擇器文件新增詳細資訊 (2b996e4434)