繁体   English   中英

什么是 kubernetes memory 对工作节点的承诺限制?

[英]what is kubernetes memory commitment limits on worker nodes?

我正在运行单节点 K8s 集群,我的机器有 250GB memory。 我正在尝试启动多个 Pod,每个 Pod 至少需要 50GB memory。 我将我的 pod 规格设置如下。

在此处输入图像描述

现在我可以启动前四个 pod,它们会立即开始“运行”; 但是第五个吊舱是“待定”。 kubectl describe pods显示0/1 node available; 1 insufficient memory 0/1 node available; 1 insufficient memory

现在起初这没有意义 - 我有 250GB memory 所以我应该能够启动五个 pod,每个 pod 请求 50GB memory。 我不应该吗?

再想一想——这对于 K8s 来说可能太紧了,因为如果它安排了第五个 pod,那么工作节点就没有 memory 用于其他任何事情(kubelet kube-proxy OS 等)。 如果这是拒绝的情况,那么 K8s 必须保持一定数量的节点资源(CPU memory 存储网络)始终免费或保留。 这个金额是多少? 是 static 值还是总节点资源容量的 N%? 我们可以在启动集群时更改这些值吗?

我在哪里可以找到有关相关主题的更多详细信息? 我尝试使用谷歌搜索,但没有任何东西专门解决这些问题。 你能帮我吗?

现在起初这没有意义 - 我有 250GB memory 所以我应该能够启动五个 pod,每个 pod 请求 50GB memory。 我不应该吗?

这取决于您的节点上有多少“可分配”的 memory。 一些 memory 可能被保留用于操作系统或其他系统任务。

首先列出您的节点:

kubectl get nodes

然后你会得到一个节点列表,现在描述你的一个节点:

kubectl describe node <node-name>

现在,您应该看到节点有多少“可分配”memory。

示例 output:

...
Allocatable:
  cpu:                4
  memory:             2036732Ki
  pods:               110
...

设置自定义预留资源

K8s 必须保持一定数量的节点资源(CPU memory 存储网络)始终免费或保留。 这个金额是多少? 是 static 值还是总节点资源容量的 N%? 我们可以在启动集群时更改这些值吗?

是的,这可以配置。 请参阅为系统守护程序保留计算资源

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM