W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
“字段選擇器(Field selectors)”允許你根據(jù)一個或多個資源字段的值 篩選 Kubernetes 資源。 下面是一些使用字段選擇器查詢的例子:
metadata.name=my-service
?metadata.namespace!=default
?status.phase=Pending
?下面這個 ?kubectl
?命令將篩選出 ?status.phase
? 字段值為 ?Running
?的所有 Pod:
kubectl get pods --field-selector status.phase=Running
字段選擇器本質(zhì)上是資源過濾器(Filters)。默認(rèn)情況下,字段選擇器/過濾器是未被應(yīng)用的, 這意味著指定類型的所有資源都會被篩選出來。 這使得以下的兩個 ?kubectl ?查詢是等價的:
kubectl get pods kubectl get pods --field-selector ""
不同的 Kubernetes 資源類型支持不同的字段選擇器。 所有資源類型都支持 ?metadata.name
? 和 ?metadata.namespace
? 字段。 使用不被支持的字段選擇器會產(chǎn)生錯誤。例如:
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"
你可在字段選擇器中使用 ?=
?、?==
?和 ?!=
? (?=
? 和 ?==
? 的意義是相同的)操作符。 例如,下面這個 ?kubectl
? 命令將篩選所有不屬于 ?default
?命名空間的 Kubernetes 服務(wù):
kubectl get services --all-namespaces --field-selector metadata.namespace!=default
同標(biāo)簽和其他選擇器一樣, 字段選擇器可以通過使用逗號分隔的列表組成一個選擇鏈。 下面這個 ?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
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: