我配置了一个包含 3 个实例 (m5.large) 的 AWS ECS 集群,每个可用区(A、B 和 C)各有一个实例。该服务配置如下:
在任务定义中,我使用了以下内容:
在容器级别,我仅配置了内存软限制:
我使用 awslogs 进行日志记录。上述配置有效,当我启动服务时,每个实例中都会运行一个 docker。其中一个实例中的“docker stats”显示以下内容:
MEM USAGE / LIMIT
230MiB / 7.501GiB
Run Code Online (Sandbox Code Playgroud)
容器实例(ECS控制台)显示如下:
Resources Registered Available
CPU 2048 2048
Memory 7680 5632
Ports 5 ports
Run Code Online (Sandbox Code Playgroud)
上述结果在所有 3 个实例中都是相同的 - 已预留 2 GB 内存(软限制),内存上限为近 8 GB 的实例内存(未设置硬限制)。到目前为止,一切都按预期进行。
但是当我从 Jenkins 重新部署代码(使用强制部署)时,我在 Jenkins 日志中收到以下错误:
"message": "(service App-V1-Service) was unable to place a task because no container instance met …Run Code Online (Sandbox Code Playgroud)