【问题标题】:Kubernetes ConfigMap size limitationKubernetes ConfigMap 大小限制
【发布时间】:2019-03-31 10:54:38
【问题描述】:

虽然resourceQuotas 可能会限制命名空间中配置映射的数量,但是否有任何此类选项可以限制单个配置映射的大小? 我不希望某些用户开始将大型文本文件作为 configmaps 上传。

ConfigMap etcd 支持的最大大小是多少?如果 etcd 端有合理的限制,那应该没问题。

【问题讨论】:

    标签: kubernetes openshift


    【解决方案1】:

    到目前为止,配置映射属于对象计数配额。您可以对 configmap 的数量实施最大限制。您不能限制单个配置映射的大小。因为它们尚未包含在存储资源配额下。

    https://kubernetes.io/docs/concepts/policy/resource-quotas/

    【讨论】:

    • 我相信他的问题是关于 ConfigMap 大小本身的限制,而不是集群上可以拥有的 ConfigMap 数量
    • 是的@Rico 我已经提到你不能限制配置图的大小。如果不清楚,我会编辑它。
    • 谢谢,我可以为 configmap 做的大小限制可能是自定义准入控制器
    • 酷。让我们知道你是怎么做到的。
    【解决方案2】:

    在撰写本文时,ConfigMap 或 Secret 对象上都没有 hard-limits

    但是,从 Kubernetes 存储其对象的etcd 端有 1MB 的限制。

    从 API 方面,如果你真的看到 API code 和 ConfigMap 类型,你会看到它的 data 字段是 Golang 字符串映射,所以这似乎是内存绑定并在运行时管理,除非它在其他地方用make() 定义。从技术上讲,hashmap 上键数的最大大小是映射长度,即int,最大值在此处解释:Maximum number of elements in map。这也是 len(string) 最大值的数据值的理论限制。

    如果您真的想从 kube-apiserver 接收 protobufs(或 JSON)的 API 端获得更多见解,您可以查看google protobuf maximum size。这将为您提供一些衡量通过线路发送data 字段的限制。在处理任何大消息时,kube-apiserver 本身可能还有其他限制。

    【讨论】:

    • 阅读此内容:github.com/helm/helm/issues/1413 表明存在 1mb 的限制
    • 是的,etcd 端有 1MB 的限制,添加了更多细节。谢谢!
    • 谢谢,1 MB 的限制似乎很合理,我正在考虑一些自定义添加控制器来拒绝大小大于 X 的配置映射请求
    • @IjazAhmadKhan 不需要至少从 kubectl 1.18 开始,如果 cm 大于 1 MB,则会出现错误
    【解决方案3】:

    根据 kubernetes.io,单个 configmap 的大小限制为 1mb:

    ConfigMap 的设计目的不是保存大量数据。 ConfigMap 中存储的数据不能超过 1 MiB。如果您需要存储大于此限制的设置,您可能需要考虑挂载卷或使用单独的数据库或文件服务。

    引用来自这里 - https://kubernetes.io/docs/concepts/configuration/configmap/#motivation

    【讨论】:

      猜你喜欢
      • 2021-08-10
      • 2018-06-01
      • 2023-01-11
      • 2020-03-01
      • 2019-11-26
      • 2019-02-10
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多