新聞中心
字段選擇器
“字段選擇器(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
鏈?zhǔn)竭x擇器
同標(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
本文題目:創(chuàng)新互聯(lián)kubernetes教程:Kubernetes字段選擇器
地址分享:http://m.fisionsoft.com.cn/article/cosjoed.html


咨詢
建站咨詢
