我们在尝试更新自定义资源对象时遇到错误“请求实体太大:限制为 3145728”。如果有人知道如何从 k8s 端更改大小限制,那将非常有帮助。用户是否有任何公开的参数?
问问题
1654 次
1 回答
1
此答案的来源:https ://stackoverflow.com/a/60492986/12153576
- 这
"error": "Request entity too large: limit is 3145728"
可能是 kubernetes 处理程序对大于 3MB 的对象的默认响应,您可以在源代码的 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 文档中找到尝试使用该
--max-request-bytes
标志的建议,但它对 GKE 集群没有影响,因为您在主节点上没有此类权限。但即使你这样做了,它也不是理想的,因为通常这个错误意味着你正在使用对象而不是引用它们,这会降低你的性能。
我强烈建议您考虑以下选项:
- 确定您的对象是否包含未使用的引用;
- 分解你的资源;
- 请考虑使用卷挂载;
有一个新的 API 资源请求:文件 (orBinaryData)可能适用于您的案例。它非常新鲜,但值得关注。
于 2020-05-20T07:19:23.123 回答