1.4.2.2. Kubernetes 中的资源单元
CPU 资源单元 限制和 CPU 资源请求以 CPU 单位衡量。在 Kubernetes 中,一个 CPU 单元等于一个物理处理器内核,或一个虚拟内核,具体取决于节点是物理主机还是在物理机中运行的虚拟机。
允许部分请求。当您定义将 spec.containers[].resources.requests.cpu 设置为 0.5 的容器时,如果请求 1.0 CPU,则请求一半时间作为 CPU 时间。对于 CPU 资源单元,数量表达式 0.1 等同于表达式 100m,它可以显示为一百个 millicpu 或一百个 millicores。millicpu 和 millicores 实际是相同的。CPU 资源始终指定为绝对数量的资源,而不是作为相对数量指定。例如,500m CPU 代表容器在单核、双核或 48 核机器上运行的计算能力。
要指定小于 1.0 或 1000m 的 CPU 单元,您必须使用 milliCPU 格式。例如,使用 5m,而不是 0.005 CPU。
内存的资源单元 限制和请求以字节为单位。您可以使用这些数量后缀之一将内存表示为普通整数或固定点号: E、P、T、G、M、k。您还可以使用两的指数:Ei、Pi、Ti、Gi、Mi Ki。例如,以下代表相同的值:
128974848, 129e6, 129M, 128974848000m, 123Mi
请注意它们的后缀。如果您请求 400m 内存,则请求为 0.4 字节,而不是 400 兆字节 (400Mi) 或 400 MB (400M)。
CPU 和内存规格示例 :以下集群有足够的可用资源来调度带有专用 100m CPU 和 250Mi 的任务 pod。集群也可以超过该专用用量,最多 2000m CPU 和 2Gi 内存。
spec:
task_resource_requirements:
requests:
cpu: 100m
memory: 250Mi
limits:
cpu: 2000m
memory: 2Gi
自动化控制器不会调度使用超过限制集的资源的作业。如果任务 pod 使用的资源超过限制集,则容器由 Kubernetes 和重启进行 OOMKilled。