[zh]Update tasks pages(part-2) for links with '/zh/' prefix, using new prefix '/zh-cn/'

This commit is contained in:
howieyuen
2022-06-23 20:02:20 +08:00
parent e0d6f94bf6
commit 41f1c40756
25 changed files with 162 additions and 162 deletions
@@ -13,7 +13,7 @@ Kubernetes v1.21.
introduced in Kubernetes v1.21, provide similar functionality. introduced in Kubernetes v1.21, provide similar functionality.
--> -->
这项功能,特别是 Alpha 状态的 `topologyKeys` 字段,在 kubernetes v1.21 中已经弃用。 这项功能,特别是 Alpha 状态的 `topologyKeys` 字段,在 kubernetes v1.21 中已经弃用。
在 kubernetes v1.21 加入的[拓扑感知提示](/zh/docs/concepts/services-networking/topology-aware-hints/) 在 kubernetes v1.21 加入的[拓扑感知提示](/zh-cn/docs/concepts/services-networking/topology-aware-hints/)
提供了类似的功能。 提供了类似的功能。
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
@@ -61,7 +61,7 @@ To enable service topology, enable the `ServiceTopology`
{{< feature-state for_k8s_version="v1.21" state="deprecated" >}} {{< feature-state for_k8s_version="v1.21" state="deprecated" >}}
要启用服务拓扑功能,需要为所有 Kubernetes 组件启用 `ServiceTopology` 要启用服务拓扑功能,需要为所有 Kubernetes 组件启用 `ServiceTopology`
[特性门控](/zh/docs/reference/command-line-tools-reference/feature-gates/) [特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)
``` ```
--feature-gates="ServiceTopology=true` --feature-gates="ServiceTopology=true`
@@ -77,7 +77,7 @@ To enable service topology, enable the `ServiceTopology`
* Read [Connecting Applications with Services](/docs/concepts/services-networking/connect-applications-service/) * Read [Connecting Applications with Services](/docs/concepts/services-networking/connect-applications-service/)
--> -->
* 阅读[拓扑感知提示](/zh/docs/concepts/services-networking/topology-aware-hints/),该技术是用来替换 `topologyKeys` 字段的。 * 阅读[拓扑感知提示](/zh-cn/docs/concepts/services-networking/topology-aware-hints/),该技术是用来替换 `topologyKeys` 字段的。
* 阅读[端点切片](/zh/docs/concepts/services-networking/endpoint-slices) * 阅读[端点切片](/zh-cn/docs/concepts/services-networking/endpoint-slices)
* 阅读[服务拓扑](/zh/docs/concepts/services-networking/service-topology)概念 * 阅读[服务拓扑](/zh-cn/docs/concepts/services-networking/service-topology)概念
* 阅读[通过服务来连接应用](/zh/docs/concepts/services-networking/connect-applications-service/) * 阅读[通过服务来连接应用](/zh-cn/docs/concepts/services-networking/connect-applications-service/)
@@ -39,7 +39,7 @@ An example configuration is provided below.
## 配置并确定是否已启用静态数据加密 ## 配置并确定是否已启用静态数据加密
`kube-apiserver` 的参数 `--encryption-provider-config` 控制 API 数据在 etcd 中的加密方式。 `kube-apiserver` 的参数 `--encryption-provider-config` 控制 API 数据在 etcd 中的加密方式。
该配置作为一个名为 [`EncryptionConfiguration`](/zh/docs/reference/config-api/apiserver-encryption.v1/) 的 API 提供。 该配置作为一个名为 [`EncryptionConfiguration`](/zh-cn/docs/reference/config-api/apiserver-encryption.v1/) 的 API 提供。
下面提供了一个示例配置。 下面提供了一个示例配置。
<!-- <!--
@@ -108,7 +108,7 @@ For more detailed information about the `EncryptionConfiguration` struct, please
当从存储器读取资源时,与存储的数据匹配的所有 provider 将按顺序尝试解密数据。 当从存储器读取资源时,与存储的数据匹配的所有 provider 将按顺序尝试解密数据。
如果由于格式或密钥不匹配而导致没有 provider 能够读取存储的数据,则会返回一个错误,以防止客户端访问该资源。 如果由于格式或密钥不匹配而导致没有 provider 能够读取存储的数据,则会返回一个错误,以防止客户端访问该资源。
有关 `EncryptionConfiguration` 结构体的更多详细信息,请参阅[加密配置 API](/zh/docs/reference/config-api/apiserver-encryption.v1/)。 有关 `EncryptionConfiguration` 结构体的更多详细信息,请参阅[加密配置 API](/zh-cn/docs/reference/config-api/apiserver-encryption.v1/)。
<!-- <!--
If any resource is not readable via the encryption config (because keys were changed), If any resource is not readable via the encryption config (because keys were changed),
@@ -141,7 +141,7 @@ is the first provider, the first key is used for encryption.
`secretbox` | XSalsa20 和 Poly1305 | 强 | 更快 | 32字节 | 较新的标准,在需要高度评审的环境中可能不被接受。 `secretbox` | XSalsa20 和 Poly1305 | 强 | 更快 | 32字节 | 较新的标准,在需要高度评审的环境中可能不被接受。
`aesgcm` | 带有随机数的 AES-GCM | 必须每 200k 写入一次 | 最快 | 16, 24 或者 32字节 | 建议不要使用,除非实施了自动密钥循环方案。 `aesgcm` | 带有随机数的 AES-GCM | 必须每 200k 写入一次 | 最快 | 16, 24 或者 32字节 | 建议不要使用,除非实施了自动密钥循环方案。
`aescbc` | 填充 [PKCS#7](https://datatracker.ietf.org/doc/html/rfc2315) 的 AES-CBC | 弱 | 快 | 32字节 | 由于 CBC 容易受到密文填塞攻击(Padding Oracle Attack),不推荐使用。 `aescbc` | 填充 [PKCS#7](https://datatracker.ietf.org/doc/html/rfc2315) 的 AES-CBC | 弱 | 快 | 32字节 | 由于 CBC 容易受到密文填塞攻击(Padding Oracle Attack),不推荐使用。
`kms` | 使用信封加密方案:数据使用带有 [PKCS#7](https://datatracker.ietf.org/doc/html/rfc2315) 填充的 AES-CBC 通过数据加密密钥(DEK)加密,DEK 根据 Key Management ServiceKMS)中的配置通过密钥加密密钥(Key Encryption KeysKEK)加密 | 最强 | 快 | 32字节 | 建议使用第三方工具进行密钥管理。为每个加密生成新的 DEK,并由用户控制 KEK 轮换来简化密钥轮换。[配置 KMS 提供程序](/zh/docs/tasks/administer-cluster/kms-provider/) `kms` | 使用信封加密方案:数据使用带有 [PKCS#7](https://datatracker.ietf.org/doc/html/rfc2315) 填充的 AES-CBC 通过数据加密密钥(DEK)加密,DEK 根据 Key Management ServiceKMS)中的配置通过密钥加密密钥(Key Encryption KeysKEK)加密 | 最强 | 快 | 32字节 | 建议使用第三方工具进行密钥管理。为每个加密生成新的 DEK,并由用户控制 KEK 轮换来简化密钥轮换。[配置 KMS 提供程序](/zh-cn/docs/tasks/administer-cluster/kms-provider/)
每个 provider 都支持多个密钥 - 在解密时会按顺序使用密钥,如果是第一个 provider,则第一个密钥用于加密。 每个 provider 都支持多个密钥 - 在解密时会按顺序使用密钥,如果是第一个 provider,则第一个密钥用于加密。
@@ -289,7 +289,7 @@ program to retrieve the contents of your Secret.
to completely decode the Secret. to completely decode the Secret.
--> -->
其输出应该包含 `mykey: bXlkYXRh``mydata` 的内容是被加密过的, 其输出应该包含 `mykey: bXlkYXRh``mydata` 的内容是被加密过的,
请参阅[解密 Secret](/zh/docs/tasks/configmap-secret/managing-secret-using-kubectl/#decoding-secret) 请参阅[解密 Secret](/zh-cn/docs/tasks/configmap-secret/managing-secret-using-kubectl/#decoding-secret)
了解如何完全解码 Secret 内容。 了解如何完全解码 Secret 内容。
<!-- <!--
@@ -391,4 +391,4 @@ kubectl get secrets --all-namespaces -o json | kubectl replace -f -
<!-- <!--
* Learn more about the [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-encryption.v1/). * Learn more about the [EncryptionConfiguration configuration API (v1)](/docs/reference/config-api/apiserver-encryption.v1/).
--> -->
进一步学习 [EncryptionConfiguration 配置 API (v1)](/zh/docs/reference/config-api/apiserver-encryption.v1/)。 进一步学习 [EncryptionConfiguration 配置 API (v1)](/zh-cn/docs/reference/config-api/apiserver-encryption.v1/)。
@@ -142,7 +142,7 @@ number of dongles. See
[Assign Extended Resources to a Container](/docs/tasks/configure-pod-container/extended-resource/). [Assign Extended Resources to a Container](/docs/tasks/configure-pod-container/extended-resource/).
--> -->
现在,应用开发者可以创建请求一定数量 dongle 资源的 Pod 了。 现在,应用开发者可以创建请求一定数量 dongle 资源的 Pod 了。
参见[将扩展资源分配给容器](/zh/docs/tasks/configure-pod-container/extended-resource/)。 参见[将扩展资源分配给容器](/zh-cn/docs/tasks/configure-pod-container/extended-resource/)。
<!-- <!--
## Discussion ## Discussion
@@ -294,10 +294,10 @@ kubectl describe node <your-node-name> | grep dongle
--> -->
### 针对应用开发人员 ### 针对应用开发人员
* [将扩展资源分配给容器](/zh/docs/tasks/configure-pod-container/extended-resource/) * [将扩展资源分配给容器](/zh-cn/docs/tasks/configure-pod-container/extended-resource/)
### 针对集群管理员 ### 针对集群管理员
* [为名字空间配置最小和最大内存约束](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) * [为名字空间配置最小和最大内存约束](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)
* [为名字空间配置最小和最大 CPU 约束](/zh/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) * [为名字空间配置最小和最大 CPU 约束](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)
@@ -149,7 +149,7 @@ to your cluster.
或者你使用的集群 CIDR 不在 10.0.0.0/8 范围内, 或者你使用的集群 CIDR 不在 10.0.0.0/8 范围内,
`ip-masq-agent` 将在你的集群中运行。 `ip-masq-agent` 将在你的集群中运行。
如果你在其他环境中运行,可以将 `ip-masq-agent` 如果你在其他环境中运行,可以将 `ip-masq-agent`
[DaemonSet](/zh/docs/concepts/workloads/controllers/daemonset/) 添加到你的集群中。 [DaemonSet](/zh-cn/docs/concepts/workloads/controllers/daemonset/) 添加到你的集群中。
<!-- steps --> <!-- steps -->
@@ -183,10 +183,10 @@ More information can be found in the ip-masq-agent documentation [here](https://
In most cases, the default set of rules should be sufficient; however, if this is not the case for your cluster, you can create and apply a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) to customize the IP ranges that are affected. For example, to allow only 10.0.0.0/8 to be considered by the ip-masq-agent, you can create the following [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) in a file called "config". In most cases, the default set of rules should be sufficient; however, if this is not the case for your cluster, you can create and apply a [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) to customize the IP ranges that are affected. For example, to allow only 10.0.0.0/8 to be considered by the ip-masq-agent, you can create the following [ConfigMap](/docs/tasks/configure-pod-container/configure-pod-configmap/) in a file called "config".
--> -->
在大多数情况下,默认的规则集应该足够;但是,如果你的集群不是这种情况,则可以创建并应用 在大多数情况下,默认的规则集应该足够;但是,如果你的集群不是这种情况,则可以创建并应用
[ConfigMap](/zh/docs/tasks/configure-pod-container/configure-pod-configmap/) [ConfigMap](/zh-cn/docs/tasks/configure-pod-container/configure-pod-configmap/)
来自定义受影响的 IP 范围。 来自定义受影响的 IP 范围。
例如,要允许 ip-masq-agent 仅作用于 10.0.0.0/8,你可以在一个名为 “config” 的文件中创建以下 例如,要允许 ip-masq-agent 仅作用于 10.0.0.0/8,你可以在一个名为 “config” 的文件中创建以下
[ConfigMap](/zh/docs/tasks/configure-pod-container/configure-pod-configmap/) 。 [ConfigMap](/zh-cn/docs/tasks/configure-pod-container/configure-pod-configmap/) 。
{{< note >}} {{< note >}}
<!-- <!--
@@ -61,7 +61,7 @@ To configure a KMS provider on the API server, include a provider of type ```kms
* `timeout`: 在返回一个错误之前,kube-apiserver 等待 kms-plugin 响应的时间(默认是 3 秒)。 * `timeout`: 在返回一个错误之前,kube-apiserver 等待 kms-plugin 响应的时间(默认是 3 秒)。
<!-- See [Understanding the encryption at rest configuration.](/docs/tasks/administer-cluster/encrypt-data) --> <!-- See [Understanding the encryption at rest configuration.](/docs/tasks/administer-cluster/encrypt-data) -->
参见[理解静态数据加密配置](/zh/docs/tasks/administer-cluster/encrypt-data) 参见[理解静态数据加密配置](/zh-cn/docs/tasks/administer-cluster/encrypt-data)
<!-- <!--
## Implementing a KMS plugin ## Implementing a KMS plugin
@@ -41,7 +41,7 @@ If you are using VXLAN/Overlay networking you must have also have [KB4489899](ht
如果你在使用 VXLAN/覆盖(Overlay)联网设施,则你还必须安装 [KB4489899](https://support.microsoft.com/help/4489899)。 如果你在使用 VXLAN/覆盖(Overlay)联网设施,则你还必须安装 [KB4489899](https://support.microsoft.com/help/4489899)。
* 一个利用 kubeadm 创建的基于 Linux 的 Kubernetes 集群;你能访问该集群的控制面 * 一个利用 kubeadm 创建的基于 Linux 的 Kubernetes 集群;你能访问该集群的控制面
(参见[使用 kubeadm 创建一个单控制面的集群](/zh/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/))。 (参见[使用 kubeadm 创建一个单控制面的集群](/zh-cn/docs/setup/production-environment/tools/kubeadm/create-cluster-kubeadm/))。
## {{% heading "objectives" %}} ## {{% heading "objectives" %}}
@@ -385,11 +385,11 @@ For that reason, an additional service [cri-dockerd](https://github.com/Mirantis
has to be installed. cri-dockerd is a project based on the legacy built-in has to be installed. cri-dockerd is a project based on the legacy built-in
Docker Engine support that was [removed](/dockershim) from the kubelet in version 1.24. Docker Engine support that was [removed](/dockershim) from the kubelet in version 1.24.
--> -->
Docker Engine 没有实现 [CRI](/zh/docs/concepts/architecture/cri/) Docker Engine 没有实现 [CRI](/zh-cn/docs/concepts/architecture/cri/)
而 CRI 是容器运行时能够与 Kubernetes 一起工作的要求。 而 CRI 是容器运行时能够与 Kubernetes 一起工作的要求。
出于这个原因,必须安装一个额外的服务 [cri-dockerd](https://github.com/Mirantis/cri-dockerd)。 出于这个原因,必须安装一个额外的服务 [cri-dockerd](https://github.com/Mirantis/cri-dockerd)。
cri-dockerd 是一个基于原来的内置 Docker Engine 支持的项目, cri-dockerd 是一个基于原来的内置 Docker Engine 支持的项目,
而这一支持在 1.24 版本的 kubelet 中[已被移除](/zh/dockershim)。 而这一支持在 1.24 版本的 kubelet 中[已被移除](/zh-cn/dockershim)。
{{< /note >}} {{< /note >}}
<!-- <!--
@@ -460,5 +460,5 @@ Once the flannel Pod is running, your node should enter the `Ready` state and th
<!-- <!--
- [Upgrading Windows kubeadm nodes](/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes) - [Upgrading Windows kubeadm nodes](/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes)
--> -->
- [升级 kubeadm 安装的 Windows 节点](/zh/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes) - [升级 kubeadm 安装的 Windows 节点](/zh-cn/docs/tasks/administer-cluster/kubeadm/upgrading-windows-nodes)
@@ -23,7 +23,7 @@ runtime cgroup driver for kubeadm clusters.
You should be familiar with the Kubernetes You should be familiar with the Kubernetes
[container runtime requirements](/docs/setup/production-environment/container-runtimes). [container runtime requirements](/docs/setup/production-environment/container-runtimes).
--> -->
你应该熟悉 Kubernetes 的[容器运行时需求](/zh/docs/setup/production-environment/container-runtimes)。 你应该熟悉 Kubernetes 的[容器运行时需求](/zh-cn/docs/setup/production-environment/container-runtimes)。
<!-- steps --> <!-- steps -->
@@ -37,7 +37,7 @@ The [Container runtimes](/docs/setup/production-environment/container-runtimes)
explains that the `systemd` driver is recommended for kubeadm based setups instead explains that the `systemd` driver is recommended for kubeadm based setups instead
of the `cgroupfs` driver, because kubeadm manages the kubelet as a systemd service. of the `cgroupfs` driver, because kubeadm manages the kubelet as a systemd service.
--> -->
[容器运行时](/zh/docs/setup/production-environment/container-runtimes)页面提到: [容器运行时](/zh-cn/docs/setup/production-environment/container-runtimes)页面提到:
由于 kubeadm 把 kubelet 视为一个系统服务来管理,所以对基于 kubeadm 的安装, 由于 kubeadm 把 kubelet 视为一个系统服务来管理,所以对基于 kubeadm 的安装,
我们推荐使用 `systemd` 驱动,不推荐 `cgroupfs` 驱动。 我们推荐使用 `systemd` 驱动,不推荐 `cgroupfs` 驱动。
@@ -107,7 +107,7 @@ and passing it to the local node kubelet.
{{< note >}} {{< note >}}
Kubeadm 对集群所有的节点,使用相同的 `KubeletConfiguration` Kubeadm 对集群所有的节点,使用相同的 `KubeletConfiguration`
`KubeletConfiguration` 存放于 `kube-system` 命名空间下的某个 `KubeletConfiguration` 存放于 `kube-system` 命名空间下的某个
[ConfigMap](/zh/docs/concepts/configuration/configmap) 对象中。 [ConfigMap](/zh-cn/docs/concepts/configuration/configmap) 对象中。
执行 `init``join``upgrade` 等子命令会促使 kubeadm 执行 `init``join``upgrade` 等子命令会促使 kubeadm
`KubeletConfiguration` 写入到文件 `/var/lib/kubelet/config.yaml` 中, `KubeletConfiguration` 写入到文件 `/var/lib/kubelet/config.yaml` 中,
@@ -208,7 +208,7 @@ For each node in the cluster:
对于集群中的每一个节点: 对于集群中的每一个节点:
- 执行命令 `kubectl drain <node-name> --ignore-daemonsets`,以 - 执行命令 `kubectl drain <node-name> --ignore-daemonsets`,以
[腾空节点](/zh/docs/tasks/administer-cluster/safely-drain-node) [腾空节点](/zh-cn/docs/tasks/administer-cluster/safely-drain-node)
- 执行命令 `systemctl stop kubelet`,以停止 kubelet - 执行命令 `systemctl stop kubelet`,以停止 kubelet
- 停止容器运行时 - 停止容器运行时
- 修改容器运行时 cgroup 驱动为 `systemd` - 修改容器运行时 cgroup 驱动为 `systemd`
@@ -216,7 +216,7 @@ For each node in the cluster:
- 启动容器运行时 - 启动容器运行时
- 执行命令 `systemctl start kubelet`,以启动 kubelet - 执行命令 `systemctl start kubelet`,以启动 kubelet
- 执行命令 `kubectl uncordon <node-name>`,以 - 执行命令 `kubectl uncordon <node-name>`,以
[取消节点隔离](/zh/docs/tasks/administer-cluster/safely-drain-node) [取消节点隔离](/zh-cn/docs/tasks/administer-cluster/safely-drain-node)
<!-- <!--
Execute these steps on nodes one at a time to ensure workloads Execute these steps on nodes one at a time to ensure workloads
@@ -20,7 +20,7 @@ Client certificates generated by [kubeadm](/docs/reference/setup-tools/kubeadm/)
This page explains how to manage certificate renewals with kubeadm. It also covers other tasks related This page explains how to manage certificate renewals with kubeadm. It also covers other tasks related
to kubeadm certificate management. to kubeadm certificate management.
--> -->
由 [kubeadm](/zh/docs/reference/setup-tools/kubeadm/) 生成的客户端证书在 1 年后到期。 由 [kubeadm](/zh-cn/docs/reference/setup-tools/kubeadm/) 生成的客户端证书在 1 年后到期。
本页说明如何使用 kubeadm 管理证书续订,同时也涵盖其他与 kubeadm 证书管理相关的说明。 本页说明如何使用 kubeadm 管理证书续订,同时也涵盖其他与 kubeadm 证书管理相关的说明。
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
@@ -28,7 +28,7 @@ to kubeadm certificate management.
<!-- <!--
You should be familiar with [PKI certificates and requirements in Kubernetes](/docs/setup/best-practices/certificates/). You should be familiar with [PKI certificates and requirements in Kubernetes](/docs/setup/best-practices/certificates/).
--> -->
你应该熟悉 [Kubernetes 中的 PKI 证书和要求](/zh/docs/setup/best-practices/certificates/)。 你应该熟悉 [Kubernetes 中的 PKI 证书和要求](/zh-cn/docs/setup/best-practices/certificates/)。
<!-- steps --> <!-- steps -->
@@ -90,7 +90,7 @@ point to the CA certificate and key.
[PKI certificates and requirements](/docs/setup/best-practices/certificates/) includes guidance on [PKI certificates and requirements](/docs/setup/best-practices/certificates/) includes guidance on
setting up a cluster to use an external CA. setting up a cluster to use an external CA.
--> -->
[PKI 证书和要求](/zh/docs/setup/best-practices/certificates/)包括集群使用外部 CA 的设置指南。 [PKI 证书和要求](/zh-cn/docs/setup/best-practices/certificates/)包括集群使用外部 CA 的设置指南。
<!-- <!--
## Check certificate expiration ## Check certificate expiration
@@ -158,10 +158,10 @@ To repair an expired kubelet client certificate see
--> -->
{{< note >}} {{< note >}}
上面的列表中没有包含 `kubelet.conf`,因为 kubeadm 将 kubelet 配置为 上面的列表中没有包含 `kubelet.conf`,因为 kubeadm 将 kubelet 配置为
[自动更新证书](/zh/docs/tasks/tls/certificate-rotation/)。 [自动更新证书](/zh-cn/docs/tasks/tls/certificate-rotation/)。
轮换的证书位于目录 `/var/lib/kubelet/pki` 轮换的证书位于目录 `/var/lib/kubelet/pki`
要修复过期的 kubelet 客户端证书,请参阅 要修复过期的 kubelet 客户端证书,请参阅
[kubelet 客户端证书轮换失败](/zh/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/#kubelet-client-cert)。 [kubelet 客户端证书轮换失败](/zh-cn/docs/setup/production-environment/tools/kubeadm/troubleshooting-kubeadm/#kubelet-client-cert)。
{{< /note >}} {{< /note >}}
<!-- <!--
@@ -192,7 +192,7 @@ kubeadm renews all the certificates during control plane [upgrade](/docs/tasks/a
## 自动更新证书 {#automatic-certificate-renewal} ## 自动更新证书 {#automatic-certificate-renewal}
kubeadm 会在控制面 kubeadm 会在控制面
[升级](/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/) [升级](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade/)
的时候更新所有证书。 的时候更新所有证书。
<!-- <!--
@@ -252,10 +252,10 @@ the Pod and the certificate renewal for the component can complete.
此命令用 CA(或者 front-proxy-CA )证书和存储在 `/etc/kubernetes/pki` 中的密钥执行更新。 此命令用 CA(或者 front-proxy-CA )证书和存储在 `/etc/kubernetes/pki` 中的密钥执行更新。
执行完此命令之后你需要重启控制面 Pods。因为动态证书重载目前还不被所有组件和证书支持,所有这项操作是必须的。 执行完此命令之后你需要重启控制面 Pods。因为动态证书重载目前还不被所有组件和证书支持,所有这项操作是必须的。
[静态 Pods](/zh/docs/tasks/configure-pod-container/static-pod/) 是被本地 kubelet 而不是 API Server 管理, [静态 Pods](/zh-cn/docs/tasks/configure-pod-container/static-pod/) 是被本地 kubelet 而不是 API Server 管理,
所以 kubectl 不能用来删除或重启他们。 所以 kubectl 不能用来删除或重启他们。
要重启静态 Pod 你可以临时将清单文件从 `/etc/kubernetes/manifests/` 移除并等待 20 秒 要重启静态 Pod 你可以临时将清单文件从 `/etc/kubernetes/manifests/` 移除并等待 20 秒
(参考 [KubeletConfiguration 结构](/zh/docs/reference/config-api/kubelet-config.v1beta1/) 中的`fileCheckFrequency` 值)。 (参考 [KubeletConfiguration 结构](/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/) 中的`fileCheckFrequency` 值)。
如果 Pod 不在清单目录里,kubelet 将会终止它。 如果 Pod 不在清单目录里,kubelet 将会终止它。
在另一个 `fileCheckFrequency` 周期之后你可以将文件移回去,为了组件可以完成 kubelet 将重新创建 Pod 和证书更新。 在另一个 `fileCheckFrequency` 周期之后你可以将文件移回去,为了组件可以完成 kubelet 将重新创建 Pod 和证书更新。
@@ -324,14 +324,14 @@ To activate the built-in signer, you must pass the `--cluster-signing-cert-file`
Kubernetes 证书颁发机构不是开箱即用。你可以配置外部签名者,例如 [cert-manager](https://cert-manager.io/docs/configuration/ca/) Kubernetes 证书颁发机构不是开箱即用。你可以配置外部签名者,例如 [cert-manager](https://cert-manager.io/docs/configuration/ca/)
也可以使用内置签名者。 也可以使用内置签名者。
内置签名者是 内置签名者是
[`kube-controller-manager`](/zh/docs/reference/command-line-tools-reference/kube-controller-manager/) 的一部分。 [`kube-controller-manager`](/zh-cn/docs/reference/command-line-tools-reference/kube-controller-manager/) 的一部分。
要激活内置签名者,请传递 `--cluster-signing-cert-file``--cluster-signing-key-file` 参数。 要激活内置签名者,请传递 `--cluster-signing-cert-file``--cluster-signing-key-file` 参数。
<!-- <!--
If you're creating a new cluster, you can use a kubeadm [configuration file](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3): If you're creating a new cluster, you can use a kubeadm [configuration file](https://pkg.go.dev/k8s.io/kubernetes/cmd/kubeadm/app/apis/kubeadm/v1beta3):
--> -->
如果你正在创建一个新的集群,你可以使用 kubeadm 的 如果你正在创建一个新的集群,你可以使用 kubeadm 的
[配置文件](/zh/docs/reference/config-api/kubeadm-config.v1beta3/)。 [配置文件](/zh-cn/docs/reference/config-api/kubeadm-config.v1beta3/)。
```yaml ```yaml
apiVersion: kubeadm.k8s.io/v1beta3 apiVersion: kubeadm.k8s.io/v1beta3
@@ -351,7 +351,7 @@ controllerManager:
See [Create CertificateSigningRequest](/docs/reference/access-authn-authz/certificate-signing-requests/#create-certificatesigningrequest) for creating CSRs with the Kubernetes API. See [Create CertificateSigningRequest](/docs/reference/access-authn-authz/certificate-signing-requests/#create-certificatesigningrequest) for creating CSRs with the Kubernetes API.
--> -->
有关使用 Kubernetes API 创建 CSR 的信息, 有关使用 Kubernetes API 创建 CSR 的信息,
请参见[创建 CertificateSigningRequest](/zh/docs/reference/access-authn-authz/certificate-signing-requests/#create-certificatesigningrequest)。 请参见[创建 CertificateSigningRequest](/zh-cn/docs/reference/access-authn-authz/certificate-signing-requests/#create-certificatesigningrequest)。
<!-- <!--
## Renew certificates with external CA ## Renew certificates with external CA
@@ -403,7 +403,7 @@ It is the responsibility of the CA to specify [the correct cert usages](/docs/se
when issuing a certificate. when issuing a certificate.
--> -->
CSR 中包含一个证书的名字,域和 IP,但是未指定用法。 CSR 中包含一个证书的名字,域和 IP,但是未指定用法。
颁发证书时,CA 有责任指定[正确的证书用法](/zh/docs/setup/best-practices/certificates/#all-certificates) 颁发证书时,CA 有责任指定[正确的证书用法](/zh-cn/docs/setup/best-practices/certificates/#all-certificates)
<!-- <!--
* In `openssl` this is done with the * In `openssl` this is done with the
@@ -435,7 +435,7 @@ For more information about manual rotation or replacement of CA, see [manual rot
kubeadm 并不直接支持对 CA 证书的轮换或者替换。 kubeadm 并不直接支持对 CA 证书的轮换或者替换。
关于手动轮换或者置换 CA 的更多信息,可参阅 关于手动轮换或者置换 CA 的更多信息,可参阅
[手动轮换 CA 证书](/zh/docs/tasks/tls/manual-rotation-of-ca-certificates/)。 [手动轮换 CA 证书](/zh-cn/docs/tasks/tls/manual-rotation-of-ca-certificates/)。
<!-- <!--
## Enabling signed kubelet serving certificates {#kubelet-serving-certs} ## Enabling signed kubelet serving certificates {#kubelet-serving-certs}
@@ -480,7 +480,7 @@ and restart the kubelet with `systemctl restart kubelet`
- 找到 `kube-system` 名字空间中名为 `kubelet-config-{{< skew currentVersion>}}` - 找到 `kube-system` 名字空间中名为 `kubelet-config-{{< skew currentVersion>}}`
的 ConfigMap 并编辑之。 的 ConfigMap 并编辑之。
在该 ConfigMap 中,`kubelet` 键下面有一个 在该 ConfigMap 中,`kubelet` 键下面有一个
[KubeletConfiguration](/zh/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration) [KubeletConfiguration](/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/#kubelet-config-k8s-io-v1beta1-KubeletConfiguration)
文档作为其取值。编辑该 KubeletConfiguration 文档以设置 文档作为其取值。编辑该 KubeletConfiguration 文档以设置
`serverTLSBootstrap: true` `serverTLSBootstrap: true`
- 在每个节点上,在 `/var/lib/kubelet/config.yaml` 文件中添加 - 在每个节点上,在 `/var/lib/kubelet/config.yaml` 文件中添加
@@ -501,7 +501,7 @@ These CSRs can be viewed using:
是从 `certificates.k8s.io` API 处读取。这种方式的一种局限在于这些 是从 `certificates.k8s.io` API 处读取。这种方式的一种局限在于这些
证书的 CSR(证书签名请求)不能被 kube-controller-manager 中默认的 证书的 CSR(证书签名请求)不能被 kube-controller-manager 中默认的
签名组件 签名组件
[`kubernetes.io/kubelet-serving`](/zh/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers) [`kubernetes.io/kubelet-serving`](/zh-cn/docs/reference/access-authn-authz/certificate-signing-requests/#kubernetes-signers)
批准。需要用户或者第三方控制器来执行此操作。 批准。需要用户或者第三方控制器来执行此操作。
可以使用下面的命令来查看 CSR 可以使用下面的命令来查看 CSR
@@ -537,7 +537,7 @@ kubeadm 将 `KubeletConfiguration` 的 `rotateCertificates` 字段设置为
`true`;这意味着证书快要过期时,会生成一组针对服务证书的新的 CSR,而 `true`;这意味着证书快要过期时,会生成一组针对服务证书的新的 CSR,而
这些 CSR 也要被批准才能完成证书轮换。 这些 CSR 也要被批准才能完成证书轮换。
要进一步了解这里的细节,可参阅 要进一步了解这里的细节,可参阅
[证书轮换](/zh/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#certificate-rotation) [证书轮换](/zh-cn/docs/reference/access-authn-authz/kubelet-tls-bootstrapping/#certificate-rotation)
文档。 文档。
<!-- <!--
@@ -583,7 +583,7 @@ Sharing the `admin.conf` with additional users is **not recommended**!
--> -->
在集群创建过程中,kubeadm 对 `admin.conf` 中的证书进行签名时,将其配置为 在集群创建过程中,kubeadm 对 `admin.conf` 中的证书进行签名时,将其配置为
`Subject: O = system:masters, CN = kubernetes-admin` `Subject: O = system:masters, CN = kubernetes-admin`
[`system:masters`](/zh/docs/reference/access-authn-authz/rbac/#user-facing-roles) [`system:masters`](/zh-cn/docs/reference/access-authn-authz/rbac/#user-facing-roles)
是一个例外的超级用户组,可以绕过鉴权层(例如 RBAC)。 是一个例外的超级用户组,可以绕过鉴权层(例如 RBAC)。
强烈建议不要将 `admin.conf` 文件与任何人共享。 强烈建议不要将 `admin.conf` 文件与任何人共享。
@@ -595,9 +595,9 @@ The command accepts a mixture of command line flags and
The generated kubeconfig will be written to stdout and can be piped to a file The generated kubeconfig will be written to stdout and can be piped to a file
using `kubeadm kubeconfig user ... > somefile.conf`. using `kubeadm kubeconfig user ... > somefile.conf`.
--> -->
你要使用 [`kubeadm kubeconfig user`](/zh/docs/reference/setup-tools/kubeadm/kubeadm-kubeconfig) 你要使用 [`kubeadm kubeconfig user`](/zh-cn/docs/reference/setup-tools/kubeadm/kubeadm-kubeconfig)
命令为其他用户生成 kubeconfig 文件,这个命令支持命令行参数和 命令为其他用户生成 kubeconfig 文件,这个命令支持命令行参数和
[kubeadm 配置结构](/zh/docs/reference/config-api/kubeadm-config.v1beta3/)。 [kubeadm 配置结构](/zh-cn/docs/reference/config-api/kubeadm-config.v1beta3/)。
以上命令会将 kubeconfig 打印到终端上,也可以使用 `kubeadm kubeconfig user ... > somefile.conf` 以上命令会将 kubeconfig 打印到终端上,也可以使用 `kubeadm kubeconfig user ... > somefile.conf`
输出到一个文件中。 输出到一个文件中。
@@ -19,7 +19,7 @@ by using a custom [operator](/docs/concepts/extend-kubernetes/operator/).
--> -->
kubeadm 不支持自动重新配置部署在托管节点上的组件的方式。 kubeadm 不支持自动重新配置部署在托管节点上的组件的方式。
一种自动化的方法是使用自定义的 一种自动化的方法是使用自定义的
[operator](/zh/docs/concepts/extend-kubernetes/operator/)。 [operator](/zh-cn/docs/concepts/extend-kubernetes/operator/)。
<!-- <!--
To modify the components configuration you must manually edit associated cluster To modify the components configuration you must manually edit associated cluster
@@ -114,7 +114,7 @@ The configuration is located under the `data.ClusterConfiguration` key.
#### 更新 `ClusterConfiguration` #### 更新 `ClusterConfiguration`
在集群创建和升级期间,kubeadm 将其 在集群创建和升级期间,kubeadm 将其
[`ClusterConfiguration`](/zh/docs/reference/config-api/kubeadm-config.v1beta3/) [`ClusterConfiguration`](/zh-cn/docs/reference/config-api/kubeadm-config.v1beta3/)
写入 `kube-system` 命名空间中名为 `kubeadm-config` 的 ConfigMap。 写入 `kube-system` 命名空间中名为 `kubeadm-config` 的 ConfigMap。
要更改 `ClusterConfiguration` 中的特定选项,你可以使用以下命令编辑 ConfigMap: 要更改 `ClusterConfiguration` 中的特定选项,你可以使用以下命令编辑 ConfigMap:
@@ -219,7 +219,7 @@ The configuration is located under the `data.kubelet` key.
#### 更新 `KubeletConfiguration` #### 更新 `KubeletConfiguration`
在集群创建和升级期间,kubeadm 将其 在集群创建和升级期间,kubeadm 将其
[`KubeletConfiguration`](/zh/docs/reference/config-api/kubelet-config.v1beta1/) [`KubeletConfiguration`](/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/)
写入 `kube-system` 命名空间中名为 `kubelet-config` 的 ConfigMap。 写入 `kube-system` 命名空间中名为 `kubelet-config` 的 ConfigMap。
你可以使用以下命令编辑 ConfigMap: 你可以使用以下命令编辑 ConfigMap:
@@ -291,7 +291,7 @@ The configuration is located under the `data.config.conf` key.
#### 更新 `KubeProxyConfiguration` #### 更新 `KubeProxyConfiguration`
在集群创建和升级期间,kubeadm 将其写入 在集群创建和升级期间,kubeadm 将其写入
[`KubeProxyConfiguration`](/zh/docs/reference/config-api/kube-proxy-config.v1alpha1/) [`KubeProxyConfiguration`](/zh-cn/docs/reference/config-api/kube-proxy-config.v1alpha1/)
在名为 `kube-proxy``kube-system` 命名空间中的 ConfigMap 中。 在名为 `kube-proxy``kube-system` 命名空间中的 ConfigMap 中。
此 ConfigMap 由 `kube-system` 命名空间中的 `kube-proxy` DaemonSet 使用。 此 ConfigMap 由 `kube-system` 命名空间中的 `kube-proxy` DaemonSet 使用。
@@ -440,7 +440,7 @@ and apply it to the Node object:
--> -->
`kubeadm upgrade` 期间,此类节点的内容可能会被覆盖。 `kubeadm upgrade` 期间,此类节点的内容可能会被覆盖。
如果你想在升级后保留对 Node 对象的修改,你可以准备一个 如果你想在升级后保留对 Node 对象的修改,你可以准备一个
[kubectl patch](/zh/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/) [kubectl patch](/zh-cn/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/)
并将其应用到 Node 对象: 并将其应用到 Node 对象:
```shell ```shell
@@ -464,7 +464,7 @@ the set of node specific patches must be updated accordingly.
控制平面配置的主要来源是存储在集群中的 `ClusterConfiguration` 对象。 控制平面配置的主要来源是存储在集群中的 `ClusterConfiguration` 对象。
要扩展静态 Pod 清单配置,可以使用 要扩展静态 Pod 清单配置,可以使用
[patches](/zh/docs/setup/production-environment/tools/kubeadm/control-plane-flags/#patches)。 [patches](/zh-cn/docs/setup/production-environment/tools/kubeadm/control-plane-flags/#patches)。
这些补丁文件必须作为文件保留在控制平面节点上,以确保它们可以被 这些补丁文件必须作为文件保留在控制平面节点上,以确保它们可以被
`kubeadm upgrade ... --patches <directory>` 使用。 `kubeadm upgrade ... --patches <directory>` 使用。
@@ -504,6 +504,6 @@ kubelet 标志会覆盖相关的 `KubeletConfiguration` 选项,但请注意,
- [Certificate management with kubeadm](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs) - [Certificate management with kubeadm](/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)
--> -->
- [升级 kubeadm 集群](/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade) - [升级 kubeadm 集群](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade)
- [使用 kubeadm API 自定义组件](/zh/docs/setup/production-environment/tools/kubeadm/control-plane-flags) - [使用 kubeadm API 自定义组件](/zh-cn/docs/setup/production-environment/tools/kubeadm/control-plane-flags)
- [使用 kubeadm 管理证书](/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-certs) - [使用 kubeadm 管理证书](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)
@@ -85,7 +85,7 @@ they could be running CoreDNS Pods or other critical workloads. For more informa
--> -->
- 下述说明了在升级过程中何时腾空每个节点。如果你正在对任何 kubelet 进行小版本升级, - 下述说明了在升级过程中何时腾空每个节点。如果你正在对任何 kubelet 进行小版本升级,
你需要先腾空待升级的节点(或多个节点)。对于控制面节点,其上可能运行着 CoreDNS Pods 你需要先腾空待升级的节点(或多个节点)。对于控制面节点,其上可能运行着 CoreDNS Pods
或者其它非常重要的负载。更多信息见[腾空节点](/zh/docs/tasks/administer-cluster/safely-drain-node/)。 或者其它非常重要的负载。更多信息见[腾空节点](/zh-cn/docs/tasks/administer-cluster/safely-drain-node/)。
- 升级后,因为容器规约的哈希值已更改,所有容器都会被重新启动。 - 升级后,因为容器规约的哈希值已更改,所有容器都会被重新启动。
<!-- <!--
@@ -98,8 +98,8 @@ with the purpose of reconfiguring the cluster is not recommended and can have un
--> -->
- 要验证 kubelet 服务在升级后是否成功重启,可以执行 `systemctl status kubelet` - 要验证 kubelet 服务在升级后是否成功重启,可以执行 `systemctl status kubelet`
`journalctl -xeu kubelet` 查看服务日志。 `journalctl -xeu kubelet` 查看服务日志。
- 不建议使用 `kubeadm upgrade``--config` 参数和 [kubeadm 配置 API 类型](/zh/docs/reference/config-api/kubeadm-config.v1beta3) - 不建议使用 `kubeadm upgrade``--config` 参数和 [kubeadm 配置 API 类型](/zh-cn/docs/reference/config-api/kubeadm-config.v1beta3)
来重新配置集群,这样会产生意想不到的结果。请按照[重新配置 kubeadm 集群](/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure) 来重新配置集群,这样会产生意想不到的结果。请按照[重新配置 kubeadm 集群](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-reconfigure)
中的步骤来进行。 中的步骤来进行。
<!-- steps --> <!-- steps -->
@@ -211,7 +211,7 @@ Pick a control plane node that you wish to upgrade first. It must have the `/etc
--> -->
`kubeadm upgrade` 也会自动对 kubeadm 在节点上所管理的证书执行续约操作。 `kubeadm upgrade` 也会自动对 kubeadm 在节点上所管理的证书执行续约操作。
如果需要略过证书续约操作,可以使用标志 `--certificate-renewal=false` 如果需要略过证书续约操作,可以使用标志 `--certificate-renewal=false`
更多的信息,可参阅[证书管理指南](/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)。 更多的信息,可参阅[证书管理指南](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-certs)。
{{</ note >}} {{</ note >}}
{{< note >}} {{< note >}}
@@ -263,7 +263,7 @@ Pick a control plane node that you wish to upgrade first. It must have the `/etc
find your CNI provider and see whether additional upgrade steps are required. find your CNI provider and see whether additional upgrade steps are required.
--> -->
你的容器网络接口(CNI)驱动应该提供了程序自身的升级说明。 你的容器网络接口(CNI)驱动应该提供了程序自身的升级说明。
参阅[插件](/zh/docs/concepts/cluster-administration/addons/)页面查找你的 CNI 驱动, 参阅[插件](/zh-cn/docs/concepts/cluster-administration/addons/)页面查找你的 CNI 驱动,
并查看是否需要其他升级步骤。 并查看是否需要其他升级步骤。
<!-- <!--
@@ -18,7 +18,7 @@ weight: 40
<!-- <!--
This page explains how to upgrade a Windows node [created with kubeadm](/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes). This page explains how to upgrade a Windows node [created with kubeadm](/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes).
--> -->
本页解释如何升级[用 kubeadm 创建的](/zh/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes) 本页解释如何升级[用 kubeadm 创建的](/zh-cn/docs/tasks/administer-cluster/kubeadm/adding-windows-nodes)
Windows 节点。 Windows 节点。
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
@@ -30,7 +30,7 @@ Windows 节点。
cluster](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade). You will want to cluster](/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade). You will want to
upgrade the control plane nodes before upgrading your Windows nodes. upgrade the control plane nodes before upgrading your Windows nodes.
--> -->
* 熟悉[更新 kubeadm 集群中的其余组件](/zh/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade)。 * 熟悉[更新 kubeadm 集群中的其余组件](/zh-cn/docs/tasks/administer-cluster/kubeadm/kubeadm-upgrade)。
在升级你的 Windows 节点之前你会想要升级控制面节点。 在升级你的 Windows 节点之前你会想要升级控制面节点。
<!-- steps --> <!-- steps -->
@@ -36,7 +36,7 @@ struct.
--> -->
## 创建配置文件 ## 创建配置文件
[`KubeletConfiguration`](/zh/docs/reference/config-api/kubelet-config.v1beta1/) 结构体定义了可以通过文件配置的 Kubelet 配置子集, [`KubeletConfiguration`](/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/) 结构体定义了可以通过文件配置的 Kubelet 配置子集,
<!-- <!--
The configuration file must be a JSON or YAML representation of the parameters The configuration file must be a JSON or YAML representation of the parameters
@@ -86,7 +86,7 @@ The Kubelet will then load its config from this file.
{{< note >}} {{< note >}}
如果你使用 kubeadm 初始化你的集群,在使用 `kubeadmin init` 创建你的集群的时候请使用 kubelet-config。 如果你使用 kubeadm 初始化你的集群,在使用 `kubeadmin init` 创建你的集群的时候请使用 kubelet-config。
更多细节请阅读[使用 kubeadm 配置 kubelet](/zh/docs/setup/production-environment/tools/kubeadm/kubelet-integration/) 更多细节请阅读[使用 kubeadm 配置 kubelet](/zh-cn/docs/setup/production-environment/tools/kubeadm/kubelet-integration/)
{{< /note >}} {{< /note >}}
启动 Kubelet 需要将 `--config` 参数设置为 Kubelet 配置文件的路径。Kubelet 将从此文件加载其配置。 启动 Kubelet 需要将 `--config` 参数设置为 Kubelet 配置文件的路径。Kubelet 将从此文件加载其配置。
@@ -125,5 +125,5 @@ In the above example, this version is `kubelet.config.k8s.io/v1beta1`.
[`KubeletConfiguration`](/docs/reference/config-api/kubelet-config.v1beta1/) [`KubeletConfiguration`](/docs/reference/config-api/kubelet-config.v1beta1/)
reference. reference.
---> --->
- 参阅 [`KubeletConfiguration`](/zh/docs/reference/config-api/kubelet-config.v1beta1/) - 参阅 [`KubeletConfiguration`](/zh-cn/docs/reference/config-api/kubelet-config.v1beta1/)
进一步学习 kubelet 的配置。 进一步学习 kubelet 的配置。
@@ -36,7 +36,7 @@ If you are just looking for how to run a pod as a non-root user, see [SecurityCo
{{< note >}} {{< note >}}
这个文档描述了怎么以非 root 用户身份运行 Kubernetes 节点组件以及 Pod。 这个文档描述了怎么以非 root 用户身份运行 Kubernetes 节点组件以及 Pod。
如果你只是想了解如何以非 root 身份运行 Pod,请参阅 [SecurityContext](/zh/docs/tasks/configure-pod-container/security-context/)。 如果你只是想了解如何以非 root 身份运行 Pod,请参阅 [SecurityContext](/zh-cn/docs/tasks/configure-pod-container/security-context/)。
{{< /note >}} {{< /note >}}
<!-- <!--
@@ -59,7 +59,7 @@ If you are just looking for how to run a pod as a non-root user, see [SecurityCo
* [在 systemd 中启用 user session](https://rootlesscontaine.rs/getting-started/common/login/) * [在 systemd 中启用 user session](https://rootlesscontaine.rs/getting-started/common/login/)
* [根据不同的 Linux 发行版,配置 sysctl 的值](https://rootlesscontaine.rs/getting-started/common/sysctl/) * [根据不同的 Linux 发行版,配置 sysctl 的值](https://rootlesscontaine.rs/getting-started/common/sysctl/)
* [确保你的非特权用户被列在 `/etc/subuid` 和 `/etc/subgid` 文件中](https://rootlesscontaine.rs/getting-started/common/subuid/) * [确保你的非特权用户被列在 `/etc/subuid` 和 `/etc/subgid` 文件中](https://rootlesscontaine.rs/getting-started/common/subuid/)
* 启用 `KubeletInUserNamespace` [特性门控](/zh/docs/reference/command-line-tools-reference/feature-gates/) * 启用 `KubeletInUserNamespace` [特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)
<!-- steps --> <!-- steps -->
@@ -19,9 +19,9 @@ The following resources are used in the demonstration: [ResourceQuota](/docs/con
[LimitRange](/docs/tasks/administer-cluster/memory-default-namespace/), [LimitRange](/docs/tasks/administer-cluster/memory-default-namespace/),
and [PersistentVolumeClaim](/docs/concepts/storage/persistent-volumes/). and [PersistentVolumeClaim](/docs/concepts/storage/persistent-volumes/).
--> -->
演示中用到了以下资源:[ResourceQuota](/zh/docs/concepts/policy/resource-quotas/) 演示中用到了以下资源:[ResourceQuota](/zh-cn/docs/concepts/policy/resource-quotas/)
[LimitRange](/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) 和 [LimitRange](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) 和
[PersistentVolumeClaim](/zh/docs/concepts/storage/persistent-volumes/)。 [PersistentVolumeClaim](/zh-cn/docs/concepts/storage/persistent-volumes/)。
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
@@ -47,7 +47,7 @@ to learn what Kubernetes means by “1 CPU”.
集群中的每个节点都必须至少有 1.0 个 CPU 可供 Pod 使用。 集群中的每个节点都必须至少有 1.0 个 CPU 可供 Pod 使用。
请阅读 [CPU 的含义](/zh/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu) 请阅读 [CPU 的含义](/zh-cn/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu)
理解 "1 CPU" 在 Kubernetes 中的含义。 理解 "1 CPU" 在 Kubernetes 中的含义。
<!-- steps --> <!-- steps -->
@@ -333,7 +333,7 @@ from the LimitRange for this namespace.
--> -->
因为这一容器没有声明自己的 CPU 请求和限制, 因为这一容器没有声明自己的 CPU 请求和限制,
控制面会根据命名空间中配置 LimitRange 控制面会根据命名空间中配置 LimitRange
设置[默认的 CPU 请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/)。 设置[默认的 CPU 请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/)。
<!-- <!--
At this point, your Pod may or may not be running. Recall that a prerequisite for At this point, your Pod may or may not be running. Recall that a prerequisite for
@@ -423,12 +423,12 @@ kubectl delete namespace constraints-cpu-example
### 集群管理员参考: ### 集群管理员参考:
* [为命名空间配置默认内存请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) * [为命名空间配置默认内存请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)
* [为命名空间配置内存限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) * [为命名空间配置内存限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)
* [为命名空间配置 CPU 限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) * [为命名空间配置 CPU 限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)
* [为命名空间配置内存和 CPU 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/) * [为命名空间配置内存和 CPU 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/)
* [为命名空间配置 Pod 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/) * [为命名空间配置 Pod 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/)
* [为 API 对象配置配额](/zh/docs/tasks/administer-cluster/quota-api-object/) * [为 API 对象配置配额](/zh-cn/docs/tasks/administer-cluster/quota-api-object/)
<!-- <!--
### For app developers ### For app developers
@@ -440,7 +440,7 @@ kubectl delete namespace constraints-cpu-example
### 应用开发者参考: ### 应用开发者参考:
* [为容器和 Pod 分配内存资源](/zh/docs/tasks/configure-pod-container/assign-memory-resource/) * [为容器和 Pod 分配内存资源](/zh-cn/docs/tasks/configure-pod-container/assign-memory-resource/)
* [为容器和 Pod 分配 CPU 资源](/zh/docs/tasks/configure-pod-container/assign-cpu-resource/) * [为容器和 Pod 分配 CPU 资源](/zh-cn/docs/tasks/configure-pod-container/assign-cpu-resource/)
* [为 Pod 配置服务质量](/zh/docs/tasks/configure-pod-container/quality-service-pod/) * [为 Pod 配置服务质量](/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/)
@@ -32,7 +32,7 @@ but only under certain conditions that are explained later in this page.
本章介绍如何为{{< glossary_tooltip text="命名空间" term_id="namespace" >}}配置默认的 CPU 请求和限制。 本章介绍如何为{{< glossary_tooltip text="命名空间" term_id="namespace" >}}配置默认的 CPU 请求和限制。
一个 Kubernetes 集群可被划分为多个命名空间。 一个 Kubernetes 集群可被划分为多个命名空间。
如果你在具有默认 CPU[限制](/zh/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) 如果你在具有默认 CPU[限制](/zh-cn/docs/concepts/configuration/manage-resources-containers/#requests-and-limits)
的命名空间内创建一个 Pod,并且这个 Pod 中任何容器都没有声明自己的 CPU 限制, 的命名空间内创建一个 Pod,并且这个 Pod 中任何容器都没有声明自己的 CPU 限制,
那么{{< glossary_tooltip text="控制面" term_id="control-plane" >}}会为容器设定默认的 CPU 限制。 那么{{< glossary_tooltip text="控制面" term_id="control-plane" >}}会为容器设定默认的 CPU 限制。
@@ -51,7 +51,7 @@ read [meaning of CPU](/docs/concepts/configuration/manage-resources-containers/#
在你的集群里你必须要有创建命名空间的权限。 在你的集群里你必须要有创建命名空间的权限。
如果你还不熟悉 Kubernetes 中 1.0 CPU 的含义, 如果你还不熟悉 Kubernetes 中 1.0 CPU 的含义,
请阅读 [CPU 的含义](/zh/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu)。 请阅读 [CPU 的含义](/zh-cn/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu)。
<!-- steps --> <!-- steps -->
@@ -171,7 +171,7 @@ kubectl apply -f https://k8s.io/examples/admin/resource/cpu-defaults-pod-2.yaml
View the [specification](/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status) View the [specification](/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status)
of the Pod that you created: of the Pod that you created:
--> -->
查看你所创建的 Pod 的[规约](/zh/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status) 查看你所创建的 Pod 的[规约](/zh-cn/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status)
``` ```
kubectl get pod default-cpu-demo-2 --output=yaml --namespace=default-cpu-example kubectl get pod default-cpu-demo-2 --output=yaml --namespace=default-cpu-example
@@ -216,7 +216,7 @@ kubectl apply -f https://k8s.io/examples/admin/resource/cpu-defaults-pod-3.yaml
View the [specification](/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status) View the [specification](/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status)
of the Pod that you created: of the Pod that you created:
--> -->
查看你所创建的 Pod 的[规约](/zh/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status) 查看你所创建的 Pod 的[规约](/zh-cn/docs/concepts/overview/working-with-objects/kubernetes-objects/#object-spec-and-status)
``` ```
kubectl get pod default-cpu-demo-3 --output=yaml --namespace=default-cpu-example kubectl get pod default-cpu-demo-3 --output=yaml --namespace=default-cpu-example
@@ -309,12 +309,12 @@ kubectl delete namespace constraints-cpu-example
--> -->
### 集群管理员参考 ### 集群管理员参考
* [为命名空间配置默认内存请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) * [为命名空间配置默认内存请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)
* [为命名空间配置内存限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) * [为命名空间配置内存限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)
* [为命名空间配置 CPU 限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) * [为命名空间配置 CPU 限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)
* [为命名空间配置内存和 CPU 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/) * [为命名空间配置内存和 CPU 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/)
* [为命名空间配置 Pod 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/) * [为命名空间配置 Pod 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/)
* [为 API 对象配置配额](/zh/docs/tasks/administer-cluster/quota-api-object/) * [为 API 对象配置配额](/zh-cn/docs/tasks/administer-cluster/quota-api-object/)
<!-- <!--
### For app developers ### For app developers
@@ -325,8 +325,8 @@ kubectl delete namespace constraints-cpu-example
--> -->
### 应用开发者参考 ### 应用开发者参考
* [为容器和 Pod 分配内存资源](/zh/docs/tasks/configure-pod-container/assign-memory-resource/) * [为容器和 Pod 分配内存资源](/zh-cn/docs/tasks/configure-pod-container/assign-memory-resource/)
* [为容器和 Pod 分配 CPU 资源](/zh/docs/tasks/configure-pod-container/assign-cpu-resource/) * [为容器和 Pod 分配 CPU 资源](/zh-cn/docs/tasks/configure-pod-container/assign-cpu-resource/)
* [为 Pod 配置服务质量](/zh/docs/tasks/configure-pod-container/quality-service-pod/) * [为 Pod 配置服务质量](/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/)
@@ -300,7 +300,7 @@ applied a
from the LimitRange. from the LimitRange.
--> -->
因为你的 Pod 没有为容器声明任何内存请求和限制,集群会从 LimitRange 因为你的 Pod 没有为容器声明任何内存请求和限制,集群会从 LimitRange
获取[默认的内存请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)。 获取[默认的内存请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)。
应用于容器。 应用于容器。
<!-- <!--
@@ -402,12 +402,12 @@ kubectl delete namespace constraints-mem-example
### 集群管理员参考 ### 集群管理员参考
* [为命名空间配置默认内存请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) * [为命名空间配置默认内存请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)
* [为命名空间配置内存限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) * [为命名空间配置内存限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)
* [为命名空间配置 CPU 限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) * [为命名空间配置 CPU 限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)
* [为命名空间配置内存和 CPU 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/) * [为命名空间配置内存和 CPU 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/)
* [为命名空间配置 Pod 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/) * [为命名空间配置 Pod 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/)
* [为 API 对象配置配额](/zh/docs/tasks/administer-cluster/quota-api-object/) * [为 API 对象配置配额](/zh-cn/docs/tasks/administer-cluster/quota-api-object/)
<!-- <!--
### For app developers ### For app developers
@@ -419,7 +419,7 @@ kubectl delete namespace constraints-mem-example
### 应用开发者参考 ### 应用开发者参考
* [为容器和 Pod 分配内存资源](/zh/docs/tasks/configure-pod-container/assign-memory-resource/) * [为容器和 Pod 分配内存资源](/zh-cn/docs/tasks/configure-pod-container/assign-memory-resource/)
* [为容器和 Pod 分配 CPU 资源](/zh/docs/tasks/configure-pod-container/assign-cpu-resource/) * [为容器和 Pod 分配 CPU 资源](/zh-cn/docs/tasks/configure-pod-container/assign-cpu-resource/)
* [为 Pod 配置服务质量](/zh/docs/tasks/configure-pod-container/quality-service-pod/) * [为 Pod 配置服务质量](/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/)
@@ -34,7 +34,7 @@ Kubernetes assigns a default memory request under certain conditions that are ex
本章介绍如何为{{< glossary_tooltip text="命名空间" term_id="namespace" >}}配置默认的内存请求和限制。 本章介绍如何为{{< glossary_tooltip text="命名空间" term_id="namespace" >}}配置默认的内存请求和限制。
一个 Kubernetes 集群可被划分为多个命名空间。 一个 Kubernetes 集群可被划分为多个命名空间。
如果你在具有默认内存[限制](/zh/docs/concepts/configuration/manage-resources-containers/#requests-and-limits) 如果你在具有默认内存[限制](/zh-cn/docs/concepts/configuration/manage-resources-containers/#requests-and-limits)
的命名空间内尝试创建一个 Pod,并且这个 Pod 中的容器没有声明自己的内存资源限制, 的命名空间内尝试创建一个 Pod,并且这个 Pod 中的容器没有声明自己的内存资源限制,
那么{{< glossary_tooltip text="控制面" term_id="control-plane" >}}会为该容器设定默认的内存限制。 那么{{< glossary_tooltip text="控制面" term_id="control-plane" >}}会为该容器设定默认的内存限制。
@@ -322,12 +322,12 @@ kubectl delete namespace default-mem-example
--> -->
### 集群管理员参考 ### 集群管理员参考
* [为命名空间配置默认的 CPU 请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/) * [为命名空间配置默认的 CPU 请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/)
* [为命名空间配置最小和最大内存限制](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) * [为命名空间配置最小和最大内存限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)
* [为命名空间配置最小和最大 CPU 限制](/zh/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) * [为命名空间配置最小和最大 CPU 限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)
* [为命名空间配置内存和 CPU 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/) * [为命名空间配置内存和 CPU 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/)
* [为命名空间配置 Pod 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/) * [为命名空间配置 Pod 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/)
* [为 API 对象配置配额](/zh/docs/tasks/administer-cluster/quota-api-object/) * [为 API 对象配置配额](/zh-cn/docs/tasks/administer-cluster/quota-api-object/)
<!-- <!--
### For app developers ### For app developers
@@ -340,7 +340,7 @@ kubectl delete namespace default-mem-example
--> -->
### 应用开发者参考 ### 应用开发者参考
* [为容器和 Pod 分配内存资源](/zh/docs/tasks/configure-pod-container/assign-memory-resource/) * [为容器和 Pod 分配内存资源](/zh-cn/docs/tasks/configure-pod-container/assign-memory-resource/)
* [为容器和 Pod 分配 CPU 资源](/zh/docs/tasks/configure-pod-container/assign-cpu-resource/) * [为容器和 Pod 分配 CPU 资源](/zh-cn/docs/tasks/configure-pod-container/assign-cpu-resource/)
* [为 Pod 配置服务质量](/zh/docs/tasks/configure-pod-container/quality-service-pod/) * [为 Pod 配置服务质量](/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/)
@@ -107,7 +107,7 @@ ResourceQuota 在 quota-mem-cpu-example 命名空间中设置了如下要求:
* 在该命名空间中所有 Pod 的 CPU 请求总和不能超过 1 cpu。 * 在该命名空间中所有 Pod 的 CPU 请求总和不能超过 1 cpu。
* 在该命名空间中所有 Pod 的 CPU 限制总和不能超过 2 cpu。 * 在该命名空间中所有 Pod 的 CPU 限制总和不能超过 2 cpu。
请阅读 [CPU 的含义](/zh/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu) 请阅读 [CPU 的含义](/zh-cn/docs/concepts/configuration/manage-resources-containers/#meaning-of-cpu)
理解 "1 CPU" 在 Kubernetes 中的含义。 理解 "1 CPU" 在 Kubernetes 中的含义。
<!-- <!--
## Create a Pod ## Create a Pod
@@ -172,7 +172,7 @@ status:
If you have the `jq` tool, you can also query (using [JSONPath](/docs/reference/kubectl/jsonpath/)) If you have the `jq` tool, you can also query (using [JSONPath](/docs/reference/kubectl/jsonpath/))
for just the `used` values, **and** pretty-print that that of the output. For example: for just the `used` values, **and** pretty-print that that of the output. For example:
--> -->
如果有 `jq` 工具的话,你可以通过(使用 [JSONPath](/zh/docs/reference/kubectl/jsonpath/) 如果有 `jq` 工具的话,你可以通过(使用 [JSONPath](/zh-cn/docs/reference/kubectl/jsonpath/)
直接查询 `used` 字段的值,并且输出整齐的 JSON 格式。 直接查询 `used` 字段的值,并且输出整齐的 JSON 格式。
```shell ```shell
@@ -237,7 +237,7 @@ individual Pods, or the containers in those Pods. To achieve that kind of limiti
同样你也可以限制内存限制总量、CPU 请求总量、CPU 限制总量。 同样你也可以限制内存限制总量、CPU 请求总量、CPU 限制总量。
除了可以管理命名空间资源使用的总和,如果你想限制单个 Pod,或者限制这些 Pod 中的容器资源, 除了可以管理命名空间资源使用的总和,如果你想限制单个 Pod,或者限制这些 Pod 中的容器资源,
可以使用 [LimitRange](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) 实现这类的功能。 可以使用 [LimitRange](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) 实现这类的功能。
<!-- <!--
## Clean up ## Clean up
@@ -267,12 +267,12 @@ kubectl delete namespace quota-mem-cpu-example
### 集群管理员参考 ### 集群管理员参考
* [为命名空间配置默认内存请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) * [为命名空间配置默认内存请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)
* [为命名空间配置内存限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) * [为命名空间配置内存限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)
* [为命名空间配置 CPU 限制的最小值和最大值](/zh/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) * [为命名空间配置 CPU 限制的最小值和最大值](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)
* [为命名空间配置内存和 CPU 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/) * [为命名空间配置内存和 CPU 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/)
* [为命名空间配置 Pod 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/) * [为命名空间配置 Pod 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-pod-namespace/)
* [为 API 对象配置配额](/zh/docs/tasks/administer-cluster/quota-api-object/) * [为 API 对象配置配额](/zh-cn/docs/tasks/administer-cluster/quota-api-object/)
<!-- <!--
### For app developers ### For app developers
@@ -283,7 +283,7 @@ kubectl delete namespace quota-mem-cpu-example
--> -->
### 应用开发者参考 ### 应用开发者参考
* [为容器和 Pod 分配内存资源](/zh/docs/tasks/configure-pod-container/assign-memory-resource/) * [为容器和 Pod 分配内存资源](/zh-cn/docs/tasks/configure-pod-container/assign-memory-resource/)
* [为容器和 Pod 分配 CPU 资源](/zh/docs/tasks/configure-pod-container/assign-cpu-resource/) * [为容器和 Pod 分配 CPU 资源](/zh-cn/docs/tasks/configure-pod-container/assign-cpu-resource/)
* [为 Pod 配置服务质量](/zh/docs/tasks/configure-pod-container/quality-service-pod/) * [为 Pod 配置服务质量](/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/)
@@ -24,7 +24,7 @@ object.
--> -->
本文主要介绍如何在{{< glossary_tooltip text="命名空间" term_id="namespace" >}}中设置可运行 Pod 总数的配额。 本文主要介绍如何在{{< glossary_tooltip text="命名空间" term_id="namespace" >}}中设置可运行 Pod 总数的配额。
你可以通过使用 你可以通过使用
[ResourceQuota](/zh/docs/reference/kubernetes-api/policy-resources/resource-quota-v1/) [ResourceQuota](/zh-cn/docs/reference/kubernetes-api/policy-resources/resource-quota-v1/)
对象来配置配额。 对象来配置配额。
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
@@ -187,12 +187,12 @@ kubectl delete namespace quota-pod-example
--> -->
### 集群管理人员参考 ### 集群管理人员参考
* [为命名空间配置默认的内存请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/) * [为命名空间配置默认的内存请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)
* [为命名空间配置默认的的 CPU 请求和限制](/zh/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/) * [为命名空间配置默认的的 CPU 请求和限制](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/)
* [为命名空间配置内存的最小值和最大值约束](/zh/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/) * [为命名空间配置内存的最小值和最大值约束](/zh-cn/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)
* [为命名空间配置 CPU 的最小值和最大值约束](/zh/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/) * [为命名空间配置 CPU 的最小值和最大值约束](/zh-cn/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)
* [为命名空间配置内存和 CPU 配额](/zh/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/) * [为命名空间配置内存和 CPU 配额](/zh-cn/docs/tasks/administer-cluster/manage-resources/quota-memory-cpu-namespace/)
* [为 API 对象的设置配额](/zh/docs/tasks/administer-cluster/quota-api-object/) * [为 API 对象的设置配额](/zh-cn/docs/tasks/administer-cluster/quota-api-object/)
<!-- <!--
### For app developers ### For app developers
@@ -203,7 +203,7 @@ kubectl delete namespace quota-pod-example
--> -->
### 应用开发人员参考 ### 应用开发人员参考
* [为容器和 Pod 分配内存资源](/zh/docs/tasks/configure-pod-container/assign-memory-resource/) * [为容器和 Pod 分配内存资源](/zh-cn/docs/tasks/configure-pod-container/assign-memory-resource/)
* [给容器和 Pod 分配 CPU 资源](/zh/docs/tasks/configure-pod-container/assign-cpu-resource/) * [给容器和 Pod 分配 CPU 资源](/zh-cn/docs/tasks/configure-pod-container/assign-cpu-resource/)
* [配置 Pod 的服务质量](/zh/docs/tasks/configure-pod-container/quality-service-pod/) * [配置 Pod 的服务质量](/zh-cn/docs/tasks/configure-pod-container/quality-service-pod/)
@@ -62,9 +62,9 @@ To align memory resources with other requested resources in a Pod Spec:
为了使得内存资源与 Pod 规约中所请求的其他资源对齐: 为了使得内存资源与 Pod 规约中所请求的其他资源对齐:
- CPU 管理器应该被启用,并且在节点(Node)上要配置合适的 CPU 管理器策略, - CPU 管理器应该被启用,并且在节点(Node)上要配置合适的 CPU 管理器策略,
参见[控制 CPU 管理策略](/zh/docs/tasks/administer-cluster/cpu-management-policies/) 参见[控制 CPU 管理策略](/zh-cn/docs/tasks/administer-cluster/cpu-management-policies/)
- 拓扑管理器要被启用,并且要在节点上配置合适的拓扑管理器策略,参见 - 拓扑管理器要被启用,并且要在节点上配置合适的拓扑管理器策略,参见
[控制拓扑管理器策略](/zh/docs/tasks/administer-cluster/topology-manager/)。 [控制拓扑管理器策略](/zh-cn/docs/tasks/administer-cluster/topology-manager/)。
<!-- <!--
Starting from v1.22, the Memory Manager is enabled by default through `MemoryManager` Starting from v1.22, the Memory Manager is enabled by default through `MemoryManager`
@@ -77,7 +77,7 @@ Preceding v1.22, the `kubelet` must be started with the following flag:
in order to enable the Memory Manager feature. in order to enable the Memory Manager feature.
--> -->
从 v1.22 开始,内存管理器通过 从 v1.22 开始,内存管理器通过
[特性门控](/zh/docs/reference/command-line-tools-reference/feature-gates/) [特性门控](/zh-cn/docs/reference/command-line-tools-reference/feature-gates/)
`MemoryManager` 默认启用。 `MemoryManager` 默认启用。
在 v1.22 之前,`kubelet` 必须在启动时设置如下标志: 在 v1.22 之前,`kubelet` 必须在启动时设置如下标志:
@@ -266,7 +266,7 @@ A dedicated set of flags can be used for this purpose to set the total amount of
for a node. This pre-configured value is subsequently utilized to calculate for a node. This pre-configured value is subsequently utilized to calculate
the real amount of node's "allocatable" memory available to pods. the real amount of node's "allocatable" memory available to pods.
--> -->
[节点可分配](/zh/docs/tasks/administer-cluster/reserve-compute-resources/)机制通常 [节点可分配](/zh-cn/docs/tasks/administer-cluster/reserve-compute-resources/)机制通常
被节点管理员用来为 kubelet 或操作系统进程预留 K8S 节点上的系统资源,目的是提高节点稳定性。 被节点管理员用来为 kubelet 或操作系统进程预留 K8S 节点上的系统资源,目的是提高节点稳定性。
有一组专用的标志可用于这个目的,为节点设置总的预留内存量。 有一组专用的标志可用于这个目的,为节点设置总的预留内存量。
此预配置的值接下来会被用来计算节点上对 Pods “可分配的”内存。 此预配置的值接下来会被用来计算节点上对 Pods “可分配的”内存。
@@ -315,7 +315,7 @@ In fact, `eviction-hard` threshold value is equal to `100Mi` by default, so
if `Static` policy is used, `--reserved-memory` is obligatory. if `Static` policy is used, `--reserved-memory` is obligatory.
--> -->
你也可以忽略此参数,不过这样做时,你要清楚,所有 NUMA 节点上预留内存的数量要等于 你也可以忽略此参数,不过这样做时,你要清楚,所有 NUMA 节点上预留内存的数量要等于
[节点可分配特性](/zh/docs/tasks/administer-cluster/reserve-compute-resources/) [节点可分配特性](/zh-cn/docs/tasks/administer-cluster/reserve-compute-resources/)
所设定的内存量。如果至少有一个节点可分配参数值为非零,你就需要至少为一个 NUMA 所设定的内存量。如果至少有一个节点可分配参数值为非零,你就需要至少为一个 NUMA
节点设置 `--reserved-memory`。实际上,`eviction-hard` 阈值默认为 `100Mi` 节点设置 `--reserved-memory`。实际上,`eviction-hard` 阈值默认为 `100Mi`
所以当使用 `Static` 策略时,`--reserved-memory` 是必须设置的。 所以当使用 `Static` 策略时,`--reserved-memory` 是必须设置的。
@@ -777,7 +777,7 @@ This information can be retrieved solely for pods in Guaranteed QoS class.
--> -->
### 设备插件资源 API {#device-plugin-resource-api} ### 设备插件资源 API {#device-plugin-resource-api}
通过使用此 [API](/zh/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/) 通过使用此 [API](/zh-cn/docs/concepts/extend-kubernetes/compute-storage-net/device-plugins/)
可以获得每个容器的预留内存信息,该信息位于 protobuf 协议的 `ContainerMemory` 消息中。 可以获得每个容器的预留内存信息,该信息位于 protobuf 协议的 `ContainerMemory` 消息中。
只能针对 Guaranteed QoS 类中的 Pod 来检索此信息。 只能针对 Guaranteed QoS 类中的 Pod 来检索此信息。
@@ -25,7 +25,7 @@ installations. Our [Dockershim Removal FAQ](/blog/2022/02/17/dockershim-faq/) is
to understand the problem better. to understand the problem better.
--> -->
自从 Kubernetes 1.20 宣布 自从 Kubernetes 1.20 宣布
[弃用 dockershim](/zh/blog/2020/12/08/kubernetes-1-20-release-announcement/#dockershim-deprecation) [弃用 dockershim](/zh-cn/blog/2020/12/08/kubernetes-1-20-release-announcement/#dockershim-deprecation)
各类疑问随之而来:这对各类工作负载和 Kubernetes 部署会产生什么影响。 各类疑问随之而来:这对各类工作负载和 Kubernetes 部署会产生什么影响。
我们的[弃用 Dockershim 常见问题](/blog/2022/02/17/dockershim-faq/)可以帮助你更好地理解这个问题。 我们的[弃用 Dockershim 常见问题](/blog/2022/02/17/dockershim-faq/)可以帮助你更好地理解这个问题。
@@ -46,7 +46,7 @@ with the migration. So the issue can be fixed in a timely manner and your cluste
ready for dockershim removal. ready for dockershim removal.
--> -->
建议从 dockershim 迁移到其他替代的容器运行时。 建议从 dockershim 迁移到其他替代的容器运行时。
请参阅[容器运行时](/zh/docs/setup/production-environment/container-runtimes/) 请参阅[容器运行时](/zh-cn/docs/setup/production-environment/container-runtimes/)
一节以了解可用的备选项。 一节以了解可用的备选项。
当在迁移过程中遇到麻烦,请[上报问题](https://github.com/kubernetes/kubernetes/issues)。 当在迁移过程中遇到麻烦,请[上报问题](https://github.com/kubernetes/kubernetes/issues)。
那么问题就可以及时修复,你的集群也可以进入移除 dockershim 前的就绪状态。 那么问题就可以及时修复,你的集群也可以进入移除 dockershim 前的就绪状态。
@@ -65,9 +65,9 @@ These tasks will help you to migrate:
下面这些任务可以帮助你完成迁移: 下面这些任务可以帮助你完成迁移:
* [检查弃用 Dockershim 是否影响到你](/zh/docs/tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-deprecation-affects-you/) * [检查弃用 Dockershim 是否影响到你](/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/check-if-dockershim-deprecation-affects-you/)
* [将 Docker Engine 节点从 dockershim 迁移到 cri-dockerd](/zh/docs/tasks/administer-cluster/migrating-from-dockershim/migrate-dockershim-dockerd/) * [将 Docker Engine 节点从 dockershim 迁移到 cri-dockerd](/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/migrate-dockershim-dockerd/)
* [从 dockershim 迁移遥测和安全代理](/zh/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents/) * [从 dockershim 迁移遥测和安全代理](/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents/)
## {{% heading "whatsnext" %}} ## {{% heading "whatsnext" %}}
@@ -81,7 +81,7 @@ These tasks will help you to migrate:
you can [report an issue](https://github.com/kubernetes/kubernetes/issues/new/choose) you can [report an issue](https://github.com/kubernetes/kubernetes/issues/new/choose)
to the Kubernetes project. to the Kubernetes project.
--> -->
* 查看[容器运行时](/zh/docs/setup/production-environment/container-runtimes/)了解可选的容器运行时。 * 查看[容器运行时](/zh-cn/docs/setup/production-environment/container-runtimes/)了解可选的容器运行时。
* [GitHub 问题](https://github.com/kubernetes/kubernetes/issues/106917)跟踪有关 * [GitHub 问题](https://github.com/kubernetes/kubernetes/issues/106917)跟踪有关
dockershim 的弃用和删除的讨论。 dockershim 的弃用和删除的讨论。
* 如果你发现与 dockershim 迁移相关的缺陷或其他技术问题, * 如果你发现与 dockershim 迁移相关的缺陷或其他技术问题,
@@ -19,7 +19,7 @@ can be picked from this [page](/docs/setup/production-environment/container-runt
本任务给出将容器运行时从 Docker 改为 containerd 所需的步骤。 本任务给出将容器运行时从 Docker 改为 containerd 所需的步骤。
此任务适用于运行 1.23 或更早版本 Kubernetes 的集群操作人员。 此任务适用于运行 1.23 或更早版本 Kubernetes 的集群操作人员。
同时,此任务也涉及从 dockershim 迁移到 containerd 的示例场景, 同时,此任务也涉及从 dockershim 迁移到 containerd 的示例场景,
以及可以从[此页面](/zh/docs/setup/production-environment/container-runtimes/) 以及可以从[此页面](/zh-cn/docs/setup/production-environment/container-runtimes/)
获得的其他容器运行时列表。 获得的其他容器运行时列表。
## {{% heading "prerequisites" %}} ## {{% heading "prerequisites" %}}
@@ -34,7 +34,7 @@ and for specific prerequisite follow
--> -->
安装 containerd。进一步的信息可参见 安装 containerd。进一步的信息可参见
[containerd 的安装文档](https://containerd.io/docs/getting-started/)。 [containerd 的安装文档](https://containerd.io/docs/getting-started/)。
关于一些特定的环境准备工作,请遵循 [containerd 指南](/zh/docs/setup/production-environment/container-runtimes/#containerd)。 关于一些特定的环境准备工作,请遵循 [containerd 指南](/zh-cn/docs/setup/production-environment/container-runtimes/#containerd)。
<!-- <!--
## Drain the node ## Drain the node
@@ -71,7 +71,7 @@ for detailed steps to install containerd.
--> -->
## 安装 Containerd {#install-containerd} ## 安装 Containerd {#install-containerd}
遵循此[指南](/zh/docs/setup/production-environment/container-runtimes/#containerd) 遵循此[指南](/zh-cn/docs/setup/production-environment/container-runtimes/#containerd)
了解安装 containerd 的详细步骤。 了解安装 containerd 的详细步骤。
{{< tabs name="tab-cri-containerd-installation" >}} {{< tabs name="tab-cri-containerd-installation" >}}
@@ -89,7 +89,7 @@ dependency on Docker:
cluster before migration. cluster before migration.
--> -->
4. 检查执行上述特权操作的第三方工具。 4. 检查执行上述特权操作的第三方工具。
详细操作请参考[从 dockershim 迁移遥测和安全代理](/zh/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents)。 详细操作请参考[从 dockershim 迁移遥测和安全代理](/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/migrating-telemetry-and-security-agents)。
5. 确认没有对 dockershim 行为的间接依赖。这是一种极端情况,不太可能影响你的应用。 5. 确认没有对 dockershim 行为的间接依赖。这是一种极端情况,不太可能影响你的应用。
一些工具很可能被配置为使用了 Docker 特性,比如,基于特定指标发警报, 一些工具很可能被配置为使用了 Docker 特性,比如,基于特定指标发警报,
或者在故障排查指令的一个环节中搜索特定的日志信息。 或者在故障排查指令的一个环节中搜索特定的日志信息。
@@ -107,7 +107,7 @@ and scheduling of Pods; on each node, the {{< glossary_tooltip text="kubelet" te
uses the container runtime interface as an abstraction so that you can use any compatible uses the container runtime interface as an abstraction so that you can use any compatible
container runtime. container runtime.
--> -->
[容器运行时](/zh/docs/concepts/containers/#container-runtimes)是一个软件, [容器运行时](/zh-cn/docs/concepts/containers/#container-runtimes)是一个软件,
用来运行组成 Kubernetes Pod 的容器。 用来运行组成 Kubernetes Pod 的容器。
Kubernetes 负责编排和调度 Pod;在每一个节点上,{{< glossary_tooltip text="kubelet" term_id="kubelet" >}} Kubernetes 负责编排和调度 Pod;在每一个节点上,{{< glossary_tooltip text="kubelet" term_id="kubelet" >}}
使用抽象的容器运行时接口,所以你可以任意选用兼容的容器运行时。 使用抽象的容器运行时接口,所以你可以任意选用兼容的容器运行时。
@@ -130,7 +130,7 @@ dockershim 适配器允许 kubelet 与 Docker 交互,就好像 Docker 是一
You can read about it in [Kubernetes Containerd integration goes GA](/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/) blog post. You can read about it in [Kubernetes Containerd integration goes GA](/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/) blog post.
--> -->
你可以阅读博文 你可以阅读博文
[Kubernetes 正式支持集成 Containerd](/zh/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/)。 [Kubernetes 正式支持集成 Containerd](/zh-cn/blog/2018/05/24/kubernetes-containerd-integration-goes-ga/)。
<!-- Dockershim vs. CRI with Containerd --> <!-- Dockershim vs. CRI with Containerd -->
![Dockershim 和 Containerd CRI 的实现对比图](/images/blog/2018-05-24-kubernetes-containerd-integration-goes-ga/cri-containerd.png) ![Dockershim 和 Containerd CRI 的实现对比图](/images/blog/2018-05-24-kubernetes-containerd-integration-goes-ga/cri-containerd.png)
@@ -182,7 +182,7 @@ by Kubernetes.
- Read [Migrating from dockershim](/docs/tasks/administer-cluster/migrating-from-dockershim/) to understand your next steps - Read [Migrating from dockershim](/docs/tasks/administer-cluster/migrating-from-dockershim/) to understand your next steps
- Read the [dockershim deprecation FAQ](/blog/2020/12/02/dockershim-faq/) article for more information. - Read the [dockershim deprecation FAQ](/blog/2020/12/02/dockershim-faq/) article for more information.
--> -->
- 阅读[从 dockershim 迁移](/zh/docs/tasks/administer-cluster/migrating-from-dockershim/) - 阅读[从 dockershim 迁移](/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/)
以了解你的下一步工作。 以了解你的下一步工作。
- 阅读[dockershim 弃用常见问题解答](/zh/blog/2020/12/02/dockershim-faq/)文章,了解更多信息。 - 阅读[dockershim 弃用常见问题解答](/zh-cn/blog/2020/12/02/dockershim-faq/)文章,了解更多信息。
@@ -17,7 +17,7 @@ weight: 10
This page outlines steps to find out what [container runtime](/docs/setup/production-environment/container-runtimes/) This page outlines steps to find out what [container runtime](/docs/setup/production-environment/container-runtimes/)
the nodes in your cluster use. the nodes in your cluster use.
--> -->
本页面描述查明集群中节点所使用的[容器运行时](/zh/docs/setup/production-environment/container-runtimes/) 本页面描述查明集群中节点所使用的[容器运行时](/zh-cn/docs/setup/production-environment/container-runtimes/)
的步骤。 的步骤。
<!-- <!--
@@ -37,7 +37,7 @@ the execution of `kubectl` is allowed.
<!-- <!--
Install and configure `kubectl`. See [Install Tools](/docs/tasks/tools/#kubectl) section for details. Install and configure `kubectl`. See [Install Tools](/docs/tasks/tools/#kubectl) section for details.
--> -->
安装并配置 `kubectl`。参见[安装工具](/zh/docs/tasks/tools/#kubectl) 节了解详情。 安装并配置 `kubectl`。参见[安装工具](/zh-cn/docs/tasks/tools/#kubectl) 节了解详情。
<!-- <!--
## Find out the container runtime used on a Node ## Find out the container runtime used on a Node
@@ -94,7 +94,7 @@ Find out more information about container runtimes
on [Container Runtimes](/docs/setup/production-environment/container-runtimes/) on [Container Runtimes](/docs/setup/production-environment/container-runtimes/)
page. page.
--> -->
你可以在[容器运行时](/zh/docs/setup/production-environment/container-runtimes/) 你可以在[容器运行时](/zh-cn/docs/setup/production-environment/container-runtimes/)
页面找到与容器运行时相关的更多信息。 页面找到与容器运行时相关的更多信息。
<!-- <!--
@@ -112,7 +112,7 @@ want to know whether you use Docker Engine with dockershim.
--> -->
容器运行时使用 Unix Socket 与 kubelet 通信,这一通信使用基于 gRPC 框架的 容器运行时使用 Unix Socket 与 kubelet 通信,这一通信使用基于 gRPC 框架的
[CRI 协议](/zh/docs/concepts/architecture/cri/)。kubelet 扮演客户端,运行时扮演服务器端。 [CRI 协议](/zh-cn/docs/concepts/architecture/cri/)。kubelet 扮演客户端,运行时扮演服务器端。
在某些情况下,你可能想知道你的节点使用的是哪个 socket。 在某些情况下,你可能想知道你的节点使用的是哪个 socket。
如若集群是 Kubernetes v1.24 及以后的版本, 如若集群是 Kubernetes v1.24 及以后的版本,
或许你想知道当前运行时是否是使用 dockershim 的 Docker Engine。 或许你想知道当前运行时是否是使用 dockershim 的 Docker Engine。
@@ -175,7 +175,7 @@ or, if you want to continue using Docker Engine in v1.24 and later, migrate to a
CRI-compatible adapter like [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd). CRI-compatible adapter like [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd).
--> -->
如果你将节点上的容器运行时从 Docker Engine 改变为 containerd,可在 如果你将节点上的容器运行时从 Docker Engine 改变为 containerd,可在
[迁移到不同的运行时](/zh/docs/tasks/administer-cluster/migrating-from-dockershim/change-runtime-containerd/) [迁移到不同的运行时](/zh-cn/docs/tasks/administer-cluster/migrating-from-dockershim/change-runtime-containerd/)
找到更多信息。或者,如果你想在 Kubernetes v1.24 及以后的版本仍使用 Docker Engine 找到更多信息。或者,如果你想在 Kubernetes v1.24 及以后的版本仍使用 Docker Engine
可以安装 CRI 兼容的适配器实现,如 [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd)。 可以安装 CRI 兼容的适配器实现,如 [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd)。
[`cri-dockerd`](https://github.com/Mirantis/cri-dockerd)。 [`cri-dockerd`](https://github.com/Mirantis/cri-dockerd)。