1

我们在尝试更新自定义资源对象时遇到错误“请求实体太大:限制为 3145728”。如果有人知道如何从 k8s 端更改大小限制,那将非常有帮助。用户是否有任何公开的参数?

4

1 回答 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 回答