使用Kubernetes对象6---字段选择器(Field Selectors)

字段选择器让你通过单个或多个资源字段的值来选择kubernates资源( select Kubernetes resources )。

一些资源选择器查询例子:

metadata.name=my-service
metadata.namespace!=default
status.phase=Pending

下面的kubectl命令选择所有status.phase字段的值是Running的Pods:

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"

支持的操作符

你可以在字段选择器中使用(=)、==)、!=)操作符(=和==是相同的)。 下例kubectl命令选择所有不在default名称空间的Kubernetes Services。

kubectl get services --field-selector metadata.namespace!=default

链选择器

和 label 还有其他选择器一样,字段选择器可以彼此连接成一个逗号分隔的列表。下例kubectl命令选择了所有status.phase不为Runningspec.restartPolicyAlways的Pod.

kubectl get pods --field-selector=status.phase!=Running,spec.restartPolicy=Always

多资源类型

你可以跨越多资源类型使用字段选择器。下例kubectl命令选择了所有不在default 名称空间的Statefulsets和Services

kubectl get statefulsets,services --field-selector metadata.namespace!=default

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值