我正在使用YML创建pod并指定了资源请求和限制。现在,我不知道如何修改正在运行的Pod的资源限制。例如
memory-demo.yml
apiVersion: v1
kind: Pod
metadata:
name: memory-demo
namespace: mem-example
spec:
containers:
- name: memory-demo-ctr
image: polinux/stress
resources:
limits:
memory: "200Mi"
requests:
memory: "100Mi"
command: ["stress"]
args: ["--vm", "1", "--vm-bytes", "150M", "--vm-hang", "1"]
然后我运行命令oc create -f memory-demo.yml
,并创建一个pod名称memory-demo。
我的问题是我该怎么做才能从200Mi --> 600 Mi
修改内存限制,是否需要删除现有的pod并使用修改后的YML文件重新创建pod?
我是一个新手。需要帮助。
答案 0 :(得分:2)
首先,对于大多数情况,您真的不太可能直接创建(重新)Pods。探究Deployment是什么以及它如何工作。然后,您可以简单地将更改应用于部署中的规范模板,并且kubernetes将在免提滚动更新中升级该部署中的所有Pod以匹配新的规范。
确实可以对正在运行的容器进行内存限制的实时更改,但不能通过kubernetes进行更改(如果这样做,则不会反映在kube状态中)。看docker update。
答案 1 :(得分:1)
您可以使用replace
命令基于指定配置文件(documentation)的内容来修改现有对象
oc replace -f memory-demo.yml
编辑:但是,某些规格无法更新。唯一的方法是删除并重新创建容器。