Kubernetes之容器计算资源管理

Kubernetes有一种与资源配额管理有关的对象:ResourceQuota,此种类型的对象由集群管理员创建,创建好后作用于某个名称空间,限制名称空间内可以创建的各类对像的总数、CPU、内存等。用户、用户组则工作在名称空间之下,以此实现多用户、多用户共享同一集群,公平合理的分配资源。本文描述在一个名称空间之下创建容器时,对容器所使用的计算资源进行管理。

计算资源类型

计算资源包含cpu与memory,就是通常计算机上的硬件资源,不包含存储。计算资源可以被计量、申请、分配、消费。在Kurnetes中cpu的计量单位是core,就是几个核。memory的计算单位是byte,就是字节数。

定义pod、container时与计算资源相关的字段

  • spec.containers[].resources.limits.cpu
  • spec.containers[].resources.limits.memory
  • spec.containers[].resources.requests.cpu
  • spec.containers[].resources.requests.memory

在定义pod时,以上与计算资源相关的字段只能指定给其中所定义的容器。当谈讨pod的limit与request时,指的是pod所有容器limit或者是request的总和。

CPU含义

在Kubernetes层面中,一个CPU表示一个核心处理器的core,但其具体含义取决于低层基础设施供应商,有可能是物理core、虚拟core、一个线程等,以下是一个CPU核在常见的基础设施供应商的含义:

  • 1 AWS vCPU
  • 1 GCP Core
  • 1 Azure vCore
  • 1 IBM vCPU
  • 1 Hyperthread on a bare-metal Intel processor with Hyperthreading

CPU的核数,最终应该是被转换成表示线程占用CPU的时长。首先换算的单位是100m(100毫秒),100m对应0.1个核。比如,0.4表示400毫秒的CPU内核运行时间,1表示1000毫秒的CPU内核运行时间,1.5表示1500毫秒的CPU内核运行时间,可以直接指定如400m、1500m,这种方法更直观更通用。如果一个节点有4个核则在1秒内有4000毫秒的时间片可供分配。所以无论宿主机节点有多少个核,CPU术数表示的意义不变,它是一个绝对值。另外它只能精确到小数点后1位或者是100m

MEMORY含义

其含义是字节数,表示多少个字节。在书写时可以用整数、指数、表示计算机容器的K、M等。

配置示例

apiVersion: v1
kind: Pod
metadata:
  name: frontend
spec:
  containers:
  - name: db
    image: mysql
    env:
    - name: MYSQL_ROOT_PASSWORD
      value: "password"
    resources:
      requests:
        memory: "64Mi"
        cpu: "250m"
      limits:
        memory: "128Mi"
        cpu: "500m"
  - name: wp
    image: wordpr
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值