我们有几个应用服务器和 2 个负载平衡器 (HAProxy)。云是用 SaltStack 实现的。当需要禁用某个应用服务器时,我们登录 salt master 并运行:
for i in {1..20}; do salt '*.lb-app' haproxy.disable_server 1.app app; done
由于 haproxy 正在运行nbproc 4
,因此只有一个调用不会切换流量。因此,通过调用 20 次,所有 4 个进程都禁用给定服务器的可能性很大。
我想知道是否有更优雅的解决方案。