From 0ed73f3fa0300cee9b9d6fffbe95803012679352 Mon Sep 17 00:00:00 2001 From: windsonsea Date: Mon, 29 May 2023 09:25:13 +0800 Subject: [PATCH] [zh] sync /using-api/api-concepts.md --- .../docs/reference/using-api/api-concepts.md | 50 +++++++++++++++++ .../reference/using-api/client-libraries.md | 6 +- .../reference/using-api/deprecation-guide.md | 55 +++++++++---------- 3 files changed, 79 insertions(+), 32 deletions(-) diff --git a/content/zh-cn/docs/reference/using-api/api-concepts.md b/content/zh-cn/docs/reference/using-api/api-concepts.md index 42b41f3b52cba..e4a4b7d90ae46 100644 --- a/content/zh-cn/docs/reference/using-api/api-concepts.md +++ b/content/zh-cn/docs/reference/using-api/api-concepts.md @@ -469,6 +469,56 @@ Content-Type: application/json ``` + +## 响应压缩 {#response-compression} + +{{< feature-state for_k8s_version="v1.16" state="beta" >}} + + +`APIResponseCompression` 是一个选项,允许 API 服务器压缩 **get** 和 **list** 请求的响应, +减少占用的网络带宽并提高大规模集群的性能。此选项自 Kubernetes 1.16 以来默认启用, +可以通过在 API 服务器上的 `--feature-gates` 标志中包含 `APIResponseCompression=false` 来禁用。 + + +特别是对于大型资源或[集合](/zh-cn/docs/reference/using-api/api-concepts/#collections), +API 响应压缩可以显著减小其响应的大小。例如,针对 Pod 的 **list** 请求可能会返回数百 KB 甚至几 MB 的数据, +具体大小取决于 Pod 数量及其属性。通过压缩响应,可以节省网络带宽并降低延迟。 + + +要验证 `APIResponseCompression` 是否正常工作,你可以使用一个 `Accept-Encoding` +头向 API 服务器发送一个 **get** 或 **list** 请求,并检查响应大小和头信息。例如: + +```console +GET /api/v1/pods +Accept-Encoding: gzip +--- +200 OK +Content-Type: application/json +content-encoding: gzip +... +``` + + +`content-encoding` 头表示响应使用 `gzip` 进行了压缩。 + diff --git a/content/zh-cn/docs/reference/using-api/client-libraries.md b/content/zh-cn/docs/reference/using-api/client-libraries.md index 3c03d84059e58..8a30ffc4ca250 100644 --- a/content/zh-cn/docs/reference/using-api/client-libraries.md +++ b/content/zh-cn/docs/reference/using-api/client-libraries.md @@ -17,8 +17,7 @@ weight: 30 This page contains an overview of the client libraries for using the Kubernetes API from various programming languages. --> -本页面包含基于各种编程语言使用 Kubernetes API 的客户端库概述。 - +本页面概要介绍了基于各种编程语言使用 Kubernetes API 的客户端库。 -以下客户端库由 [Kubernetes SIG API Machinery](https://github.com/kubernetes/community/tree/master/sig-api-machinery) 正式维护。 +以下客户端库由 [Kubernetes SIG API Machinery](https://github.com/kubernetes/community/tree/master/sig-api-machinery) +正式维护。 -随着 Kubernetes API 的演化,APIs 会周期性地被重组或升级。 -当 APIs 演化时,老的 API 会被弃用并被最终删除。 +随着 Kubernetes API 的演化,API 会周期性地被重组或升级。 +当 API 演化时,老的 API 会被弃用并被最终删除。 本页面包含你在将已弃用 API 版本迁移到新的更稳定的 API 版本时需要了解的知识。 @@ -105,7 +105,7 @@ The **flowcontrol.apiserver.k8s.io/v1beta1** API version of FlowSchema and Prior * All existing persisted objects are accessible via the new API * No notable changes --> -从 v1.26 版本开始不再提供 **flowcontrol.apiserver.k8s.io/v1beta1** API 版本的 +从 v1.26 版本开始不再提供 **flowcontrol.apiserver.k8s.io/v1beta1** API 版本的 FlowSchema 和 PriorityLevelConfiguration。 * 迁移清单和 API 客户端使用 **flowcontrol.apiserver.k8s.io/v1beta3** API 版本, @@ -148,7 +148,7 @@ The **batch/v1beta1** API version of CronJob is no longer served as of v1.25. * 迁移清单和 API 客户端使用 **batch/v1** API 版本,此 API 从 v1.21 版本开始可用; * 所有的已保存的对象都可以通过新的 API 来访问; -* 没有需要额外注意的变更 +* 没有需要额外注意的变更。 #### EndpointSlice {#endpointslice-v125} @@ -218,7 +218,6 @@ The **events.k8s.io/v1beta1** API version of Event is no longer served as of v1. @@ -226,7 +225,7 @@ The **autoscaling/v2beta1** API version of HorizontalPodAutoscaler is no longer HorizontalPodAutoscaler。 * 迁移清单和 API 客户端使用 **autoscaling/v2** API 版本,此 API 从 v1.23 版本开始可用; -* 所有的已保存的对象都可以通过新的 API 来访问; +* 所有的已保存的对象都可以通过新的 API 来访问。 #### PodDisruptionBudget {#poddisruptionbudget-v125} @@ -244,9 +243,9 @@ The **policy/v1beta1** API version of PodDisruptionBudget is no longer served as * 所有的已保存的对象都可以通过新的 API 来访问; * **policy/v1** 中需要额外注意的变更有: * 在 `policy/v1` 版本的 PodDisruptionBudget 中将 `spec.selector` - 设置为空(`{}`)时会选择名字空间中的所有 Pods(在 `policy/v1beta1` - 版本中,空的 `spec.selector` 不会选择任何 Pods)。如果 `spec.selector` - 未设置,则在两个 API 版本下都不会选择任何 Pods。 + 设置为空(`{}`)时会选择名字空间中的所有 Pod(在 `policy/v1beta1` + 版本中,空的 `spec.selector` 不会选择任何 Pod)。如果 `spec.selector` + 未设置,则在两个 API 版本下都不会选择任何 Pod。 #### PodSecurityPolicy {#psp-v125} @@ -278,7 +277,7 @@ RuntimeClass in the **node.k8s.io/v1beta1** API version is no longer served as o * 迁移清单和 API 客户端使用 **node.k8s.io/v1** API 版本,此 API 从 v1.20 版本开始可用; * 所有的已保存的对象都可以通过新的 API 来访问; -* 没有需要额外注意的变更 +* 没有需要额外注意的变更。 ### v1.22 @@ -303,7 +302,7 @@ The **admissionregistration.k8s.io/v1beta1** API version of MutatingWebhookConfi * All existing persisted objects are accessible via the new APIs --> * 迁移清单和 API 客户端使用 **admissionregistration.k8s.io/v1** API 版本, -此 API 从 v1.16 版本开始可用; + 此 API 从 v1.16 版本开始可用; * 所有的已保存的对象都可以通过新的 API 来访问; * 值得注意的变更: - * `spec.backend` 字段被更名为 `spec.defaultBackend` - * 后端的 `serviceName` 字段被更名为 `service.name` - * 数值表示的后端 `servicePort` 字段被更名为 `service.port.number` - * 字符串表示的后端 `servicePort` 字段被更名为 `service.port.name` - * 对所有要指定的路径,`pathType` 都成为必需字段。 - 可选项为 `Prefix`、`Exact` 和 `ImplementationSpecific`。 - 要匹配 `v1beta1` 版本中未定义路径类型时的行为,可使用 `ImplementationSpecific` + * `spec.backend` 字段被更名为 `spec.defaultBackend` + * 后端的 `serviceName` 字段被更名为 `service.name` + * 数值表示的后端 `servicePort` 字段被更名为 `service.port.number` + * 字符串表示的后端 `servicePort` 字段被更名为 `service.port.name` + * 对所有要指定的路径,`pathType` 都成为必需字段。 + 可选项为 `Prefix`、`Exact` 和 `ImplementationSpecific`。 + 要匹配 `v1beta1` 版本中未定义路径类型时的行为,可使用 `ImplementationSpecific` #### IngressClass {#ingressclass-v122} @@ -525,8 +523,7 @@ The **networking.k8s.io/v1beta1** API version of IngressClass is no longer serve * 迁移清单和 API 客户端使用 **networking.k8s.io/v1** API 版本,此 API 从 v1.19 版本开始可用; * 所有的已保存的对象都可以通过新的 API 来访问; -* 没有需要额外注意的变更 - +* 没有需要额外注意的变更。 -例如,要将较老的 Deployment 版本转换为 `apps/v1` 版本,你可以运行 +例如,要将较老的 Deployment 版本转换为 `apps/v1` 版本,你可以运行: `kubectl-convert -f ./my-deployment.yaml --output-version apps/v1`