【发布时间】:2019-03-31 10:54:38
【问题描述】:
虽然resourceQuotas 可能会限制命名空间中配置映射的数量,但是否有任何此类选项可以限制单个配置映射的大小?
我不希望某些用户开始将大型文本文件作为 configmaps 上传。
ConfigMap etcd 支持的最大大小是多少?如果 etcd 端有合理的限制,那应该没问题。
【问题讨论】:
标签: kubernetes openshift
虽然resourceQuotas 可能会限制命名空间中配置映射的数量,但是否有任何此类选项可以限制单个配置映射的大小?
我不希望某些用户开始将大型文本文件作为 configmaps 上传。
ConfigMap etcd 支持的最大大小是多少?如果 etcd 端有合理的限制,那应该没问题。
【问题讨论】:
标签: kubernetes openshift
到目前为止,配置映射属于对象计数配额。您可以对 configmap 的数量实施最大限制。您不能限制单个配置映射的大小。因为它们尚未包含在存储资源配额下。
【讨论】:
在撰写本文时,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 本身可能还有其他限制。
【讨论】:
根据 kubernetes.io,单个 configmap 的大小限制为 1mb:
ConfigMap 的设计目的不是保存大量数据。 ConfigMap 中存储的数据不能超过 1 MiB。如果您需要存储大于此限制的设置,您可能需要考虑挂载卷或使用单独的数据库或文件服务。
引用来自这里 - https://kubernetes.io/docs/concepts/configuration/configmap/#motivation
【讨论】: