我正在尝试通过Ansible在ALB后面的AWS EC2 2节点集群上设置滚动部署。对于序列中的每个节点来说,这个粗略的过程是这样的-
+----------+ +----------+ +----------+
|Remove app| |Redeploy | |Add back |
|from load |-->|new app |-->|to load |
|balancer | | | |balancer |
+----------+ +----------+ +----------+我使用来选择我的节点,它们在默认情况下是按IP地址排序的。现在,在部署之前考虑以下4种情况-
现在,在场景#3下,我将删除唯一健康的节点。我怎么才能避免这种情况?
发布于 2020-03-12 10:39:18
在剧本中添加一个步骤,如果剩余的健康节点数少于一个,则执行不允许从负载平衡器移除节点的正常检查。
或
首先解决如何优先从负载均衡器中删除不健康的节点。您能否根据节点的健康检查状态将其分成几组,然后先处理不健康的节点?或者交替地更改排序顺序,使其根据健康检查状态而不是ip地址?
作为一种替代方法--在删除旧节点之前不能添加新节点吗?
发布于 2020-03-13 13:38:13
好的,既然您有一个healthy标志,那么使用它来嵌入一个update角色:
- hosts: all
gather_facts: yes
tasks:
- include_role:
role: update
when: not healthy
- include_role:
role: update
when: healthy这样,不健康的就先做。
https://stackoverflow.com/questions/60651946
复制相似问题