尝试更新k8s CR资源时,“请求实体太大:限制为3145728”

时间:2020-05-12 14:51:02

标签: kubernetes kubernetes-custom-resources

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

1 个答案:

答案 0 :(得分:0)

此答案的来源:https://stackoverflow.com/a/60492986/12153576

  • "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),该要求可能适用于您的情况。这很新鲜,但是请多加注意。