如果从 AWS 管理控制台启动 ECS 集群,如何增加 Amazon ECS 容器实例的可用磁盘空间?

上次更新时间:2019 年 9 月 5 日

如果从 AWS 管理控制台启动 ECS 集群,如何增加 Amazon Elastic Container Service (Amazon ECS) 容器实例的总磁盘空间?

简短描述

要增加容器实例的存储空间,您必须首先启动替换实例,然后终止原实例。

要使用这种方法增加存储空间,请按解决方法部分描述的步骤操作。如果您使用其他方法启动容器实例,则跳过本文并按照以下文章中介绍的步骤操作:

注意:Amazon Elastic Block Store (Amazon EBS) 卷的配置存在差异,具体取决于您使用的 Amazon ECS 优化的 Amazon 系统映像 (AMI)。有关如何检查实例上可用空间的更多信息和命令,请参阅 AMI 存储配置

重要提示:以下步骤将会终止 Amazon ECS 集群中的原容器实例。在完成这些步骤时,EBS 卷上为这些实例存储的任何数据都将丢失。

解决方法

更新存储大小并启动替换实例

  1. 打开 Amazon ECS 控制台,然后找出您要启动新容器实例的 ECS 集群的名称。
  2. 确定在您的 Auto Scaling 组中运行的实例。
  3. 打开 AWS CloudFormation 控制台,然后选择您的 ECS 集群的堆栈。
    注意:堆栈名称为以下格式: EC2ContainerService-yourEcsClusterName
  4. 依次选择操作更新堆栈
  5. 选择模板部分,选择使用当前模板,然后选择下一步
  6. EBsVolumeSize 参数设置为新实例需要的大小(以 GB 为单位)。
  7. 设置 AsgMaxSize 参数以增加 Auto Scaling 组的大小,然后启动新的替换实例。
    注意:对于 Amazon ECS 优化的 Amazon Linux 1 AMI,操作系统请使用 /dev/xvda,含逻辑卷管理 (LVM) 设备的 Docker 镜像和元数据请使用 /dev/xvdcz。对于 Amazon ECS 优化的 Amazon Linux 2 AMI,操作系统以及 Docker 镜像和元数据均使用 /dev/xvda
  8. DeviceName 设置为您的 Amazon Linux 版本。
  9. 依次完成设置向导的剩余步骤,在每个页面选择下一步,然后选择更新以启动您的新替换实例。

现在,Auto Scaling 组的启动配置已更新为新的存储配置,您的新容器实例已经启动。

终止原实例

重要提示:为确保您的服务始终可用,您必须耗尽容器实例以重新计划任务,然后分批终止原实例。 您也可以在实例终止时自动化执行此耗尽工作流

  1. 打开 Amazon ECS 控制台,确定在 Auto Scaling 组中运行的第一批实例,然后对这批实例执行耗尽实例操作。
    注意:您可以分批耗尽实例,以免 Amazon ECS 服务停机。耗尽容器实例的服务任务时,将根据服务的部署配置参数 minimumHealthyPercentmaximumPercent 的配置,停止并替换处于“正在运行”状态的容器实例。任何处于“待处理”和“正在运行”状态但不属于该服务的任务不受影响。您必须等待这些任务完成,或手动停止它们。
  2. 容器实例上的所有任务停止之后,终止容器实例
    注意:几分钟后,相关 Auto Scaling 组将启动一个增加了存储空间的替换实例,从而替换被终止的实例。
  3. 重复第 1 步和第 2 步,直到您用新容器实例替换了所有原实例为止。

现在,您的任务应已在具有更多可用存储空间的新实例上运行。


这篇文章对您有帮助吗?

我们可以改进什么?


需要更多帮助吗?