我在EC2实例上运行微服务(使用不同的编程语言).在生产时,当这些服务尝试相互交互时,我会注意到一些502 Bad Gateway Errors.此外,在所请求的服务的日志中,它没有显示任何api呼叫被击中
示例服务A调用服务B,但在服务B日志中没有任何内容表明来自服务A的呼叫.
可以是AWS负载均衡器问题吗?任何帮助,将不胜感激.提前致谢.
尝试解决方案:我们尝试在每个服务中创建http/https连接代理,但我们仍然遇到此问题.
更新:在lb日志中,会记录api,但目标响应代码显示" - ",而lb响应代码显示502或504.这是否意味着lb无法处理流量或我的应用程序?
还有什么可能的解决方案?
amazon-ec2 amazon-web-services microservices internal-load-balancer elastic-load-balancer
作为开发人员,我们在Azure Service Fabric上编写了微服务,我们可以在Azure中以某种PaaS概念为许多客户运行它们.但是我们的一些客户不希望在云中运行,因为数据库是本地的,而不是从外部可用,甚至不是通过DMZ.没关系,我们承诺支持它,因为Azure Service Fabric可以作为集群安装在本地.
我们在每个虚拟机上运行一个API网关微服务,它使用名称解析器,并相应地路由和分发请求,但API网关微服务提供的API是另一个客户端软件的入口.客户使用,该软件在集群外部运行,并且必须向API发送请求.
我建议在客户端软件发送请求的单独机器(或机器)上使用HA-Proxy或Nginx等负载均衡器,然后反向代理将其转发到集群内的可用机器.
这似乎不是我们客户想要的,另一台机器作为负载均衡器不是一种选择.他们建议:让客户端软件变得更聪明,找出要去哪个主机,换句话说:我们应该在客户端软件中编写自己的故障转移/负载均衡器.
我们还有其他选择吗?
在每个虚拟机上安装网络负载均衡器功能,为集群提供单个IP地址,这是否可能?像https://www.poweradmin.com/blog/configuring-network-load-balancing-in-windows-server/
建议群集外的API网关,如KONG https://getkong.org/
别的什么?
PS:客户端应用程序每秒发送的请求不多,可能每分钟发送一次.
我在专用子网中运行EKS,因此无法创建面向Internet的负载均衡器,但能够创建内部LoadBalancer。
有什么方法可以在公共子网中创建Loadbalancer(可能是手动)并指向在私有子网中的EKS中运行的Pod。
我正在考虑创建一个负载平衡器链,其中外部负载平衡器将指向内部负载平衡器,但这也是不可能的,因为内部负载平衡器的IP地址是保留IP。
我可以尝试其他方法将流量从互联网路由到Pod吗?
internal-load-balancer kubernetes-ingress aws-load-balancer amazon-eks
我用谷歌搜索负载平衡,但我唯一能找到的是工作理论,目前,对我来说是“简单”的部分。但是如何实现一个的零示例。
我有几个关于负载平衡的问题:
我有一个域(example.com),在它后面我有一个负载平衡服务器(我们称之为A),根据理论,它会要求客户端关闭与 A 的连接,并连接到 B,一个子-server 并与 B 进行请求。客户端是否会在 Web 浏览器中停止在地址栏中看到“example.com/page.html”并开始看到“B_ip_address/page.html”?
如何从头开始实现一个简单的负载均衡器?我的怀疑针对 HTTP 部分。是否有一些特定的消息或一组消息我需要发送给客户端,这将使他与我断开连接并连接到子服务器?
比HTTP更低层的协议,比如TCP/IP,有没有什么标准的包告诉客户端他刚刚连接到负载均衡服务器,现在他需要连接到xxx.xxx.xxx.xxx来进行请求?
什么方法用得最多?(1) 客户端连接到负载均衡服务器,它要求客户端直接连接到其中一个子服务器,或者 (2) 负载均衡服务器开始桥接从客户端到子服务器的所有流量,反之亦然以透明的方式?
所以问题 2、3 和 4 是关于负载平衡协议的,第一个问题是域名可以连接到负载平衡器的方式以及潜在的后果是什么。
java network-programming servlets load-balancing internal-load-balancer
我已经在 EC2 中为 SQL 读取服务器设置了一个内部负载均衡器,但我不知道如何将 DNS 指向它。我在 Route 53 中有一个私有托管区域。当我尝试为 LB 设置 ALIAS 记录时,内部负载均衡器不会出现在下拉列表中,尽管所有公共 LB 都会出现,这让我相信我正在处理这是错误的方式。我的谷歌搜索都没有让我找到任何特定于私有负载均衡器的信息,所以也许这是不可能的,我必须使用长AWS域名?
我有一个 EKS Kubernetes 1.16.x。具有三个标记为 的公共子网kubernetes.io/role/elb: 1
和三个标记为 的私有子网的集群kubernetes.io/role/internal-elb: 1
我正在尝试创建一个内部 NLB LoadBalancer 服务。在内部,我希望它托管在三个私有子网而不是三个公共子网上。
我正在关注https://docs.aws.amazon.com/eks/latest/userguide/load-balancing.html 上的文档
apiVersion: v1
kind: Service
metadata:
annotations:
service.beta.kubernetes.io/aws-load-balancer-type: nlb
service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
service.beta.kubernetes.io/aws-load-balancer-internal: true
name: grafana-nlb
namespace: prometheus
spec:
ports:
- name: service
port: 80
protocol: TCP
targetPort: 3000
selector:
app.kubernetes.io/instance: prom
app.kubernetes.io/name: grafana
type: LoadBalancer
Run Code Online (Sandbox Code Playgroud)
如果我省略service.beta.kubernetes.io/aws-load-balancer-internal: true
注释,一切似乎都可以完美运行,并且完全符合我的预期。我得到一个仅托管在三个公共子网上的公共 NLB。我可以通过 AWS cli 看到这一点,带有aws elbv2 describe-load-balancers
, 带有"Scheme": "internet-facing"
, "Type": "network",
。
如果使用service.beta.kubernetes.io/aws-load-balancer-internal: true
注释创建它,我会得到一个经典的 ELB 而不是 NLB,而且它仍然是公开的。它"Scheme": …
我使用 HAProxy 作为负载平衡器,并且我有一个 lua 脚本,它将后端名称返回到 haproxy.cfg。想为我的应用程序实施速率限制。
我知道我们可以在 haproxy.cfg 中使用粘性表(如下)来实现速率限制。
Stick-table type ip size 1m expire 60s store http_req_cnt
acl 超出限制 hdr_ip(x-forwarded-for,-1),table_http_req_cnt(incoming) ge 10
http-request tarpit 如果超出限制
http-request track-sc0 hdr_ip(x-forwarded-for,-1)
想使用 lua 实现相同的功能。是否可以使用 lua 访问该粘性表。
提前致谢。
内部和外部负载均衡器有什么区别?
假设我在VPC内部创建了一个内部负载均衡器.是否可以访问VPC外部的内部负载平衡器?
考虑我有两个帐户A和B.我在帐户A中创建了一个内部负载均衡器.是否可以将内部负载均衡器连接到帐户B中的Route 53?
amazon-eks ×2
amazon-ec2 ×1
amazon-elb ×1
azure ×1
haproxy ×1
java ×1
lua ×1
nginx ×1
nlb ×1
servlets ×1