commit
a2a63c2b37
|
@ -1,5 +1,5 @@
|
|||
---
|
||||
title: 字段选择器
|
||||
title: 字段选择算符
|
||||
content_type: concept
|
||||
weight: 70
|
||||
---
|
||||
|
@ -15,9 +15,9 @@ _Field selectors_ let you [select Kubernetes resources](/docs/concepts/overview/
|
|||
_Field selectors_ let you select Kubernetes {{< glossary_tooltip text="objects" term_id="object" >}} based on the
|
||||
value of one or more resource fields. Here are some examples of field selector queries:
|
||||
-->
|
||||
“字段选择器(Field selectors)”允许你根据一个或多个资源字段的值筛选
|
||||
“字段选择算符(Field selectors)”允许你根据一个或多个资源字段的值筛选
|
||||
Kubernetes {{< glossary_tooltip text="对象" term_id="object" >}}。
|
||||
下面是一些使用字段选择器查询的例子:
|
||||
下面是一些使用字段选择算符查询的例子:
|
||||
|
||||
* `metadata.name=my-service`
|
||||
* `metadata.namespace!=default`
|
||||
|
@ -38,7 +38,7 @@ kubectl get pods --field-selector status.phase=Running
|
|||
<!--
|
||||
Field selectors are essentially resource *filters*. By default, no selectors/filters are applied, meaning that all resources of the specified type are selected. This makes the `kubectl` queries `kubectl get pods` and `kubectl get pods --field-selector ""` equivalent.
|
||||
-->
|
||||
字段选择器本质上是资源“过滤器(Filters)”。默认情况下,字段选择器/过滤器是未被应用的,
|
||||
字段选择算符本质上是资源“过滤器(Filters)”。默认情况下,字段选择算符/过滤器是未被应用的,
|
||||
这意味着指定类型的所有资源都会被筛选出来。
|
||||
这使得 `kubectl get pods` 和 `kubectl get pods --field-selector ""`
|
||||
这两个 `kubectl` 查询是等价的。
|
||||
|
@ -52,9 +52,9 @@ Supported field selectors vary by Kubernetes resource type. All resource types s
|
|||
-->
|
||||
## 支持的字段 {#supported-fields}
|
||||
|
||||
不同的 Kubernetes 资源类型支持不同的字段选择器。
|
||||
不同的 Kubernetes 资源类型支持不同的字段选择算符。
|
||||
所有资源类型都支持 `metadata.name` 和 `metadata.namespace` 字段。
|
||||
使用不被支持的字段选择器会产生错误。例如:
|
||||
使用不被支持的字段选择算符会产生错误。例如:
|
||||
|
||||
```shell
|
||||
kubectl get ingress --field-selector foo.bar=baz
|
||||
|
@ -83,6 +83,24 @@ Error from server (BadRequest): Unable to find "ingresses" that match label sele
|
|||
| Node | `spec.unschedulable` |
|
||||
| CertificateSigningRequest | `spec.signerName` |
|
||||
|
||||
<!--
|
||||
### Custom resources fields
|
||||
|
||||
All custom resource types support the `metadata.name` and `metadata.namespace` fields.
|
||||
|
||||
Additionally, the `spec.versions[*].selectableFields` field of a {{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}}
|
||||
declares which other fields in a custom resource may be used in field selectors. See [selectable fields for custom resources](/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#crd-selectable-fields)
|
||||
for more information about how to use field selectors with CustomResourceDefinitions.
|
||||
-->
|
||||
### 自定义资源字段
|
||||
|
||||
所有自定义资源类型都支持 `metadata.name` 和 `metadata.namespace` 字段。
|
||||
|
||||
此外,{{< glossary_tooltip term_id="CustomResourceDefinition" text="CustomResourceDefinition" >}}
|
||||
的 `spec.versions[*].selectableFields` 字段声明了自定义资源中哪些其他字段可以用于字段选择算符。
|
||||
有关如何使用 CustomResourceDefinitions 的字段选择算符的更多信息,
|
||||
请参阅[自定义资源的选择字段](/zh-cn/docs/tasks/extend-kubernetes/custom-resources/custom-resource-definitions/#crd-selectable-fields)。
|
||||
|
||||
<!--
|
||||
## Supported operators
|
||||
|
||||
|
@ -90,7 +108,7 @@ You can use the `=`, `==`, and `!=` operators with field selectors (`=` and `==`
|
|||
-->
|
||||
## 支持的操作符 {#supported-operators}
|
||||
|
||||
你可在字段选择器中使用 `=`、`==` 和 `!=`(`=` 和 `==` 的意义是相同的)操作符。
|
||||
你可在字段选择算符中使用 `=`、`==` 和 `!=`(`=` 和 `==` 的意义是相同的)操作符。
|
||||
例如,下面这个 `kubectl` 命令将筛选所有不属于 `default` 命名空间的 Kubernetes 服务:
|
||||
|
||||
```shell
|
||||
|
@ -111,10 +129,10 @@ kubectl get services --all-namespaces --field-selector metadata.namespace!=defa
|
|||
|
||||
As with [label](/docs/concepts/overview/working-with-objects/labels) and other selectors, field selectors can be chained together as a comma-separated list. This `kubectl` command selects all Pods for which the `status.phase` does not equal `Running` and the `spec.restartPolicy` field equals `Always`:
|
||||
-->
|
||||
## 链式选择器 {#chained-selectors}
|
||||
## 链式选择算符 {#chained-selectors}
|
||||
|
||||
同[标签](/zh-cn/docs/concepts/overview/working-with-objects/labels/)和其他选择器一样,
|
||||
字段选择器可以通过使用逗号分隔的列表组成一个选择链。
|
||||
同[标签](/zh-cn/docs/concepts/overview/working-with-objects/labels/)和其他选择算符一样,
|
||||
字段选择算符可以通过使用逗号分隔的列表组成一个选择链。
|
||||
下面这个 `kubectl` 命令将筛选 `status.phase` 字段不等于 `Running` 同时
|
||||
`spec.restartPolicy` 字段等于 `Always` 的所有 Pod:
|
||||
|
||||
|
@ -129,7 +147,7 @@ You can use field selectors across multiple resource types. This `kubectl` comma
|
|||
-->
|
||||
## 多种资源类型 {#multiple-resource-types}
|
||||
|
||||
你能够跨多种资源类型来使用字段选择器。
|
||||
你能够跨多种资源类型来使用字段选择算符。
|
||||
下面这个 `kubectl` 命令将筛选出所有不在 `default` 命名空间中的 StatefulSet 和 Service:
|
||||
|
||||
```shell
|
||||
|
|
Loading…
Reference in New Issue