Kubernetes QoS

2017/07/30

Categories: Orchestration Tags: container qos

Pod 的 QoS 分为三个级别:Guaranteed、Burstable、BestEffort。

QoS

其等级划分与 Pod 的资源(CPU、内存)要求有关:

BestEffort

当 Pod 中的所有容器都没有设置 limits 和 requests 时。

containers:
  name: foo
    resources:
  name: bar
    resources:

Guaranteed

Pod 中的每个容器都需要声明资源(CPU、内存)的 limit。当 Pod 内每个容器的对应资源 limits 与 requests 相等时。注意:某个容器资源的 requests 没有设置时,默认与其 limit 值相同。

例如: 只有 limit 的 Pod:

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

有 limit 与 request 的 Pod:

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

Burstable

除 BestEffort 与 Guaranteed 之外的情况。

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

  name: bar