经 Amazon ECS 优化的 Bottlerocket AMI - Amazon Elastic Container Service

经 Amazon ECS 优化的 Bottlerocket AMI

Bottlerocket 是一个基于 Linux 的开源操作系统,由 AWS 专门为在虚拟机或裸机主机上运行容器而打造。经 Amazon ECS Bottlerocket 优化的 AMI 安全,只包含运行容器所需的最少软件包数量。此项可以提高资源使用率,减少安全攻击面,并有助于降低管理开销。Bottlerocket AMI 还与 Amazon ECS 集成,以帮助减少更新集群中的容器实例所涉及的操作开销。

Bottlerocket 与 Amazon Linux 存在以下差异:

  • Bottlerocket 不包括包管理器,其软件只能作为容器运行。对 Bottlerocket 的更新既可以应用,也可以通过一个步骤进行回滚,这样可以降低出现更新错误的可能性。

  • 管理 Bottlerocket 主机的主要机制是使用容器调度器。与 Amazon Linux 不同,登录单个 Bottlerocket 实例的操作并不频繁,仅用于高级调试和故障排除目的。

有关 Bottlerocket 的更多信息,请参阅 GitHub 上的文档发布

适用于内核 6.1 和内核 5.10 的经 Amazon ECS 优化的 Bottlerocket AMI 有多个变体。

以下变体使用内核 6.1:

  • aws-ecs-2

  • aws-ecs-2-nvidia

以下变体使用内核 5.1.10:

注意事项

将 Bottlerocket AMI 与 Amazon ECS 结合使用时,请考虑以下因素。

  • Bottlerocket 支持采用 x86_64arm64 处理器的 Amazon EC2 实例。Bottlerocket 不建议将 Amazon EC2 实例与 Inferentia 芯片一起使用。

  • Bottlerocket 映像不附带 SSH 服务器或 Shell。但是,您可以使用带外管理工具获得 SSH 管理员访问权限并执行引导程序。有关更多信息,请参阅 GitHub 上的 bottlerocket README.md

  • 预设情况下,Bottlerocket 启用了一个控制容器。该容器运行 AWS Systems Manager 代理,您可以用它在 Amazon EC2 Bottlerocket 实例上运行命令或启动 shell 会话。有关更多信息,请参阅 AWS Systems Manager 用户指南中的设置会话管理器

  • Bottlerocket 针对容器工作负载进行了优化,并专注于安全性。Bottlerocket 不包含软件包管理器,并且不可变。有关安全功能和指南的信息,请参阅 GitHub 上的安全功能安全指南

  • Bottlerocket AMI 版本 1.1.0 或更高版本支持 awsvpc 网络模式。

  • Bottlerocket AMI 版本 1.15.0 或更高版本支持任务定义中的 App Mesh。

  • Bottlerocket AMI 版本 1.19.0 或更高版本支持 initProcessEnabled 任务定义参数。

  • Bottlerocket AMI 也不支持以下服务和功能:

    • ECS Anywhere

    • Service Connect

    • Amazon EFS 处于加密模式和 awsvpc 网络模式

    • Elastic Inference 加速器