You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kubernetes硬件资源定义及资源分配解析:1000m CPU与1024Mi内存含义

Kubernetes 硬件资源定义、分配逻辑详解

Hey there! Let's break down how Kubernetes handles CPU and memory resources—no overly technical jargon, just plain, relatable explanations.

一、资源的定义方式

在Kubernetes里,我们通过Pod配置中的resources字段来定义容器的CPU和内存需求,核心分为两个参数:requests(资源请求)和limits(资源限制)。

看个实际的Pod配置片段,一目了然:

apiVersion: v1
kind: Pod
metadata:
  name: my-app-pod
spec:
  containers:
  - name: main-app
    image: my-app-image
    resources:
      requests:
        cpu: "1000m"
        memory: "1024Mi"
      limits:
        cpu: "2000m"
        memory: "2048Mi"

简单解释:

  • requests:容器运行时必须保证能拿到的最小资源量,是Kubernetes调度Pod时的核心判断依据。
  • limits:容器运行时绝对不能超过的资源上限,用来防止单个容器占用过多资源,影响集群里其他服务。

二、资源分配的通俗逻辑

把Kubernetes想象成公司的行政管理员,集群里的每个节点就是一间办公室,CPU是办公室里的办公工位,内存是每个人的储物柜:

  • 当你提交Pod请求时,requests就像你跟管理员说:“我至少需要1个工位和1个储物柜才能干活”。管理员会挨个检查办公室,找到还有空余工位和储物柜的房间,把你安排进去——这就是Kubernetes的调度过程,保证你有基础资源可用。
  • limits则是你和管理员的约定:“我最多用2个工位和2个储物柜”。就算办公室还有空工位,你也不能占更多;要是你东西太多把储物柜塞满了(内存超限),管理员会直接请你离开(触发OOM Kill);要是你占用工位太频繁(CPU超限),管理员会限制你使用工位的频率,不让你影响其他人办公。

三、具体单位含义:1000m CPU 和 1024Mi 内存

1000m CPU是什么意思?

Kubernetes里的CPU单位是毫核(m),1个物理CPU核心等于1000毫核。所以1000m就代表1个完整的CPU核心的计算能力:

  • 如果是requests: cpu: 1000m:意味着Kubernetes会为这个容器预留1核的算力,确保它随时能拿到这么多计算资源,不会被其他容器挤走。
  • 如果是limits: cpu: 1000m:这个容器最多只能使用1核的算力,就算节点还有空闲CPU,它也无法占用更多,防止过度消耗资源。

另外,你也可以用小数表示,比如0.5核就是500m,方便精细化分配小资源。

1024Mi内存是什么意思?

内存这里要注意Kubernetes用的是二进制单位,Mi是Mebibyte(兆二进制字节),和我们常说的MB(兆十进制字节)不一样:
1 Mi = 1024 × 1024 字节 = 1,048,576 字节
而1 MB = 1000 × 1000 字节 = 1,000,000 字节

所以1024Mi就等于1 Gi(Gibibyte),也就是我们日常说的“1G内存”(严格意义上的二进制1G):

  • 如果是requests: memory: 1024Mi:表示这个容器至少需要1Gi内存才能启动和运行,Kubernetes只会把它调度到有足够剩余内存的节点上。
  • 如果是limits: memory: 1024Mi:容器使用的内存一旦超过1Gi,Kubernetes就会触发OOM(内存溢出)机制,直接终止这个容器,避免它耗尽节点内存影响其他服务。

内容的提问来源于stack exchange,提问作者Amir Mehler

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 04:00:39