如果从 AWS 管理控制台启动 ECS 集群,如何增加 Amazon Elastic Container Service (Amazon ECS) 容器实例的总磁盘空间?
简短描述
要增加容器实例的存储空间,您必须首先启动替换实例,然后终止原实例。
要使用这种方法增加存储空间,请按解决方法部分描述的步骤操作。如果您使用其他方法启动容器实例,则跳过本文并按照以下文章中介绍的步骤操作:
**注意:**Amazon Elastic Block Store (Amazon EBS) 卷的配置存在差异,具体取决于您使用的 Amazon ECS 优化的 Amazon 机器映像 (AMI)。有关如何检查实例上可用空间的更多信息和命令,请参阅 AMI 存储配置。
**重要提示:**以下步骤将会终止 Amazon ECS 集群中的原容器实例。在完成这些步骤时,EBS 卷上为这些实例存储的任何数据都将丢失。
解决方法
更新存储大小并启动替换实例
- 打开 Amazon ECS 控制台,然后找出您要启动新容器实例的 ECS 集群的名称。
- 确定在您的 Auto Scaling 组中运行的实例。
- 打开 AWS CloudFormation 控制台,然后选择您的 ECS 集群的堆栈。
**注意:**堆栈名称为以下格式: EC2ContainerService-yourEcsClusterName。
- 依次选择操作和更新堆栈。
- 在选择模板部分,选择使用当前模板,然后选择下一步。
- 将 EBsVolumeSize 参数设置为新实例需要的大小(以 GB 为单位)。
- 设置 AsgMaxSize 参数以增加 Auto Scaling 组的大小,然后启动新的替换实例。
**注意:**对于 Amazon ECS 优化的 Amazon Linux 1 AMI,操作系统请使用 /dev/xvda,含逻辑卷管理 (LVM) 设备的 Docker 镜像和元数据请使用 /dev/xvdcz。对于 Amazon ECS 优化的 Amazon Linux 2 AMI,操作系统以及 Docker 镜像和元数据均使用 /dev/xvda。
- 将 DeviceName 设置为您的 Amazon Linux 版本。
- 依次完成设置向导的剩余步骤,在每个页面选择下一步,然后选择更新以启动您的新替换实例。
现在,您的 Auto Scaling 组的启动配置已更新为新的存储配置。这种增加的配置也适用于 Auto Scaling 组启动的任何新实例。
终止原实例
**重要提示:**为确保您的服务始终可用,您必须耗尽容器实例以重新计划任务,然后分批终止原实例。您也可以在实例终止时自动化执行此耗尽工作流。
- 打开 Amazon ECS 控制台,确定在 Auto Scaling 组中运行的第一批实例,然后对这批实例执行耗尽实例操作。
**注意:**您可以分批耗尽实例,以免 Amazon ECS 服务停机。耗尽容器实例的服务任务时,将根据服务的部署配置参数 minimumHealthyPercent 和 maximumPercent 的配置,停止并替换处于“正在运行”状态的容器实例。任何处于“待处理”和“正在运行”状态但不属于该服务的任务不受影响。您必须等待这些任务完成,或手动停止它们。
- 容器实例上的所有任务停止之后,终止容器实例。
**注意:**几分钟后,相关 Auto Scaling 组将启动一个增加了存储空间的替换实例,从而替换被终止的实例。
- 重复第 1 步和第 2 步,直到您用新容器实例替换了所有原实例为止。
现在,您的任务应已在具有更多可用存储空间的新实例上运行。
相关信息
AMI 存储配置
在任务中使用数据卷