Jelastic "internal" 负载均衡器如何检查节点健康状况?

How Jelastic "internal" load balancer check nodes health?

据我了解,Jelastic 使用某种部署在节点后面的负载均衡器。 因此,如果我有两个节点,其中一个节点出现故障,这个负载均衡器将如何运行? 我正在考虑没有流量分发器附加组件的蓝绿部署。

如果您有多个 Web 应用程序节点(例如 Apache 服务器),您还应该添加自己的负载均衡器节点(在这种情况下,您可以控制 Nginx 或 Apache 配置中的健康检查参数)。

还强烈建议将 public IP 用于生产用途。在 dev/test 期间仅使用 Jelastic 共享解析器/负载平衡器来代理对您环境的请求(它们是共享基础设施,因此可能成为您应用程序的瓶颈,并引入其他错误/不需要的行为 re.headers,协议、密码等)。

默认情况下,Jelastic Platform 的所有传入流量都通过 Shared Load Balancer. Herewith, this node performs constant servers’ health checkups, utilizing the NGINX upstream check module 在容器之间路由,为此设置如下:

interval=15000 rise=2 fall=3 timeout=2000 default_down=false;

以这种方式,所有容器从启动时就被认为是“启动”的,而系统每 15 秒验证一次它们的可用性。如果在 2 秒内没有收到容器的响应,则该检查失败。连续三次失败会将节点标记为“down”,而连续两次成功检查 - 标记为“up”。

对于单独环境中的流量分配,当应用服务器实例的数量设置为大于一个时(即横向扩展horizontally),会自动将专用负载均衡器节点添加到其拓扑中。 Jelastic PaaS 提供 4 个负载均衡器堆栈供您选择,每个堆栈都有一些健康检查配置细节:

NGINX - 在将用户请求路由到它之前运行简单的 tcp 检查(即验证所需的服务器端口可用性);如果检查失败,将尝试层内的下一个节点

HAProxy - 定期执行 tcp 检查(默认情况下每 2 秒一次),将结果存储在后端状态的 table 中并保持不断更新日期

Apache Balancer - 默认情况下未实施健康检查程序

Varnish - 所有后端都分配了 probe = { .url = "/"; .timeout = 30s; .interval = 60s; .window = 5; .threshold = 2; } 平衡器配置中的参数,以便每分钟执行一次健康检查,超时时间为 30 秒(有关详细信息,请参阅 official documentation

显然,可以根据您的需要手动调整默认健康检查设置(通过 Jelastic File Manager GUI or via SSH) according to the appropriate load balancer stack specification - refer to the official NGINX, HAProxy, Apache Balancer or Varnish 文档查看可能设置的详细信息。