linux - 如何使用带有 kubectl 的字段选择器搜索任意字段?
问题描述
在此文档中未列出支持的字段,我无法正确找到它们。通过一些试验和实验,我注意到以下几点:
这很好用并找到了一些 pod:
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。
解决方案
您可以选择serviceAccount
使用以下查询:
kubectl get pods --field-selector=spec.serviceAccountName="default"
当前--field-selector
仅选择基于相等的值,因此它对基于字段选择 pod 的支持也非常有限。支持以下字段--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
推荐阅读
- reactjs - 为什么`npx create-react-app my-app --typescript`不给我打字稿bo
- vue.js - 从相同的插槽名称动态渲染组件
- bison - (Array Parser) 令牌解析 flex/bison 奇怪的行为
- node.js - React 选择菜单 - 选择多个项目 - 高级
- azure-pipelines - 将已编译的 DLL 复制到管道中的源代码控制
- python - 如何修复“在 seaborn 热图上将带有缺失值 (nan) 的 cmap 居中”
- php - Phpmailer 以纯文本形式发送附件
- ruby-on-rails - Rails,渲染 to_xml 不显示模型的字段
- python - Python:解密凯撒密码
- c - 理解 GCC 依赖编译指示指令