在后端部署期间暂时禁用 ELB 健康检查

在后端部署期间暂时禁用 ELB 健康检查

我们使用 ELB 进行 SSL 终止,只有一个后端。

在部署过程中,后端需要重新启动,通常需要几分钟才能启动。

我的问题:

  • 因为我只有一个后端,所以我无法将其从 ELB 中删除,我只想关闭 ELB 运行状况检查,以便服务器重新启动时流量仍然立即转到后端,可以吗?

答案1

您应该缩短或者大幅延长检查时间。

您可以将健康检查设置为每 5 分钟一次,将不健康阈值设置为 10。这样,在实例被视为不可用之前,您将有 50 分钟的时间。

您还可以将其设置为最小值 0.1 分钟,将阈值设置为 2,这样一旦健康检查 URL 恢复运行,您的服务器将在短短 12 秒内恢复运行。这并不能阻止 ELB 将实例标记为不健康,但它确实允许它尽快恢复运行。

我会选择第二种选择,这样用户就会得到 503,而不是只是坐在那里想为什么网站加载时间这么长。

答案2

还有一种快捷的方法,就是把健康检查的ping端口改成其他的,比如原来是443,改成任意一个没有监听的端口1234,这样就outofservice很快了。

完成更改后,确认后记得将其改回来。

答案3

解决此问题的合法方法是使用 API 更改 ELB 健康检查超时。您无法禁用或暂停它,但可以更改路径或超时和间隔。

如果您使用 Ansible,则可以在部署之前和之后使用任务。

以下是针对 ELB 和 ALB 执行此操作的模块(通过目标组):

https://docs.ansible.com/ansible/latest/modules/ec2_elb_lb_module.html https://docs.ansible.com/ansible/latest/modules/elb_target_group_module.html

这个答案需要例子,如果我们走这条路,我会用我们的例子进行更新。

相关内容