kubernetes之服务质量

1.简介
在一个超用(容器limits总和大于系统容量上限), 会导致操作系统的资源不足, 最终可能导致部分容器杀掉, 希望优先杀掉不太重要的容器
kubernetes把容器划分成3个等级, Guaranteed(完全可靠的)丶Burstable(较可靠的)和BestEffort(不太可靠的)
kubernetes为了简化模式以及避免复杂性, QOS级别直接由Requests和Limits来定义

2.Guaranteed
如果pod中所有容器都定义了Limits和Requests, 并且所有容器的Limits的值和Requests值相等且不为0, 那么pod的级别就是为Guaranteed
容器可以不定义Requests, 因为Requests值在未定义时默认等于Limits

Guaranteed举例1:容器只指明了limits而未指明requests)。

containers:
name: foo
resources:
  limits:
    cpu: 10m
    memory: 1Gi
name: bar
resources:
  limits:
    cpu: 100m
    memory: 100Mi

Guaranteed举例2:requests与limit均指定且值相等。

containers:
name: foo
resources:
  limits:
    cpu: 10m
    memory: 1Gi
  requests:
    cpu: 10m
    memory: 1Gi

name: bar
resources:
  limits:
    cpu: 100m
    memory: 100Mi
  requests:
    cpu: 100m
    memory: 100Mi

3.Burstable
当一个pod既不为Guaranteed和BestEffort, 那么就是Burstable
pod中的容器limit值与requests值不相等
pod中容器部分定义了limit值与requests值, 部分容器没有定义
Container bar没有指定resources

containers:
name: foo
resources:
  limits:
    cpu: 10m
    memory: 1Gi
  requests:
    cpu: 10m
    memory: 1Gi

name: bar

Burstable举例2:对Container foo与bar不同的resources(foo为memory,而bar为cpu)设置了limits。

containers:
name: foo
resources:
  limits:
    memory: 1Gi

name: bar
resources:
  limits:
    cpu: 100m

Burstable举例3:Container foo没有设置limits,而bar requests与 limits均未设置。

containers:
name: foo
resources:
  requests:
    cpu: 10m
    memory: 1Gi

name: bar

4.BestEffort
Pod中所有容器都未定义Requests和Limits

5.QoS优先级
3种QoS优先级从有低到高(从左向右):
Best-Effort pods -> Burstable pods -> Guaranteed pods
参考文档: http://dockone.io/article/2592

转载于:https://www.cnblogs.com/lovelinux199075/p/11278728.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值