kubernetes资源配置中的request和args有什么区别?

时间:2019-04-01 07:04:02

标签: kubernetes

我正在尝试在Kubernetes中设置容器的部署。我希望控制资源利用率。我指的是this

文档中的示例配置-

resources:
      limits:
        memory: "200Mi"
      requests:
        memory: "100Mi"
    command: ["stress"]
    args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]

但是我无法清楚地了解requestsargs字段之间的区别。 limits在某种程度上很清楚,容器使用的资源不应超过限制的数量。

args的确切目的是什么。 Here,据说这是容器开始使用的资源。那和requests有什么不同?

2 个答案:

答案 0 :(得分:2)

resources:
  limits:
    memory: "200Mi"
  requests:
    memory: "100Mi"

资源具有请求和限制字段。
这意味着应该为容器分配最少100Mi的内存,并且此值足以运行容器。万一流量激增,它可能会使内存消耗突发高达200Mi。这是一种上限。如果超过200Mi,容器将被杀死/重新启动。

Args作为命令行参数传递给command(压力容器)。

Stress Tool Docs
DockerImageForStress

看起来压力很消耗--vm-bytes = 150M作为arg传递的内存

我认为,借助Stress工具,文档正试图表明容器可以在请求值和限制值之间消耗内存。

答案 1 :(得分:0)

关于args,因为唯一的东西在重复的答案中没有被回答:

Args与资源定义无关,它仅描述启动时传递给Docker容器的参数。

在此示例中,图像可能正在运行Java代码,并且用户决定将一些与内存相关的参数传递给它。 如果图像使用的是其他图像,例如node,则args可能是容器内运行的节点代码的某些参数。

希望它能回答您的问题。