在不缩小 ASG 的情况下终止 EC2 实例
问题摘要:
通过 AWS 控制台或 API 终止 EC2 实例通常有 2 个选项。 1. 立即终止 EC2,适用于原生 EC2 和 ASG EC2 实例。 此操作不会触发任何终止生命周期钩子。 2. 在 ASG 中终止 EC2,仅适用于 ASG EC2 实例,并会触发任何配置的终止生命周期钩子。 两种选项都有其用途。 本问题涉及第二种情况,即在 ASG 中终止 EC2 实例。 目前,用户界面中包含以下两个选项: 1. Terminate instance 选项使用原生 EC2 终止 - 不遵守生命周期钩子。 https://GitHub.com/spinnaker/clouddriver/blob/c9c9608b58d9c48ccd6545c9acdb632ebaa67c1f/clouddriver-AWS/src/main/groovy/com/netflix/spinnaker/clouddriver/AWS/deploy/ops/TerminateInstancesAtomicOperation.groovy#L18 2. Terminate and shrink ASG 选项使用 ASG 终止并遵守生命周期钩子。 https://GitHub.com/spinnaker/clouddriver/blob/c9c9608b58d9c48ccd6545c9acdb632ebaa67c1f/clouddriver-AWS/src/main/groovy/com/netflix/spinnaker/clouddriver/AWS/deploy/ops/TerminateInstanceAndDecrementAsgAtomicOperation.groovy#L22 选项 1 在实例可以被销毁而不会影响客户时很有用。 选项 2 更安全,因为它会触发任何生命周期钩子并清理客户会话。 然而,我们并不总是希望缩小 ASG。 很高兴能够在用户界面中选择是否要使用 withShouldDecrementDesiredCapacity(Boolean shouldDecrementDesiredCapacity),或者不使用 Javadoc - TerminateInstanceInAutoScalingGroupRequest。 也许可以添加一个新选项 在自动调整群组中终止: 1. 终止 << 未变 2. 在服务器组中终止 << 新选项 3. 终止并缩小服务器组 << 未变 我们是否愿意接受一个 PR? 我是否需要通过 Clouddriver <- 门 - Deck?
内容来源: spinnaker/spinnaker