Kubernetes对象大小限制

时间:2020-02-29 18:06:18

标签: kubernetes google-kubernetes-engine etcd

我正在处理CRD,并创建自定义资源。我需要在“定制”资源中保留很多有关我的应用程序的信息。根据官方文档,etcd的请求大小最大为1.5MB。我遇到类似

的错误

“错误”:“请求实体太大:限制为3145728”

我认为错误中的指定限制为3MB。有什么想法吗?有什么办法解决这个问题吗?

2 个答案:

答案 0 :(得分:3)

  • "error": "Request entity too large: limit is 3145728"可能是kubernetes处理程序对大于3MB的对象的默认响应,如您所见,源代码的here at L305
expectedMsgFor1MB := `etcdserver: request is too large`
expectedMsgFor2MB := `rpc error: code = ResourceExhausted desc = trying to send message larger than max`
expectedMsgFor3MB := `Request entity too large: limit is 3145728`
expectedMsgForLargeAnnotation := `metadata.annotations: Too long: must have at most 262144 bytes`
  • ETCD的处理文件确实有1.5MB的限制,您会在ETCD Documentation上找到尝试使用--max-request-bytes标志的建议,但对GKE群集,因为您在主节点上没有这样的权限。

  • 但是即使您这样做,也不是理想选择,因为通常此错误表示您consuming the objects,而不是引用它们,这会降低性能。

我强烈建议您改为考虑以下选项:

  • 确定您的对象是否包含未使用的引用;
  • 破坏您的资源;
  • 改为考虑进行卷挂载;

有人要求提供new API Resource: File (orBinaryData),该要求可能适用于您的情况。这很新鲜,但是请多加注意。

如果您仍然需要帮助,请告诉我。

答案 1 :(得分:0)

如果您使用 HELM,请检查您是否有像日志文件这样的大文件。添加.helmignore

.DS_Store
# Common VCS dirs
.gitignore
.bzr/
.bzrignore
.hg/
.hgignore
.svn/
# Common backup files
*.swp
*.bak
*.tmp
*~
# Various IDEs
.project
.idea/
*.tmproj
.vscode/

*.log