在 Kubernetes (k8s) 中,资源请求和限制用于管理容器的 CPU 和内存资源。配置 CPU 和内存资源时,使用特定的单位来表示资源的数量。
CPU 资源配置
- CPU 单位:Kubernetes 中的 CPU 资源以 "核" (cores) 为单位。1 CPU 核心等于 1 vCPU/Core,通常等于一个逻辑 CPU 核心。
- m 单位 :
m
表示毫核 (millicores)。1 核心等于 1000 毫核。
因此,配置 cpu: 500m
表示请求或限制 0.5 个 CPU 核心。
内存资源配置
- 内存单位 :Kubernetes 中的内存资源以字节为单位。常用的单位包括:
Ki
:Kibibytes (1024 bytes)Mi
:Mebibytes (1024 Kibibytes)Gi
:Gibibytes (1024 Mebibytes)
因此,配置 memory: 500Mi
表示请求或限制 500 Mebibytes 的内存。
示例配置
以下是一个示例 Pod 配置文件,展示了如何配置 CPU 和内存资源:
yaml
apiVersion: v1
kind: Pod
metadata:
name: example-pod
spec:
containers:
- name: example-container
image: nginx
resources:
requests:
memory: "500Mi"
cpu: "500m"
limits:
memory: "1Gi"
cpu: "1"
解释
-
requests:表示容器启动时所需的最小资源量。调度器会根据请求的资源量来决定将 Pod 调度到哪个节点。
memory: "500Mi"
:请求 500 Mebibytes 的内存。cpu: "500m"
:请求 0.5 个 CPU 核心。
-
limits:表示容器可以使用的最大资源量。如果容器超出这个限制,可能会被杀死或限制其资源使用。
memory: "1Gi"
:限制容器最多使用 1 Gibibyte 的内存。cpu: "1"
:限制容器最多使用 1 个 CPU 核心。
总结
- CPU 资源 :
500m
表示 0.5 个 CPU 核心。 - 内存资源 :
500Mi
表示 500 Mebibytes 的内存。
通过配置资源请求和限制,可以更好地管理和优化 Kubernetes 集群中的资源使用,确保应用程序的稳定性和性能。