From 5d53e2b7bbdac6f5d5d010d1dff19dcf28de5e40 Mon Sep 17 00:00:00 2001 From: Junxian Wu Date: Tue, 21 Apr 2020 09:02:14 +0800 Subject: [PATCH] Translate Limit Range to Chinese --- .../zh/docs/concepts/policy/limit-range.md | 148 ++++++++++++++++++ 1 file changed, 148 insertions(+) create mode 100644 content/zh/docs/concepts/policy/limit-range.md diff --git a/content/zh/docs/concepts/policy/limit-range.md b/content/zh/docs/concepts/policy/limit-range.md new file mode 100644 index 0000000000..d46599b8ea --- /dev/null +++ b/content/zh/docs/concepts/policy/limit-range.md @@ -0,0 +1,148 @@ +--- +title: 限制范围 +content_template: templates/concept +weight: 10 +--- + +{{% capture overview %}} + + + +默认情况下, Kubernetes 集群上的容器运行使用的[计算资源](/docs/user-guide/compute-resources) 没有上限。 +使用资源配额,集群管理员可以以命名空间为单位,限制其资源的使用与创建。 +在命名空间中,一个 Pod 或容器能够尽可能多地使用命名空间的资源配额所定义的 CPU 和内存。有人担心,一个 Pod 或容器会垄断所有可用的资源。限制范围是在命名空间内限制资源分配(给多个 Pod 或容器)的策略对象。 + +{{% /capture %}} + + +{{% capture body %}} + + + +一个 _限制范围_ 对象提供的限制能够做到: + +- 在一个命名空间中执行对每个 Pod 或容器最小和最大的资源使用量的限制。 +- 在一个命名空间中执行对每个 PersistentVolumeClaim 能申请的最小和最大的存储空间大小的限制。 +- 在一个命名空间中控制对一类资源的申请值和限制值的比值。 +- 设置一个命名空间中对计算资源的默认申请/限制值,并且自动的在运行时注入到多个容器中。 + + + +## 启用限制范围 + + + +对限制范围的支持默认在多数 Kubernetes 发行版中启用。当 apiserver 的 `--enable-admission-plugins` 标志的参数包含 `LimitRanger` 准入控制器时即启用。 + + + +当一个命名空间中有限制范围对象时,实施该限制范围对象所定义的限制。 + + + +限制范围的对象名称必须是合法的[DNS子域名](/docs/concepts/overview/working-with-objects/names#dns-subdomain-names)。 + + + +### 限制范围总览 + + + +- 管理员在一个命名空间内创建一个 `LimitRange` 对象。 +- 用户在命名空间内创建 Pod ,容器和 PersistenctVolumeClaim 等资源。 +- `LimitRanger` 准入控制器对所有没有设置计算资源需求的 Pod 和容器设置默认值与限制值,并跟踪其使用量以保证没有超出命名空间中存在的任意限制范围对象中的最小、最大资源使用量以及使用量比值。 +- 若创建或更新资源(Pod ,容器, PersistentVolumeClaim)违反了限制范围的约束,向 API 服务器的请求会失败,并返回 HTTP 状态码 `403 FORBIDDEN` 与描述哪一项约束被违反的消息。 +- 若命名空间中的限制范围启用了对 `cpu` 和 `memory` 的限制,用户必须指定这些值的需求使用量与限制使用量。否则,系统将会拒绝创建 Pod。 +- 限制范围的验证仅在 Pod 准入阶段进行,不对正在运行的 Pod 进行验证。 + + + +能够使用限制范围策略的例子有: + +- 在一个有两个节点,8 GiB 内存与16个核的集群中,限制一个命名空间的 Pod 申请100m单位,最大500m单位的CPU,以及申请200Mi,最大600Mi的内存。 +- 为 spec 中没有 cpu 和内存需求值的容器定义默认 CPU 限制值与需求值150m,内存默认需求值300Mi。 + + + +在命名空间的总限制值小于 Pod 或容器的限制值的总和的情况下,可能会产生资源竞争。在这种情况下,将不会创建容器或 Pod。 + + + +竞争和对限制范围的改变都不会影响任何已经创建的资源。 + + + +## 示例 + + + +- 查看[如何配置每个命名空间最小和最大的 CPU 约束](/docs/tasks/administer-cluster/manage-resources/cpu-constraint-namespace/)。 +- 查看[如何配置每个命名空间最小和最大的内存约束](/docs/tasks/administer-cluster/manage-resources/memory-constraint-namespace/)。 +- 查看[如何配置每个命名空间默认的 CPU 申请值和限制值](/docs/tasks/administer-cluster/manage-resources/cpu-default-namespace/)。 +- 查看[如何配置每个命名空间默认的内存申请值和限制值](/docs/tasks/administer-cluster/manage-resources/memory-default-namespace/)。 +- 查看[如何配置每个命名空间最小和最大存储使用量](/docs/tasks/administer-cluster/limit-storage-consumption/#limitrange-to-limit-requests-for-storage)。 +- 查看[配置每个命名空间的配额的详细例子](/docs/tasks/administer-cluster/quota-memory-cpu-namespace/)。 + +{{% /capture %}} + +{{% capture whatsnext %}} + + + +查看[限制范围设计文档](https://git.k8s.io/community/contributors/design-proposals/resource-management/admission_control_limit_range.md)获取更多信息。 + +{{% /capture %}}