Azure 上的在线 Saltstack Minions 与 DigitalOcean 上的 Master 失去连接

Online Saltstack Minions on Azure losses connection with Master on DigitalOcean

我有一个 salt 2016.11.3 (Carbon) playground,其中有一个 DigitalOcean 的 master 和 Azure 的 4 个 minions(三个 ubuntu 和 1 个 windows)。

一段时间后 ubuntu minions 没有响应 salt -t 30 '*' test.ping 但他们在线(我可以通过 ssh 进入他们)

重新启动 master systemctl restart salt-master 或 minions systemctl restart salt-minion 似乎可以让 minions 恢复一段时间。

已检查的内容:

同样在重新启动后,我从重新添加的节点得到了双重响应,但我认为这是一个缓存问题,因为它会在一段时间后消失(缓存失效)。

好像是通讯错误。有一个较旧的 2013 bug report on saltstack github repo and someone states in comments that AWS and Azure load balancers don't respect TCP keepalives

建议的解决方案:

  1. add a cron to ping minions 每分钟
  2. change some keepalive settings 在 Azure minions 配置文件中

到目前为止,解决方案 #2 对我有效。

tcp_keepalive: True
tcp_keepalive_idle: 60