与相同的IP的ASGreplace

概要

当一个节点发生故障或者被移除时,ASG如何configuration为使用与正在replace的IP相同的私有IP重新生成该节点?

我注意到有支持分配一个pipe理员select的地址,但我不知道如何将这个应用到ASG的。

上下文

我们有一个服务, 领事 ,我们正在试图使ASG的理想更强大,因为它可以自动重新生成一个终止的实例(失败或其他)。 问题在于Consul由一组主节点组成,你不能仅仅用不同的节点来replace它们,而不能明确地把新节点join到集群中,并且清理现在不存在的节点。

所以看起来更简单一点就是让一个失败的节点replace成一个新版本的旧版本。 这主要意味着它具有与之前相同的专用接口IP。 这怎么能做到呢?

更一般地说,人们如何pipe理对参与节点有一定认识的集群服务?

您可以使用弹性IP(EIP) 。

  1. 首先分配一个您希望始终连接到您的ASG中的实例的EIP,然后使用AWS CLI或通过AWS控制台(EC2> Elastic IP)完成此操作。
  2. 完成后,您应该向AMI添加一个脚本,将新实例与分配的EIP相关联。 使用AWS CLI工具中提供的aws ec2 associate-address命令。 这个脚本应该在启动时或应用程序准备就绪时运行。

通过这样做,新实例将被分配与旧实例相同的公共IP。

那不是现在ASG应该被使用的。

相反,请在您的ASG节点之前放置一个负载均衡器(ELB或您自己创build的一个),然后根据需要从负载均衡器添加/删除后端节点。

如果您需要了解参与ASG的节点,则可以使用API​​来枚举ASG实例。