美文网首页
Kubernetes CPU内存资源限定

Kubernetes CPU内存资源限定

作者: xiaolyuh | 来源:发表于2023-04-23 10:10 被阅读0次

    在 Kubernetes 中创建工作负载时,您可以为 Pod 中的每一个容器指定其所需要的内存(RAM)大小和 CPU 数量。如果这些信息被指定了,Kubernetes 调度器可以更好的决定将 Pod 调度到哪一个节点。对于容器来说,其所需要的资源也将依据其指定的数值得到保证。

    资源类型及计量

    当我们讨论计算资源的时候,主要是指 CPU 和 内存。CPU 的计量单位是内核的单元数,内存的计量单位是 byte 字节数。应用程序可以按量请求、分配、消耗计算资源。

    CPU 的计量

    在 Kubernetes 中,1 个 CPU 代表:

    • 1 AWS vCPU
    • 1 GCP Core
    • 1 Azure vCore
    • 1 IBM vCPU
    • 物理机上 Intel 超线程 CPU 的 1 个超线程(Hyperthread)
      Kubernetes 中,0.5 代表请求半个 CPU 资源。表达式 0.1 等价于 表达式 100m (英文读作 one hundred millicpu 或 one hundred millicores)。在 API Server 中,表达式 0.1 将被转换成 100m,精度低于 1m 的请求是不受支持的。 CPU 的计量代表的是绝对值,而非相对值,例如,您请求了 0.1 个 CPU,无论您的节点是 单核、双核、48核,您得到的 CPU 资源都是 0.1 核。

    TIP
    在 top 命令查看CPU消耗,100% 代表 1核;4核为 400%;10% 代表 0.1 核 或者 100m

    内存的计量

    内存的计量单位是 byte 字节。您可以使用一个整数来表达内存的大小,也可以使用后缀来表示(E、P、T、G、M、K)。您也可以使用 2 的幂数来表示内存大小,其后缀为(Ei、Pi、Ti、Gi、Mi、Ki)。例如,下面的几个表达方式所表示的内存大小大致相等:

    128974848, 129e6, 129M, 123Mi

    示例

    单位m:CPU的计量单位叫毫核(m)。一个节点的CPU核心数量乘以1000,得到的就是节点总的CPU总数量。如,一个节点有两个核,那么该节点的CPU总量为2000m。

    下面拿双核举例:

    resources:
      requests:
        cpu: 200m            # 请求时申请CPU资源为0.2核
        memory: 256Mi        # 请求时申请内存资源为256M
      limits:
        cpu: 500m            # 限定CPU资源上限为0.5核
        memory: 512Mi        # 限定内存资源上限为512M
    
    • requests:代表容器启动请求的资源限制,分配的资源必须要达到此要求
    • limits:代表最多可以请求多少资源

    含义:该容器启动时请求200/2000的核心(10%)并且允许最多使用500/2000核心(25%)。

    参考

    管理容器的计算资源

    相关文章

      网友评论

          本文标题:Kubernetes CPU内存资源限定

          本文链接:https://www.haomeiwen.com/subject/eogejdtx.html