【问题标题】:Is there a default memory request and\or limits for pods\containers in k8s? [closed]k8s 中的 pods\containers 是否有默认内存请求和\或限制? [关闭]
【发布时间】:2021-01-23 18:05:04
【问题描述】:

您好,DevOps 人员,

我试图了解这是否是 k8s 中每个 pod\container 的基本请求和/或限制,或者您是否知道将来会对此进行更改。

我看过这个答案: What is the default memory allocated for a pod 声明没有任何内容,至少对于 Google 的 k8s 实施而言,我也想确定 k8s 在本地部署中的当前状态。

容器\pod 是否有任何基本请求或限制值?

编辑: 还有一种方法是 k8s 可以通过应用程序开发语言或为部署设置的环境变量预测容器内存请求(如来自 java 容器 RUN 命令或 env:JVM_OPTS -Xms1G -Xmx1G)?

【问题讨论】:

    标签: kubernetes memory-management containers limit


    【解决方案1】:

    默认情况下没有资源请求或限制,这意味着每个 pod 都是使用BestEffort QoS 创建的。如果你想为请求和限制配置默认值,你应该使用LimitRange

    根据定义,BestEffort pod 是“要为 Pod 提供 BestEffort 的 QoS 类,Pod 中的容器不得有任何内存或 CPU 限制或请求。” BestEffort pod 对 Kubernetes 调度程序的优先级最低,可以在资源争用的情况下被驱逐

    以上所有内容都适用于包括 OpenShift 在内的所有 Kubernetes 发行版。

    【讨论】:

    • 你能详细说明一下吗?除了获取它的原因之外,它没有指定拥有 BestEffort QoS 字段的 pod 意味着什么。
    • BestEffort 的定义是“要为 Pod 赋予 BestEffort 的 QoS 类,Pod 中的容器不得有任何内存或 CPU 限制或请求。” BestEffort pod 对 Kubernetes 调度程序的优先级最低,可以在资源争用的情况下被驱逐。
    【解决方案2】:

    没有默认限制或请求。 为了配置默认资源,您应该创建一个 LimitRange 资源,如下所述:https://docs.openshift.com/container-platform/3.11/dev_guide/compute_resources.html#dev-viewing-limit-ranges

    如果您希望使用特定资源限制创建每个新项目,您可以修改默认项目模板,如下所述:https://docs.openshift.com/container-platform/3.11/admin_guide/managing_projects.html#modifying-the-template-for-new-projects

    这在 4.6 中也没有改变,只是实现了如何修改 LimitRange 或默认项目模板。 (方法完全一样)

    关于你预测应用程序资源的问题,有一些玩家围绕这个问题。我只听说过 turbonomic,它甚至可以通过利用率以及一些自定义指标自动更改您的部署资源。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-08-17
      • 1970-01-01
      • 1970-01-01
      • 2019-05-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-11
      相关资源
      最近更新 更多