k8s 中 pods\containers 是否有默认内存请求 and\or 限制?

Is there a default memory request and\or limits for pods\containers in k8s?

DevOps 的朋友们大家好,

我想知道这是否是 k8s 中每个 pod\container 的基本请求 and\or 限制,就像现在一样,或者您是否知道将来会发生变化。

我看过这个回答: 声明没有,至少对于 Google 的 k8s 实施而言,我想确定这一点也适用于本地部署中 k8s 的当前状态。

container\pod是否有任何基本要求或限制值?

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

默认情况下没有资源请求或限制,这意味着每个 pod 都是使用 BestEffort QoS. If you want to configure default values for requests and limits you should make use of LimitRange 创建的。

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

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

没有默认限制或请求。 为了配置默认资源,您应该按照此处所述创建 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,它甚至可以根据利用率自动更改您的部署资源,也许还有一些自定义指标。