【问题标题】:what is kubernetes memory commitment limits on worker nodes?工作节点上的 kubernetes 内存承诺限制是什么?
【发布时间】:2021-07-28 01:07:37
【问题描述】:

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

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

现在起初这没有意义 - 我有 250GB 内存,所以我应该能够启动五个 pod,每个 pod 都需要 50GB 内存。 不应该吗?

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

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

【问题讨论】:

    标签: kubernetes kubelet


    【解决方案1】:

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

    这取决于您的节点上“可分配”的内存量。一些内存可能会保留给例如操作系统或其他系统任务。

    首先列出你的节点:

    kubectl get nodes
    

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

    kubectl describe node <node-name>
    

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

    示例输出:

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

    设置自定义预留资源

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

    是的,这可以配置。见Reserve Compute Resources for System Daemons

    【讨论】:

      猜你喜欢
      • 2018-03-30
      • 2021-06-17
      • 2019-04-28
      • 1970-01-01
      • 1970-01-01
      • 2016-12-05
      • 2018-12-15
      • 2020-09-16
      • 2017-04-10
      相关资源
      最近更新 更多