k8s字段选择器

一、概述

在Kubernetes中,字段选择器(Field Selectors)和标签选择器(Label Selectors)是两种不同的查询机制,用于过滤和选择特定的资源。字段选择器允许用户根据资源的内部字段来过滤资源,这些字段可以是资源的状态、元数据等。通过字段选择器,用户可以精确地选择出满足特定条件的资源,进而对这些资源执行进一步的操作,如查看、删除等。

二、基本语法

kubectl get --field-selector <key>([<operator>][<value>])
  • 使用 kubectl get 命令加上 --field-selector 选项来指定字段选择器。

  • 字段选择器的格式为 =,其中 是资源的字段名, 是要匹配的值。

  • 可以使用多个字段选择器,用逗号分隔。

三、支持的字段

不同的 Kubernetes 资源类型支持不同的字段选择器。 所有资源类型都支持 metadata.namemetadata.namespace 字段。 使用不被支持的字段选择器会产生错误。

1、错误示例

kubectl get ingress --field-selector foo.bar=baz

image-20240713215233430

2、支持的字段列表

类别 字段
Pod spec.nodeName spec.restartPolicy spec.schedulerName spec.serviceAccountName spec.hostNetwork status.phase status.podIP status.nominatedNodeName
Event involvedObject.kind involvedObject.namespace involvedObject.name involvedObject.uid involvedObject.apiVersion involvedObject.resourceVersion involvedObject.fieldPath reason reportingComponent source type
Secret type
Namespace status.phase
ReplicaSet status.replicas
ReplicationController status.replicas
Job status.successful
Node spec.unschedulable
CertificateSigningRequest spec.signerName

四、支持的操作符

  • 等于(= 或 ==):选择字段值等于指定值的资源。
  • 不等于(!=):选择字段值不等于指定值的资源。
  • 基于集合的操作符 (in、notin、exists)不支持字段选择算符。

1、示例

kubectl get pods -A --field-selector=status.phase!=Running
#查询集群中所有非运行状态的Pods

image-20240713220455588

kubectl get pods -A --field-selector=status.phase=Running,spec.restartPolicy=Always
#查询集群中所有处于运行状态(Running)并且重启策略设置为Always的Pods

image-20240713221657491

多个字段选择器可以通过使用逗号分隔的列表组成一个选择链

五、跨多种资源类型使用字段选择器

kubectl get statefulsets,services --all-namespaces --field-selector metadata.namespace!=default
#查询集群中除default命名空间之外的所有命名空间内的StatefulSets和Services资源。

image-20240713222110941

相关推荐

  1. k8s 标签与选择

    2024-07-13 23:34:05       28 阅读
  2. k8s的pod调度之节点选择

    2024-07-13 23:34:05       41 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-13 23:34:05       66 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-13 23:34:05       70 阅读
  3. 在Django里面运行非项目文件

    2024-07-13 23:34:05       57 阅读
  4. Python语言-面向对象

    2024-07-13 23:34:05       68 阅读

热门阅读

  1. 要修改已经推送到远程仓库的提交信息

    2024-07-13 23:34:05       17 阅读
  2. linux 设置nginx开机自启

    2024-07-13 23:34:05       21 阅读
  3. c++贪心算法

    2024-07-13 23:34:05       18 阅读
  4. ArcGIS Pro SDK (八)地理数据库 4 查询

    2024-07-13 23:34:05       16 阅读
  5. 文本语言的上升沿写法

    2024-07-13 23:34:05       15 阅读
  6. Aop实现后端数据重复提交

    2024-07-13 23:34:05       22 阅读
  7. Android C++系列:Linux进程间关系

    2024-07-13 23:34:05       20 阅读
  8. thinkphp5多层with关联查询错误问题

    2024-07-13 23:34:05       25 阅读
  9. Understanding EtherCAT Device Serial Number Checking

    2024-07-13 23:34:05       19 阅读
  10. 1.1 Android启动概览

    2024-07-13 23:34:05       21 阅读
  11. HttpUtils工具类

    2024-07-13 23:34:05       18 阅读
  12. 风景区服务热线系统:智能化时代的旅游新选择

    2024-07-13 23:34:05       21 阅读
  13. acnconda虚拟环境管理笔记

    2024-07-13 23:34:05       21 阅读
  14. Spring基础知识

    2024-07-13 23:34:05       18 阅读