我正在处理CRD,并创建自定义资源。我需要在“定制”资源中保留很多有关我的应用程序的信息。根据官方文档,etcd的请求大小最大为1.5MB。我遇到类似
的错误“错误”:“请求实体太大:限制为3145728”
我认为错误中的指定限制为3MB。有什么想法吗?有什么办法解决这个问题吗?
答案 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