diff --git a/content/zh-cn/docs/concepts/overview/working-with-objects/field-selectors.md b/content/zh-cn/docs/concepts/overview/working-with-objects/field-selectors.md index cb61e401c4..4751a848d2 100644 --- a/content/zh-cn/docs/concepts/overview/working-with-objects/field-selectors.md +++ b/content/zh-cn/docs/concepts/overview/working-with-objects/field-selectors.md @@ -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 -字段选择器本质上是资源“过滤器(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` | + +### 自定义资源字段 + +所有自定义资源类型都支持 `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} -你可在字段选择器中使用 `=`、`==` 和 `!=`(`=` 和 `==` 的意义是相同的)操作符。 +你可在字段选择算符中使用 `=`、`==` 和 `!=`(`=` 和 `==` 的意义是相同的)操作符。 例如,下面这个 `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