【问题标题】:GKE Ingress: http status code 413 Request entity too largeGKE Ingress:http 状态码 413 请求实体太大
【发布时间】:2018-09-04 12:37:02
【问题描述】:

我们有默认 Ingress apiVersion: extensions/v1beta1 在 Google Kubernetes Engine 中为多个 Pod 提供服务。当我们单击链接时,问题出现在我们的网站上,该链接将通过相同的 Ingress 并具有较大的标头大小。它适用于较小的标题大小。

我尝试切换到 ingress-nginx 并使用 annotation/configmap proxy-body-size: "500m" 修改 client_max_body_size 没有成功。我们将 Kubernetes 版本 1.7.12-gke.1 用于主节点,1.7.10-gke.0 用于节点。

有没有办法直接修改允许的标头大小?我没有想法。

【问题讨论】:

    标签: kubernetes google-cloud-platform google-kubernetes-engine kubernetes-ingress


    【解决方案1】:

    Google Cloud 似乎没有替换旧的负载平衡器。我从 Google Cloud -> 网络服务 -> 负载平衡和入口中删除了旧的负载平衡器。然后我创建了新的 Ingress 资源,将 DNS 配置为新的 IP 地址并且 http 状态 413 没有出现。

    【讨论】:

      【解决方案2】:

      默认的负载均衡器是 GKE 中的 Ingress,如果请求的 URL 和标头大小大于一般 security reason 的 15KB 左右,则阻止对后端服务的请求。 请考虑如果此 URL 影响发送如此大量的数据,那可能是后端应用程序有问题 - 例如可能是无限循环或错误配置的 Web 服务。 如果您确定后端一切正常,您可以考虑从 github 部署自定义 Kubernet Ingress 并调整客户端标头缓冲区大小,其中提到了 here

      【讨论】:

      • 感谢您的回答!我们确信我们的后端应用程序是好的。我们已将 traefik-load balancer 部署到开发环境中,并且运行良好。但是这个问题是第一次出现在默认的 GKE Ingress 上。我已经尝试过 ingress-nginx,因此我将测试您链接到答案的自定义项。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-30
      • 2014-12-23
      • 2012-09-23
      • 2015-10-04
      • 2015-01-25
      • 2014-12-04
      相关资源
      最近更新 更多