在此doc中,未列出受支持的字段,我无法正确找到它们。通过一些试验和实验,我注意到了以下几点:
这很好用,并找到了一些豆荚:
kubectl get pods --field-selector=spec.restartPolicy=Never
但这会产生错误:
kubectl get pods --field-selector=spec.serviceAccount=default
No resources found.
Error from server (BadRequest): Unable to find {"" "v1" "pods"} that match label selector "", field selector "spec.serviceAccount=default": field label not supported: spec.serviceAccount
那这是怎么决定的呢?我知道我可以使用JSONPath找到它,但它是客户端过滤AFAIK。
答案 0 :(得分:2)
您可以使用以下查询选择serviceAccount
:
kubectl get pods --field-selector=spec.serviceAccountName="default"
--field-selector
当前仅选择基于等式的值,因此基于字段选择容器的支持也非常有限。 --field-selector
支持以下字段:
metadata.name
metadata.namespace
spec.nodeName
spec.restartPolicy
spec.schedulerName
spec.serviceAccountName
status.phase
status.podIP
status.nominatedNodeName
您已经知道,您需要依赖jsonpath来选择除上述字段以外的任何其他字段。
您可以访问以下链接以了解更多信息:
https://github.com/kubernetes/kubernetes/blob/master/pkg/apis/core/v1/conversion.go#L160-L167] 1