gpt4 book ai didi

amazon-web-services - AWS/EKS : Getting frequent 504 gateway timeout errors from ALB

转载 作者:行者123 更新时间:2023-12-04 10:54:16 24 4
gpt4 key购买 nike

我正在使用 EKS 部署服务,入口运行在 alb-ingress-controller 之上。

总而言之,我有大约 10 个单个 pod 的副本,具有 NodePort 类型的单个服务将流量转发给他们。副本在 10 个节点上运行,使用 eksctl 建立,分布在 3 个可用区。

我看到的问题很奇怪——在集群内部,所有日志都显示请求在不到 1 秒的时间内得到处理,大部分时间约为 20-50 毫秒。我知道这一点是因为我使用 linkerd 来显示请求延迟的百分位数,以及应用程序日志本身。但是,ALB 日志/监控讲述了一个非常不同的故事。我看到一个相对较高的请求延迟(通常接近 20 秒或更长时间),并且通常还从 ELB 返回 504 错误(有时每 5 分钟 2-3 个)。

在尝试读取 ALB 的访问日志时,我注意到 504 行如下所示:

https 2019-12-10T14:56:54.514487Z app/1d061b91-XXXXX-3e15/19297d73543adb87 52.207.101.56:41266 192.168.32.189:30246 0.000 -1 -1 504 - 747 308 "GET XXXXXXXX" "-" ECDHE-RSA-AES128-GCM-SHA256 TLSv1.2 arn:aws:elasticloadbalancing:eu-west-1:750977848747:targetgroup/1d061b91-358e2837024de757a3d/e59bbbdb58407de3 "Root=1-5defb1fa-cbcdd248dd043b5bf1221ad8" "XXXX" "XXXX" 1 2019-12-10T14:55:54.514000Z "forward" "-" "-" "192.168.32.189:30246" "-"

其中请求处理时间为0,目标处理时间为-1,表示请求从未到达后端,立即返回响应。

我尝试使用后端 HTTP keepalive 超时(当前为 75 秒)和 ALB 空闲时间(当前为 60 秒),但这种行为似乎没有太大变化。

如果有人可以指出如何继续和调查此问题,或者原因可能是什么,我将非常感激。

最佳答案

我们在使用 EKS 和 ALB 组合时遇到了类似的问题。如果目标响应代码显示 -1,则可能是目标端的请求等待队列已满。因此 ALB 将立即丢弃该请求。

尝试做一个ab通过跳过 ALB 并直接将请求发送到服务或私有(private) IP 地址来进行基准测试。这样做将帮助您确定问题所在。

对我们来说,如果我们通过 ALB 发送流量,则十分之一的请求会失败。如果我们直接将请求发送到服务,我们不会看到失败。

AWS 建议使用 NLB 而不是 ALB。 NLB 提供了更多的优势,并且适用于 Kubernetes。有一个博客解释了这个 Using a Network Load Balancer with the NGINX Ingress Controller on Amazon EKS

我们更改为 NLB,现在我们没有收到 5XX 错误。

关于amazon-web-services - AWS/EKS : Getting frequent 504 gateway timeout errors from ALB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59306563/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com