长时间运行的后端进程出现 504 网关超时错误。 SpringBoot 后端、AWS EKS Ingress

问题描述 投票:0回答:1

我面临一个问题,我的后端应用程序正在执行一些复杂的计算,因此需要超过 2 分钟才能完成,并且我不断收到 504 网关超时。

当我使用 pod logs

watch
命令检查日志时,我可以看到该进程运行顺利并且完成了任务,没有任何错误。

请帮忙修复。

spring-boot kubernetes kubernetes-ingress amazon-eks http-status-code-504
1个回答
0
投票

这是我的解决方案:

我的后端应用程序(SprintBoot 应用程序)正在执行一些复杂的计算,当计算在后端执行其工作时,我收到 504 网关超时

投入issue后发现这个问题与kubernetes ingress配置中的

idle timeout duration
注解有关。我的超时设置为 120 秒,这不足以进行计算,并且计算需要更多时间才能完成。

为了解决此问题,我在入口中更新了以下注释。

alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=300

要在 Windows 中更新,我执行了以下步骤:

  1. kubectl get ingress(获取当前入口)
PS C:\aks> kubectl get ingress -n my-namespace
NAME       CLASS  HOSTS ADDRESS        PORTS  AGE
my-ingress <none>   *    52.152.91.154  80    10m
  1. 使用
    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
,这意味着更改已应用。

我从以下文章中获得了帮助,想在这里分享给读者

© www.soinside.com 2019 - 2024. All rights reserved.