如何比较内存配额控制实现,openshift与docker

如何比较内存配额控制实现,openshift与docker,openshift,openshift-origin,Openshift,Openshift Origin,我的客户问我openshift是否可以提供与docker相同的内存使用控制,例如,docker run可以在运行容器时使用以下参数来控制内存使用: --kernel-memory --memory --memory-reservation 当我在openshift中搜索相应的部分时,我发现ResourceQuota和LimitRange应该可以做到这一点,但是如果一个pod声称使用LimitRange会使用100Mi内存,但实际上它会消耗500Mi内存呢?内存仍然可以“非法”使用,似乎dock

我的客户问我openshift是否可以提供与docker相同的内存使用控制,例如,docker run可以在运行容器时使用以下参数来控制内存使用:

--kernel-memory
--memory
--memory-reservation
当我在openshift中搜索相应的部分时,我发现ResourceQuota和LimitRange应该可以做到这一点,但是如果一个pod声称使用LimitRange会使用100Mi内存,但实际上它会消耗500Mi内存呢?内存仍然可以“非法”使用,似乎docker用内存可以更好地控制这种情况

在openshift中,是否有任何方法可以控制实际内存使用情况,而不是检查LimitRange中的pod声明或使用“oc set resources dc hello--requests=memory=256Mi”

致意


Lan

就我使用Openshift的经验而言,我没有遇到过POD消耗了更多内存或其配置的CPU的情况如果达到阈值,POD将自动关闭并重新启动

您可以在部署配置中设置POD资源限制:

resources:
        limits:
          cpu: 750m
          memory: 1024Mi
可以在相应POD的度量部分中监控资源:

除了单独的POD设置外,您还可以为POD中的每个容器定义自己的总体项目设置

$ oc get limits
NAME
limits

    $ oc describe limits <NAME>
Name:           <NAME>
Namespace:      <NAME_SPACE>
Type            Resource        Min     Max     Default Request Default Limit   Max Limit/Request Ratio
----            --------        ---     ---     --------------- -------------   -----------------------
Pod             memory          256Mi   32Gi    -               -               -
Pod             cpu             125m    6400m   -               -               -
Container       cpu             125m    6400m   125m            750m            -
Container       memory          256Mi   32Gi    512Mi           1Gi             -
$oc获取限制
名称
限制
$oc描述限制
姓名:
名称空间:
类型资源最小最大默认请求默认限制最大限制/请求比率
----            --------        ---     ---     --------------- -------------   -----------------------
Pod内存256Mi 32Gi---
吊舱cpu 125m 6400m---
集装箱cpu 125m 6400m 125m 750m-
容器内存256Mi 32Gi 512Mi 1Gi-
有关资源设置的更多信息,请参阅。

如果只使用
--requests=memory=256Mi
,则将QoS级别设置为“”,这意味着pod可以请求至少256Mi的内存,而无上限,除非达到项目配额。如果要限制pod内存,请改用
--limit=memory=256Mi