Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[zh-cn]sync field-selectors.md #49195

Merged
merged 1 commit into from
Dec 23, 2024
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
---
title: 字段选择器
title: 字段选择算符
content_type: concept
weight: 70
---
Expand All @@ -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`
Expand All @@ -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` 查询是等价的。
Expand All @@ -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
Expand Down Expand Up @@ -83,14 +83,32 @@ 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
You can use the `=`, `==`, and `!=` operators with field selectors (`=` and `==` mean the same thing). This `kubectl` command, for example, selects all Kubernetes Services that aren't in the `default` namespace:
-->
## 支持的操作符 {#supported-operators}

你可在字段选择器中使用 `=``==``!=``=``==` 的意义是相同的)操作符。
你可在字段选择算符中使用 `=``==``!=``=``==` 的意义是相同的)操作符。
例如,下面这个 `kubectl` 命令将筛选所有不属于 `default` 命名空间的 Kubernetes 服务:

```shell
Expand All @@ -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:

Expand All @@ -129,7 +147,7 @@ You can use field selectors across multiple resource types. This `kubectl` comma
-->
## 多种资源类型 {#multiple-resource-types}

你能够跨多种资源类型来使用字段选择器
你能够跨多种资源类型来使用字段选择算符
下面这个 `kubectl` 命令将筛选出所有不在 `default` 命名空间中的 StatefulSet 和 Service:

```shell
Expand Down