Kubernetes 为单个容器的 Pod 分配什么 QoS?

Kubernetes 为单个容器的 Pod 分配什么 QoS?

我正在尝试调试 GKE 集群中的 OOM 问题。根据 Google 的建议,我为大多数 Pod 分配了内存限制。在阅读QoS 文档我看到有三个课程,保证易爆, 和最大努力,这些都是基于 pod 中容器的资源请求和限制的平等性。

如果一个 Pod 只有一个容器,它会获得什么 QoS 级别?我可以为其分配吗保证或者最大努力

答案1

事实证明我只需检查 pod 的状态就能解决这个问题。:)

从经验上看,无论有资源请求、限制、有还是无,似乎所有 Pod 的 QoS 级别都是“可突发的”。

$ kubectl describe pod requests-limits-3312827547-hony0
...
Containers:
...
    Limits:
      memory:   50G
    Requests:
      cpu:      100m
      memory:       30G
...
QoS Class:  Burstable

$ kubectl describe pod requests-only-3220520255-a8689
...
Containers:
...
    Requests:
      cpu:      100m
      memory:       14G
...
QoS Class:  Burstable


$ kubectl describe pod none-set-328716889-3icpc
...
Containers:
...
    Requests:
      cpu:      100m
      memory:       150M
...
QoS Class:  Burstable

在最后一种情况下,我没有在清单中为 pod 设置任何请求,但 kubernetes 设置了默认请求。

我觉得这是一个错误,因为规范说如果全部容器具有相同数量的请求,它应该是“保证的”,我认为如果有一个容器并且它定义了一个限制,那么这是正确的。

相关内容