指定实际资源请求

时间:2018-01-09 10:04:29

标签: kubernetes memory-limit

在k8s中,我们可以将资源指定为:

apiVersion: v1
kind: Pod
metadata:
  name: cpu-demo-2
spec:
  containers:
  - name: cpu-demo-ctr-2
    image: vish/stress
    resources:
      limits:
        cpu: "100"
      requests:
        cpu: "300"

我们可以指定requests(k8s保证容器获得这么多请求)和最大请求​​(limits)。

我的问题是,如果群集上没有负载,k8s是否会允许此pod被限制,直到达到它的限制为止?

或者,有没有办法为容器请求所需的cpus?

1 个答案:

答案 0 :(得分:0)

将限制传递给容器运行时接口,并且在CPU被设置为限制值的情况下,该限制值将利用运行时的本机机制(即:cgroups)来限制CPU,如果它试图超过该值。在达到该值之前,CPU不会受到任何限制。

内存请求和限制单独运行,并且通常包括稍微延迟,而控制循环监视消耗,如果容器超过设置限制,将使用“OOMKill”消息驱逐和终止容器(内存不足)杀人)包括在内。

您可以在kubernetes docs:Managing Compute Resources for Containers

中找到更多详细信息

Kubernetes不包含动态响应其他输入和限制资源的方法,但您可以更改请求或限制值并使其成为新的所需状态。

对于Kubernetes 1.8及更高版本,存在Pod Priority and pre-emption的概念,如果资源在集群内受到限制,它也会影响在Pod中运行的容器。