kubernetes - Kubernetes CRD 中状态的最大大小?
问题描述
Kubernetes 中的 Kubernetes 规范和状态大小是否有限制?
我有一个用例,其中运算符规范是一个正则表达式,而正则表达式被扩展到许多我必须存储其状态的实际项目。
例子:
type RedshiftSinkSpec struct {
TopicRegexes string `json:"topicRegexes"`
}
type Topic string
type RedshiftSinkStatus struct {
// +optional
CurrentMaskStatus map[Topic]MaskStatus `json:"currentMaskStatus,omitempty"`
// +optional
DesiredMaskStatus map[Topic]MaskStatus `json:"desiredMaskStatus,omitempty"`
}
因为主题的数量是根据正则表达式计算的。我不知道其他人的数据结构可以增长到多大。所以想在某种程度上限制它。因此需要 Kubernetes 允许的最大限制方面的帮助。
此外,有必要这样来节省 Redshift 连接的数量。不能真正将问题分解为一个主题的另一个 crd。
请建议。
解决方案
引用评论中的答案。
Kubernetes 将集群数据存储在 etcd 中。默认情况下,etcd 将最大数据条目大小限制为 1.5 兆字节。——黄钦
ETCD 文档:请求大小限制:
etcd 旨在处理元数据典型的小键值对。较大的请求会起作用,但可能会增加其他请求的延迟。默认情况下,任何请求的最大大小为 1.5 MiB。此限制可通过 etcd 服务器的 --max-request-bytes 标志进行配置。
Kubernetes 没有单独对 Status 和 Spec 大小设置任何限制,但限制是对整体对象大小的限制,因为限制来自 etcd 存储。它可以使用--max-request-bytes
. 当数据量很大时,最好使用 Config Maps 来存储状态,并在状态中保存指针或整体摘要。
推荐阅读
- spring-boot - 部署一个 Spring Boot 应用的战争到本地 Tomcat 服务器:404 响应
- c# - 构建 .NET4.8 WinForm 时出现问题,配置设置会引发错误。在 Build:Debug|Release 输出文件夹中工作正常
- css - 为什么顶部的段落边距会碰到 div?
- java - 如何在适配器类中显示 CustomAlertDialog?
- java - 从片段中的json获取值
- javascript - ajax 和 json.parse 的问题
- apache-kafka - 保持 Kafka Producer 处于打开状态还是为每条消息创建一个新的 Producer 更好?
- r - 在 rgee 中使用 ee_extract 的图像统计信息?
- dialogflow-es - Dialogflow Messenger(测试版) - 它是否支持 Google 文档中的丰富响应?
- javascript - 代码停止执行而不抛出错误