我正在尝试在Kubernetes中设置容器的部署。我希望控制资源利用率。我指的是this。
文档中的示例配置-
resources:
limits:
memory: "200Mi"
requests:
memory: "100Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]
但是我无法清楚地了解requests
和args
字段之间的区别。 limits
在某种程度上很清楚,容器使用的资源不应超过限制的数量。
args
的确切目的是什么。 Here,据说这是容器开始使用的资源。那和requests
有什么不同?
答案 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可能是容器内运行的节点代码的某些参数。
希望它能回答您的问题。