如何更改 Amazon ECS 中的容器实例类型?
上次更新时间:2019 年 7 月 23 日
如何更改我的 Amazon Elastic Container Service (Amazon ECS) 集群中的容器实例类型?
简短描述
要更改您的容器实例类型,请完成以下任意一个部分中的步骤:
- 通过 AWS CloudFormation 堆栈更新 ECS 集群中启动的容器实例
- 更新 ECS 集群中手动启动的容器实例
解决方法
通过 AWS CloudFormation 堆栈更新 ECS 集群中启动的容器实例
重要提示:以下步骤仅适用于使用内部创建了底层 AWS CloudFormation 堆栈的资源创建的 ECS 集群。堆栈名称具有以下格式: EC2ContainerService-yourClusterName。这些步骤不适用于空 ECS 集群或自定义的容器实例预置方法。
更新 AWS CloudFormation 堆栈的 EcsInstanceType 参数值:
- 打开 AWS CloudFormation 控制台。
- 选择包含您的 ECS 集群的堆栈。
注意:集群名称附加在堆栈名称之后(例如 EC2ContainerService-yourClusterName)。 - 依次选择操作和更新堆栈。
- 依次选择使用当前模板和下一步。
- 对于 EcsInstanceType,根据您的容器实例的实例类型设置一个适当的值,然后选择下一步。
- 跳过选项 部分,选择下一步,然后选择更新。
替换集群中的旧容器实例:
- 要更新 AWS CloudFormation 堆栈,请完成上一部分中的第 1-4 步。
- 对于 AsgMaxSize,请输入一个等于当前大小两倍的参数值。
注意:例如,如果当前值为 2,则新值设置为 4。这有助于防止在更改实例类型时发生停机。 - 打开 Amazon ECS 控制台。
- 在导航窗格中,选择集群,然后选择您的集群。
- 选择 ECS 实例选项卡,然后选择您希望替换的旧容器实例的容器实例 ID。
注意:如果 DeploymentConfiguration 允许将替换任务放入容器实例中,则 Amazon ECS 将自动放置替换任务。 - 选择操作 菜单,然后选择耗尽实例以耗尽实例。
- 在 ECS 实例选项卡上,验证旧容器实例的正在运行的任务计数为 0。
- 在导航窗格中,选择集群,然后选择您的集群。
- 选择 ECS 实例选项卡,然后选择旧容器实例的容器实例 ID,再选择取消注册。
注意 :取消注册实例会将其从 Amazon ECS 中移除。 - 在您的 AWS CloudFormation 模板中,将 AsgMaxSize 的值设置为原始值以终止旧容器实例。
重要提示:此步骤假定您的 Auto Scaling 组具有默认终止策略。
更新 ECS 集群中手动启动的容器实例
- 复制 Auto Scaling 组的启动配置,然后为新启动配置命名。
- 更改实例类型。
- 在 Amazon EC2 控制台导航窗格的 Auto Scaling 部分,选择 Auto Scaling 组。然后选择您的容器实例的 Auto Scaling 组。
- 选择操作,然后选择编辑。
- 在弹出窗口中,对于启动配置,选择您在这一部分的第 1 步中创建的启动配置。
- 对于理想容量,输入一个等于当前值两倍的值,然后根据需要更新最大值。
注意:理想容量必须介于最小组大小和最大组大小(含)之间。 - 在 Amazon ECS 控制台的导航窗格中,选择集群,然后选择您的集群。
- 选择 ECS 实例选项卡,然后选择您希望替换的旧容器实例的容器实例 ID。
- 选择操作 菜单,然后选择耗尽实例以耗尽实例。
- 在 ECS 实例选项卡上,验证旧容器实例的正在运行的任务计数为 0。
- 选择 ECS 实例选项卡,然后选择旧容器实例的容器实例 ID,再选择取消注册。
注意 :取消注册实例会将其从 Amazon ECS 中移除。 - 在 Amazon EC2 控制台导航窗格的 Auto Scaling 部分,选择 Auto Scaling 组。
- 选择操作,然后选择编辑。
- 在您的 Auto Scaling 组配置中,将理想容量和最大值设置为原始值,然后保存您的更改。
注意:这将终止 ECS 集群中的旧容器实例。