我面临一个问题,我的后端应用程序正在执行一些复杂的计算,因此需要超过 2 分钟才能完成,并且我不断收到 504 网关超时。
当我使用 pod logs
watch
命令检查日志时,我可以看到该进程运行顺利并且完成了任务,没有任何错误。
请帮忙修复。
这是我的解决方案:
我的后端应用程序(SprintBoot 应用程序)正在执行一些复杂的计算,当计算在后端执行其工作时,我收到 504 网关超时。
投入issue后发现这个问题与kubernetes ingress配置中的
idle timeout duration
注解有关。我的超时设置为 120 秒,这不足以进行计算,并且计算需要更多时间才能完成。
为了解决此问题,我在入口中更新了以下注释。
alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=300
。
要在 Windows 中更新,我执行了以下步骤:
PS C:\aks> kubectl get ingress -n my-namespace
NAME CLASS HOSTS ADDRESS PORTS AGE
my-ingress <none> * 52.152.91.154 80 10m
edit
命令编辑入口配置kubectl edit ingress my-ingress -n my-namespace
(它将在记事本中打开一个新文件)PS C:\aks> kubectl edit ingress my-ingress -n my-namespace
ingress.networking.k8s.io/my-ingress edited
在记事本中,您可以继续修改服务名称并保存。
一旦您看到此消息
ingress.networking.k8s.io/my-ingress edited
,这意味着更改已应用。
我从以下文章中获得了帮助,想在这里分享给读者