本文介绍: 通过upstream实体可用高级负载均衡算法。使用这些负载均衡器时,后端服务的添加和删除将由Kong处理,不需要进行DNS更新。Kong将充当服务注册表的角色。通过上游和目标实体进行负载均衡器的配置。

通过upstream实体可用高级负载均衡算法。

使用这些负载均衡器时,后端服务的添加和删除将由Kong处理,不需要进行DNS更新。Kong将充当服务注册表的角色。

通过上游和目标实体进行负载均衡器的配置。

  • upstream:一个“虚拟主机名”,可以在服务主机字段中使用,例如,一个名为weather.v2.service的upstream将接收来自host=weather.v2.service的所有请求。upstream包含确定负载均衡行为(以及健康检查和熔断器配置)的属性。
  • target:一个IP地址或带有端口号的主机名,用于指示后端服务所在的位置,例如“192.168.100.12:80”。每个target都有一个额外的权重,用于表示相对负载。IP地址可以是IPv4和IPv6格式。
 Upstream

每个upstream可以有许多与之关联的target条目,对“虚拟主机名”进行代理的请求将在target之间进行负载均衡。

通过对Admin API进行简单的HTTP请求,可以添加和删除target。此操作相对廉价。但如果更改upstream本身(例如,插槽数量发生变化),则成本会更高,因为需要重新构建负载均衡器。

 Target

一个Target(目标) 是一个具有端口的IP地址/主机名,用于标识后端服务的实例。每个upstream 可以有多个target 。

 当有10倍于活动条目数量的非活动条目时,target 将被自动清理。清理将涉及重建负载均衡器,因此比仅添加目标条目更耗费资源。

Target还可以使用主机名而不是IP地址。在这种情况下,将解析该名称,并将找到的所有条目分别添加到环形负载均衡器中。例如,添加具有权重为100的api.host.com:123。名称“api.host.com”解析为具有2个IP地址的A记录。然后,这两个IP地址将被添加为target ,每个target 的权重都为100,端口为123。注意:权重是用于单个条目而不是整体!

如果解析到SRV记录,那么DNS记录中的端口和权重字段将被使用,将覆盖提供的端口123和权重100。

注意:与基于DNS的负载均衡类似,只有SRV记录中最高优先级的条目(最低值)将被使用。

负载均衡器将遵循DNS记录的TTL设置,在过期后会查询域名服务器并更新负载均衡器。

例外情况:当DNS记录的TTL为0时,主机名将被添加为单个目标,具有指定的权重。对于每个代理请求到该目标,它将再次查询域名服务器。

抗击负载均衡器 

如在目标段落中描述的那样,目标可以指定为主机名。在像k8s或docker-compose这样的编排环境中,IP地址和端口大多是临时的,必须使用SRV记录来找到适当的后端,并保持更新。

在DNS级别上,许多基础设施工具也可以提供类似负载均衡的功能。这些工具大多是服务发现工具,它们具有自己的健康检查并对DNS记录进行随机化或仅返回一小部分可用的对等节点。

Kong负载均衡器和基于DNS的工具经常相互竞争。域名服务器将尽可能少地提供信息,以迫使客户端遵循其方案,而Kong则尽力确保所有后端正确设置其负载均衡器和健康检查。

在您的环境中,请确保:

  • 当域名服务器无法将所有记录放入UDP响应中时,设置截断标志。这将强制Kong使用TCP进行重试。
  • 允许在域名服务器上进行TCP查询。

 

原文地址:https://blog.csdn.net/hay23455/article/details/135826939

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。

如若转载,请注明出处:http://www.7code.cn/show_61503.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注