From c2bae6e414cc445bbf755c1031d434aea35513f5 Mon Sep 17 00:00:00 2001 From: AdamDang Date: Mon, 19 Nov 2018 20:58:50 +0800 Subject: [PATCH] zh-trans:Add manage-resources/memory-default-namespace.md (#11044) * zh-trans:Add manage-resources/memory-default-namespace.md zh-trans:Add manage-resources/memory-default-namespace.md * Fix due to reviewing Fix due to reviewing * Update memory-default-namespace.md * Create memory-defaults.yaml * Create memory-defaults-pod.yaml * Create memory-defaults-pod-2.yaml * Create memory-defaults-pod-3.yaml * Add yaml files Add yaml files * Delete cpu-constraints-pod-2.yaml * Delete cpu-constraints-pod-3.yaml * Delete cpu-constraints-pod-4.yaml * Delete cpu-constraints-pod.yaml * Delete cpu-constraints.yaml * Delete cpu-defaults-pod-2.yaml * Delete cpu-defaults-pod-3.yaml * Delete cpu-defaults-pod.yaml * Delete cpu-defaults.yaml * Delete memory-constraints-pod-2.yaml * Delete memory-constraints-pod-3.yaml * Delete memory-constraints-pod-4.yaml * Delete memory-constraints-pod.yaml * Delete memory-constraints.yaml * Delete quota-pod.yaml * Delete quota-pod-deployment.yaml * Delete quota-objects.yaml * Delete quota-objects-pvc.yaml * Delete quota-objects-pvc-2.yaml * Delete quota-mem-cpu.yaml * Delete quota-mem-cpu-pod.yaml * Delete quota-mem-cpu-pod-2.yaml --- .../memory-default-namespace.md | 335 ++++++++++++++++++ .../admin/resource/memory-defaults-pod-2.yaml | 11 + .../admin/resource/memory-defaults-pod-3.yaml | 11 + .../admin/resource/memory-defaults-pod.yaml | 8 + .../admin/resource/memory-defaults.yaml | 11 + 5 files changed, 376 insertions(+) create mode 100644 content/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md create mode 100644 content/zh/examples/admin/resource/memory-defaults-pod-2.yaml create mode 100644 content/zh/examples/admin/resource/memory-defaults-pod-3.yaml create mode 100644 content/zh/examples/admin/resource/memory-defaults-pod.yaml create mode 100644 content/zh/examples/admin/resource/memory-defaults.yaml diff --git a/content/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md b/content/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md new file mode 100644 index 0000000000..cd1521a861 --- /dev/null +++ b/content/zh/docs/tasks/administer-cluster/manage-resources/memory-default-namespace.md @@ -0,0 +1,335 @@ + + +--- +title: 为命名空间配置默认的内存请求和限制 +content_template: templates/task +weight: 10 +--- + +{{% capture overview %}} + + + +本文介绍怎样给命名空间配置默认的内存请求和限制。如果在一个有默认内存限制的命名空间创建容器,该容器没有声明自己的内存限制时,将会被指定默认内存限制。Kubernetes 还为某些情况指定了默认的内存请求,本章后面会进行介绍。 + +{{% /capture %}} + +{{% capture prerequisites %}} + +{{< include "task-tutorial-prereqs.md" >}} {{< version-check >}} + + + +你的集群中的每个节点必须至少有2 GiB的内存。 + +{{% /capture %}} + +{{% capture steps %}} + + + +## 创建命名空间 + + + +创建一个命名空间,以便本练习中所建的资源与集群的其余资源相隔离。 + +```shell +kubectl create namespace default-mem-example +``` + + + +## 创建 LimitRange 和 Pod + + + +这里给出了一个限制范围对象的配置文件。该配置声明了一个默认的内存请求和一个默认的内存限制。 + +{{< codenew file="admin/resource/memory-defaults.yaml" >}} + + + +在 default-mem-example 命名空间创建限制范围: + +```shell +kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults.yaml --namespace=default-mem-example +``` + + + +现在,如果在 default-mem-example 命名空间创建容器,并且该容器没有声明自己的内存请求和限制值,它将被指定一个默认的内存请求256 MiB和一个默认的内存限制512 Mib。 + +{{< codenew file="admin/resource/memory-defaults-pod.yaml" >}} + + + +创建 Pod + +```shell +kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults-pod.yaml --namespace=default-mem-example +``` + + + +查看 Pod 的详情: + +```shell +kubectl get pod default-mem-demo --output=yaml --namespace=default-mem-example +``` + + + +输出内容显示该Pod的容器有一个256 MiB的内存请求和一个512 MiB的内存限制。这些都是限制范围声明的默认值。 + +```shell +containers: +- image: nginx + imagePullPolicy: Always + name: default-mem-demo-ctr + resources: + limits: + memory: 512Mi + requests: + memory: 256Mi +``` + + + +删除你的 Pod: + +```shell +kubectl delete pod default-mem-demo --namespace=default-mem-example +``` + + + +## 声明容器的限制而不声明它的请求会怎么样? + + + +这里给出了包含一个容器的 Pod 的配置文件。该容器声明了内存限制,而没有声明内存请求: + +{{< codenew file="admin/resource/memory-defaults-pod-2.yaml" >}} + + + +创建 Pod: + +```shell +kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults-pod-2.yaml --namespace=default-mem-example +``` + + + +查看 Pod 的详情: + +```shell +kubectl get pod default-mem-demo-2 --output=yaml --namespace=default-mem-example +``` + + + +输出结果显示容器的内存请求被设置为它的内存限制相同的值。注意该容器没有被指定默认的内存请求值256Mi。 + +``` +resources: + limits: + memory: 1Gi + requests: + memory: 1Gi +``` + + + +## 声明容器的内存请求而不声明内存限制会怎么样? + + + +这里给出了一个包含一个容器的 Pod 的配置文件。该容器声明了内存请求,但没有内存限制: + +{{< codenew file="admin/resource/memory-defaults-pod-3.yaml" >}} + + + +创建 Pod: + +```shell +kubectl create -f https://k8s.io/examples/admin/resource/memory-defaults-pod-3.yaml --namespace=default-mem-example +``` + + + +查看 Pod 声明: + +```shell +kubectl get pod default-mem-demo-3 --output=yaml --namespace=default-mem-example +``` + + + +输出结果显示该容器的内存请求被设置为了容器配置文件中声明的数值。容器的内存限制被设置为512Mi,即命名空间的默认内存限制。 + +``` +resources: + limits: + memory: 512Mi + requests: + memory: 128Mi +``` + + + +## 设置默认内存限制和请求的动机 + + + +如果你的命名空间有资源配额,那么默认内存限制是很有帮助的。下面是一个例子,通过资源配额为命名空间设置两项约束: + + + +* 运行在命名空间中的每个容器必须有自己的内存限制。 +* 命名空间中所有容器的内存使用量之和不能超过声明的限制值。 + + + +如果一个容器没有声明自己的内存限制,会被指定默认限制,然后它才会被允许在限定了配额的命名空间中运行。 + +{{% /capture %}} + +{{% capture whatsnext %}} + + + +### 集群管理员参考 + + + +* [为命名空间配置默认的 CPU 请求和限制](/docs/tasks/administer-cluster/cpu-default-namespace/) + +* [为命名空间配置最小和最大内存限制](/docs/tasks/administer-cluster/memory-constraint-namespace/) + +* [为命名空间配置最小和最大 CPU 限制](/docs/tasks/administer-cluster/cpu-constraint-namespace/) + +* [为命名空间配置内存和 CPU 配额](/docs/tasks/administer-cluster/quota-memory-cpu-namespace/) + +* [为命名空间配置 Pod 配额](/docs/tasks/administer-cluster/quota-pod-namespace/) + +* [为 API 对象配置配额](/docs/tasks/administer-cluster/quota-api-object/) + + + +### 应用开发者参考 + + + +* [为容器和 Pod 分配内存资源](/docs/tasks/configure-pod-container/assign-memory-resource/) + +* [为容器和 Pod 分配 CPU 资源](/docs/tasks/configure-pod-container/assign-cpu-resource/) + +* [为 Pod 配置服务数量](/docs/tasks/configure-pod-container/quality-service-pod/) + +{{% /capture %}} + + diff --git a/content/zh/examples/admin/resource/memory-defaults-pod-2.yaml b/content/zh/examples/admin/resource/memory-defaults-pod-2.yaml new file mode 100644 index 0000000000..aa80610d84 --- /dev/null +++ b/content/zh/examples/admin/resource/memory-defaults-pod-2.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Pod +metadata: + name: default-mem-demo-2 +spec: + containers: + - name: default-mem-demo-2-ctr + image: nginx + resources: + limits: + memory: "1Gi" diff --git a/content/zh/examples/admin/resource/memory-defaults-pod-3.yaml b/content/zh/examples/admin/resource/memory-defaults-pod-3.yaml new file mode 100644 index 0000000000..09ee8b39a9 --- /dev/null +++ b/content/zh/examples/admin/resource/memory-defaults-pod-3.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: Pod +metadata: + name: default-mem-demo-3 +spec: + containers: + - name: default-mem-demo-3-ctr + image: nginx + resources: + requests: + memory: "128Mi" diff --git a/content/zh/examples/admin/resource/memory-defaults-pod.yaml b/content/zh/examples/admin/resource/memory-defaults-pod.yaml new file mode 100644 index 0000000000..ce7a50fb55 --- /dev/null +++ b/content/zh/examples/admin/resource/memory-defaults-pod.yaml @@ -0,0 +1,8 @@ +apiVersion: v1 +kind: Pod +metadata: + name: default-mem-demo +spec: + containers: + - name: default-mem-demo-ctr + image: nginx diff --git a/content/zh/examples/admin/resource/memory-defaults.yaml b/content/zh/examples/admin/resource/memory-defaults.yaml new file mode 100644 index 0000000000..b98a5ae262 --- /dev/null +++ b/content/zh/examples/admin/resource/memory-defaults.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: LimitRange +metadata: + name: mem-limit-range +spec: + limits: + - default: + memory: 512Mi + defaultRequest: + memory: 256Mi + type: Container