使用基于 AL2023 的 Amazon ECS AMI 托管容器化工作负载
注意
有关如何在容器内使用 AL2023 的更多信息,请参阅 容器中的 AL2023。
Amazon Elastic Container Service (Amazon ECS) 是一种完全托管式的容器编排服务,可以帮助您轻松部署、管理和扩展容器化应用程序。作为一种完全托管式服务,Amazon ECS 内置有 Amazon 配置和操作最佳实践。它与 Amazon 和第三方工具如 Amazon Elastic Container Registry (Amazon ECR) 和 Docker 集成。这种集成使团队更容易专注于构建应用程序而不是环境。您可以在云端跨 Amazon 区域运行和扩展容器工作负载,省去了管理控制面板的繁琐。
您可以使用基于 AL2023 的 Amazon ECS 优化 AMI 在 AL2023 上托管容器化工作负载。更多信息,请参阅 Amazon ECS-optimized AMI
与 AL2 相比,Amazon ECS 在 AL2023 中的变更
与 AL2 一样,AL2023 提供了作为 Amazon ECS Linux 实例运行所需的基础程序包。在 AL2 中,containerd、docker 和 ecs-init 程序包通过 amazon-linux-extras 提供,而 AL2023 将这些程序包包含在核心存储库中。
借助通过版本控制的存储库的确定性升级功能,默认情况下,每个 AL2023 AMI 都锁定到特定的存储库版本。AL2023 Amazon ECS 优化 AMI 也是如此。对环境的所有更新都可以在部署前进行仔细的管理和测试,并在出现问题时提供一种简单的方法来回退到先前 AMI 的内容。有关此 AL2023 功能的更多信息,请参阅在 AL2023 上通过版本化存储库实现确定性升级。
AL2023 切换到了 cgroup v2,取代了 AL2 支持的 cgroup v1 接口。有关更多信息,请参阅 统一控制组层次结构 (cgroup v2)。
注意
2023.2.20230920(首个 AL2023.2 发布版)之前的 AL2023 版本在 systemd 中存在一个错误,不能正确处理 cgroup 中的内存不足(OOM)问题。cgroup 中的所有进程总是被全部终止,而非按预期行为由 OOM-Killer 逐个选择进程终止。
与 AL2 的行为相比,这是一个功能回归,并已在 2023.2.20230920 版本的 AL2023 中修复。
构建 Amazon ECS 优化 AMI 的代码可在 amazon-ecs-ami GitHub 项目
自定义基于 AL2023 的 Amazon ECS 优化的 AMI
重要
我们建议您使用 Amazon ECS 优化的 AL2023 AMI。更多信息,请参阅《Amazon Elastic Container Service 开发人员指南》中的 Amazon ECS 优化 AMI。
您可以使用 Amazon ECS 创建自定义 AMI 所用的同样的构建脚本。更多信息,请参阅 Amazon ECS 优化 Linux AMI 构建脚本。