当前位置: 首页 > 知识库问答 >
问题:

TCP负载均衡器连接在从后端服务到达负载均衡器时被拒绝

祁乐邦
2023-03-14

我们目前有一个google云设置,在TCP负载平衡器后面有一个后端服务(一个由3台vm机器组成的托管实例组)。在前端配置中,我们有一个静态外部ip地址,将流量重定向到端口6443,并在连接到负载平衡器的端口6443上进行tcp健康检查。在后端服务中的3个vm实例中,最初只有一台计算机在端口6443上运行服务。因此,负载平衡器在负载平衡器详细信息页面中正确检测到一个运行状况实例和两个不正常实例。为了在端口6443上不健康的vm实例上启动服务,我们需要通过负载平衡器ip和同一端口连接到健康的vm实例。如果我们使用负载平衡器ip和端口6443从负载平衡器外部(而不是从后端实例)连接到vm实例,我们可以看到到后端服务中的健康vm实例的连接正在成功进行。但是,当尝试从后端服务中的一个不健康的vm实例连接到负载平衡器时,我们可以看到连接被重新定向回同一实例,而不是正常的vm实例,从而导致连接被拒绝的错误。google cloud tcp负载平衡器中是否有设置允许负载平衡器ip和服务端口上的连接始终重定向到一个正常的实例,即使请求源来自负载平衡器后面?

共有3个答案

於英朗
2023-03-14

来自后端的任何LB流量都将被来宾操作系统回送。外部路由机制看不到此流量,并且无法更改此行为。这是因为LB IP是本地路由表的一部分,并且操作系统将始终回送该表中的目标。这与后端的健康状态无关。

解晟睿
2023-03-14

就一般网络而言,这是不可能的。

作为一个基本示例,假设您有3个内部专用IP地址,让我们为每个VM调用它们192.168.1.2、192.168.1.3和192.168.1.4。

这些都是使用192.168.1.5的共享虚拟IP地址进行负载平衡的。

现在,您的路由器位于192.168.1.1,其公共IP为10.10.10.1,并且已配置为将给定端口(例如HTTP流量的外部端口80)的传入外部流量定向到某个专用端口上的负载平衡IP,例如您的用例中的6443。

假设192.168.1.2,192.168.1.3不健康,192.168.1.4健康。

192.168.1.2向10.10.10.1:80发送请求

您的路由器现在将在192.168.1.1上接收该流量,并将数据包发送到10.10.10.1:80。

现在,数据包在10.10.10.1:80到达路由器接口,然后路由器根据NAT/端口转发规则将数据包路由到192.168.1.5:6443。

数据包通过电线192.168.1.5:6443,由于唯一健康的主机192.168.1.4,数据包由该主机处理。

庞元青
2023-03-14

据我所知,您已经配置了一个以MIG作为后端的TCP负载均衡器。

在TCP负载平衡器中,它将原始连接直接从客户端路由到正常的后端,没有任何中断,来自后端VM的响应直接发送到客户端,而不是通过负载平衡器返回。

如果客户端VM是负载平衡器的后端VM,并且发送到负载平衡器的IP地址转发规则的连接总是由后端VM本身应答,则无论后端VM是否正常,都会发生这种情况。对于发送到负载平衡器IP地址的所有流量,而不仅仅是负载平衡器转发规则中指定的协议和端口上的流量,都会发生这种情况。

为了排除故障,我建议您在项目中的不同VPC网络中添加另一个测试VM,并尝试从测试VM连接到负载平衡器外部IP地址。

 类似资料:
  • 负载均衡(Load balancing)是一种计算机网络技术,用来在多个计算机(计算机集群)、网络连接、CPU、磁盘驱动器或其他资源中分配负载,以达到最佳化资源使用、最大化吞吐率、最小化响应时间、同时避免过载的目的。 使用带有负载均衡的多个服务器组件,取代单一的组件,可以通过冗余提高可靠性。负载均衡服务通常是由专用软体和硬件来完成。 负载均衡最重要的一个应用是利用多台服务器提供单一服务,这种方案有

  • 负载均衡包括负载均衡实例、访问控制及证书。 实例 负载均衡实例是一个运行的负载均衡服务,通过设置的虚拟IP接收流量并将其转发分配给后端服务器。 访问控制 访问控制用于设置访问负载均衡的IP白名单或IP黑名单。 证书 当在负载均衡实例上配置HTTPS监听转发来自HTTPS协议的请求时,需要配置证书。

  • 一个简单的负载均衡的示例,把www.domain.com均衡到本机不同的端口,也可以改为均衡到不同的地址上。> http { : upstream myproject { : server 127.0.0.1:8000 weight=3; : server 127.0.0.1:8001; : server 127.0.0.1:8002; : server 127.0.0.1:8003; : }

  • SOFARPC 提供多种负载均衡算法,目前支持以下五种: 类型 名称 描述 random 随机算法 默认负载均衡算法。 localPref 本地优先算法 优先发现是否本机发布了该服务,如果没有再采用随机算法。 roundRobin 轮询算法 方法级别的轮询,各个方法间各自轮询,互不影响。 consistentHash 一致性hash算法 同样的方法级别的请求会路由到同样的节点。 weightRou

  • 用于设置容器内pod的访问方式。 服务 服务定义了访问后端Pod的访问方式。 路由 路由是允许访问集群内路由的规则集合。

  • 我有一个Wordpress网站在AWS EC2实例上运行。这是通过AWS弹性负载平衡器提供的,它使用我从Amazon获得的证书启用了HTTPS。 其目的是为该网站提供http和https版本。加载http版本可以正常工作。 然而,当我加载https版本时,会出现混合内容错误,因为总是返回http链接。负载平衡器的工作方式是TLS终止于LB,并通过端口80与实际EC2实例通信。因此,实例本身上没有H