如何解决处理AKS集群中的大文件3gb所需的节点硬件要求和kubernetes nginx入口配置是什么?
我们要求通过AKS群集中托管的.net核心api荚处理文件收集的总大小上限为3gb。
3个节点群集的当前节点配置为16gb Ram和2vCpus。我还添加了一些入口注释,如下所示:
nginx.ingress.kubernetes.io/client-body-buffer-size: 5000M
nginx.ingress.kubernetes.io/client-max-body-size: 5000M
nginx.ingress.kubernetes.io/proxy-body-size: 5000M
nginx.ingress.kubernetes.io/proxy-connect-timeout: '14400'
nginx.ingress.kubernetes.io/proxy-next-upstream-timeout: '14400'
nginx.ingress.kubernetes.io/proxy-read-timeout: '14400'
nginx.ingress.kubernetes.io/proxy-send-timeout: '14400'
nginx.ingress.kubernetes.io/server-snippet: keepalive_timeout 3600s; client_body_timeout 3600s;
这些更改通过使用1.02cpu和1000mi内存进入将近5分钟来帮助处理最大2gb的文件大小。我为入口更新的最新资源要求如下,但这也无济于事。
resources:
requests:
cpu: 1400m
memory: 3000Mi
但是努力处理超过2gb的大小,并在处理大约7分钟并引发内部服务器错误后被终止。
我找不到确切的日志消息,除了硬件和入口配置以成功处理3gb文件大小以外,有关配置天蓝色指标,日志,警报的任何建议也很有帮助。
解决方法
对于这种大小的上传,要么直接发布服务端口,要么如果入口提供其他功能,请禁用nginx中的请求缓冲。
将上传服务放置在其自己的入口主机上:upload.x.com
nginx.ingress.kubernetes.io/proxy-request-buffering: off
nginx.ingress.kubernetes.io/proxy-body-size: 3G
如果失败,则将请求缓冲到临时文件中,这样nginx不会将请求保留在内存中。
nginx.ingress.kubernetes.io/configuration-snippet: |
client_body_in_file_only: on
nginx.ingress.kubernetes.io/proxy-max-temp-file-size: 3G
nginx.ingress.kubernetes.io/client-body-buffer-size: 64k
nginx.ingress.kubernetes.io/proxy-body-size: 3G
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。