如何更改 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 参数值:

  1. 打开 AWS CloudFormation 控制台
  2. 选择包含您的 ECS 集群的堆栈。
    注意:集群名称附加在堆栈名称之后(例如 EC2ContainerService-yourClusterName)。
  3. 依次选择操作更新堆栈
  4. 依次选择使用当前模板下一步
  5. 对于 EcsInstanceType,根据您的容器实例的实例类型设置一个适当的值,然后选择下一步
  6. 跳过选项 部分,选择下一步,然后选择更新

替换集群中的旧容器实例:

  1. 要更新 AWS CloudFormation 堆栈,请完成上一部分中的第 1-4 步。
  2. 对于 AsgMaxSize,请输入一个等于当前大小两倍的参数值。
    注意:例如,如果当前值为 2,则新值设置为 4。这有助于防止在更改实例类型时发生停机。
  3. 打开 Amazon ECS 控制台
  4. 在导航窗格中,选择集群,然后选择您的集群。
  5. 选择 ECS 实例选项卡,然后选择您希望替换的旧容器实例的容器实例 ID。
    注意:如果 DeploymentConfiguration 允许将替换任务放入容器实例中,则 Amazon ECS 将自动放置替换任务。
  6. 选择操作 菜单,然后选择耗尽实例耗尽实例
  7. ECS 实例选项卡上,验证旧容器实例的正在运行的任务计数0
  8. 在导航窗格中,选择集群,然后选择您的集群。
  9. 选择 ECS 实例选项卡,然后选择旧容器实例的容器实例 ID,再选择取消注册
    注意 :取消注册实例会将其从 Amazon ECS 中移除。
  10. 在您的 AWS CloudFormation 模板中,将 AsgMaxSize 的值设置为原始值以终止旧容器实例。
    重要提示:此步骤假定您的 Auto Scaling 组具有默认终止策略

更新 ECS 集群中手动启动的容器实例

  1. 复制 Auto Scaling 组的启动配置,然后为新启动配置命名。
  2. 更改实例类型
  3. Amazon EC2 控制台导航窗格的 Auto Scaling 部分,选择 Auto Scaling 组。然后选择您的容器实例的 Auto Scaling 组。
  4. 选择操作,然后选择编辑
  5. 在弹出窗口中,对于启动配置,选择您在这一部分的第 1 步中创建的启动配置。
  6. 对于理想容量,输入一个等于当前值两倍的值,然后根据需要更新最大值
    注意:理想容量必须介于最小组大小和最大组大小(含)之间。
  7. Amazon ECS 控制台的导航窗格中,选择集群,然后选择您的集群。
  8. 选择 ECS 实例选项卡,然后选择您希望替换的旧容器实例的容器实例 ID。
  9. 选择操作 菜单,然后选择耗尽实例耗尽实例
  10. ECS 实例选项卡上,验证旧容器实例的正在运行的任务计数0
  11. 选择 ECS 实例选项卡,然后选择旧容器实例的容器实例 ID,再选择取消注册
    注意 :取消注册实例会将其从 Amazon ECS 中移除。
  12. Amazon EC2 控制台导航窗格的 Auto Scaling 部分,选择 Auto Scaling 组
  13. 选择操作,然后选择编辑
  14. 在您的 Auto Scaling 组配置中,将理想容量最大值设置为原始值,然后保存您的更改。
    注意:这将终止 ECS 集群中的旧容器实例。 

这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?