【问题标题】:How to check maximum memory I can request for a pod in a kubernetes cluster?如何检查我可以为 Kubernetes 集群中的 pod 请求的最大内存?
【发布时间】:2021-10-11 09:30:22
【问题描述】:

我正在使用具有 4 个节点的 EKS 集群。 Kubernetes 集群中运行着多个应用程序(近 30-40 个 pod),它们具有不同的 cpu 和内存请求。

现在我希望增加一个特定 pod 的内存,现在如何选择我可以为集群中的 pod 分配的最大内存。

我的想法是在 kubernetes 节点中获取空闲内存,并据此决定我可以分配给 pod 的最大内存。

我正在尝试在 pod 中使用 free 命令来检查可用内存。

如何在我的 EKS 集群节点中获得可用内存?

注意:我的 EKS 集群中没有安装指标服务器

【问题讨论】:

    标签: kubernetes memory nodes amazon-eks kubernetes-pod


    【解决方案1】:

    可能存在特定于命名空间的限制,可能低于节点级别的可用限制。在这种情况下,您将不得不考虑命名空间限制。

    但是,如果不是这种情况,作为起始值,您可以使用以下命令并查看“请求”列,然后在您的 pod 中选择低于您最常使用的节点显示的可用数量的请求值.

    kubectl get node --no-headers | while read node status; do echo '>>>>  ['$node']'; kubectl describe node $node | grep Resource -A 3 ;done
    >>>>  [node-be-worker-1]
      Resource           Requests    Limits
      --------           --------    ------
      cpu                300m (7%)   100m (2%)
      memory             220Mi (2%)  220Mi (2%)
    >>>>  [node-be-worker-2]
      Resource           Requests    Limits
      --------           --------    ------
      cpu                200m (5%)   100m (2%)
      memory             150Mi (1%)  50Mi (0%)
    >>>>  [node-be-worker-3]
      Resource           Requests    Limits
      --------           --------    ------
      cpu                400m (10%)  2100m (52%)
      memory             420Mi (5%)  420Mi (5%)
    >>>>  [node-master-0]
      Resource           Requests    Limits
      --------           --------    ------
      cpu                650m (32%)  100m (5%)
      memory             50Mi (1%)   50Mi (1%)
    

    说明:该命令列出所有节点并循环描述节点,然后过滤“资源”行并打印字符串和接下来的 3 行。

    您应该能够调整上述命令,使其也适用于命名空间。

    【讨论】:

    • 感谢您的评论,想了解命令一次,以及其他事情,所以请求部分中显示的值是节点中的可用内存??是吗???我可以在请求中显示的值中选择一个值吗????请帮忙,因为这对我来说很重要
    • Request 为您提供当前利用率。因此,上面示例中的 10% = 400m 表明在该节点上,您还有 3600m 剩余。因此,如果您选择的容器小于 3600m,kubernetes 将能够在该节点(node-be-worker-3)上调度它,前提是自命令运行以来没有其他 pod 消耗更多资源。限制是容器将获得的最大值
    • @Balakrishna 我已经在我的帖子中添加了对命令的解释。请查看
    • 感谢您的明确解释,另一个小问题是请求部分是当前的使用权,但 pod 可能分配了额外的内存,但它正在使用假设分配的一半内存,如果我必须获取为 pod 中运行的所有 pod 定义的最大内存限制,而不管当前利用率是多少,那么在这种情况下,我需要检查限制列..???对吗??
    • 在集群中已经存在所有 Pod 内存限制之后,我希望节点中的内存可用
    猜你喜欢
    • 1970-01-01
    • 2018-09-11
    • 2020-05-12
    • 1970-01-01
    • 2018-06-10
    • 2020-02-23
    • 2019-06-29
    • 1970-01-01
    相关资源
    最近更新 更多