pod的资源管理(requests/limits),服务质量管理(QoS),全局资源管理(Quota)

k8s中,
pod的资源管理

资源配额与限额

spec:
  containers:
  - name:
    image:
    resources:
      requests:
        cpu: <number>m
        memory: <number>Mi
      limits:
        cpu: <number>m
        memory: <number>Mi   

配额是给多少,用不完,别人也不能用,就是预留给这个pod的,

配额相当于至少给多少资源,使用超过这个额度,也可以,

只要不超过节点的可用资源就可以。

限额是最多用多少

一般用设置内存和cpu

cpu用毫核(m)为单位表示

cpu一个核心是1000m

cpu占用的量化数据就是,

一秒钟占用多少毫核(m)的cpu资源

比如,一台机器有2个cpu

每个cpu有1个核心

那么这个机器的cpu总量就是2000毫核(m)

调度器是希望创建pod的时候指定配额和限额的

知道了这些数据,调度器就很容器确定把pod调度到哪个节点上

--- 
kind: Pod
apiVersion: v1
metadata:
  name: app
spec:
  containers:
  - name: web
    image: myos:httpd
    resources:
      requests:
        cpu: 1500m
        memory: 1200Mi
        #  pod创建成功之后describe可以看到资源配合信息
]#  kubectl top pods app  # 查看占用cpu和memory情况

配额策略会影响调度,

因为如果几个pod的配额把集群的资源已经分的差不多了,

虽然实际上没使用那么多,

但是新的pod会由于可分配资源不够,就会处于pending的状态,

没法调度。

有的pod所运行的服务非常重要,就可以给这个pod使用配额策略

保证这个pod一直有足够的资源可以使用。

所以,资源配额的主要作用是保护重要pod

配额保底

限额防止应用程序资源过度使用

限额使用limits进行配置

限额不能单独设置必须配合共同设置

配额要小于等于限额

如果没有设置配额

默认限额作为配额进去

配额理解最小值

限额理解最大值

resources:
  requests:
    cpu: 300m
    memory: 1200Mi
  limits:
    cpu: 800m
    memory: 1500Mi

服务质量管理QoS (Quality of Service)

优先保障哪些pod

Qos class

含义

特征

配置方法

Guaranteed

保障型

配额等于限额

requests == limits

Burstable

爆发型

配额小于限额

requests < limits

BestEffort

尽量

(默认类型)

requests和limits都不写

全局资源管理Quota

名称空间单位进行资源配额限额

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值