问题描述
我们在阿里云上有一个 3 个节点的测试集群
我们没有为每个命名空间或每个 Pod 设置任何内存限制
但是,在阿里云控制台查看节点时,我们看到内存设置了Requested/Limited/Used
。当 Used
超过 Limited
阈值
有谁知道这个限制是从哪里来的?我们的每个节点似乎都不同,因此它为每个 pod 创建了一个任意限制?
解决方法
老实说,我找不到任何相关信息,您当前的默认限制来自哪里......但无论如何您应该以某种方式解决您的问题。
我建议您手动设置所需的限制,以避免将来出现 OOM。您需要做的是 - 计算近似的资源使用量并正确应用限制
这可以帮助:
Kubernetes: Assign Memory Resources and Limits to Containers,尤其是这部分
内存限制
Kubernetes 管理员可以为其节点定义 RAM 限制。
这些限制的执行优先级高于您的 RAM 大小 Pod 声明并想使用。
让我们定义我们的第一个 LimitRange:25Mi RAM 为最小值,200Mi 为最大值。
nano myRAM-LimitRange.yaml
apiVersion: v1
kind: LimitRange
metadata:
name: my-ram-limit
spec:
limits:
- max:
memory: 200Mi
min:
memory: 25Mi