经 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.10:
-
aws-ecs-1
-
aws-ecs-1-nvidia
有关
aws-ecs-1-nvidia
变体的更多信息,请参阅宣布对 Amazon ECS 上的 Bottlerocket 提供 NVIDIA GPU 支持。
注意事项
将 Bottlerocket AMI 与 Amazon ECS 结合使用时,请考虑以下因素。
-
Bottlerocket 支持采用
x86_64
和arm64
处理器的 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 处于加密模式
-
Amazon EFS 处于
awsvpc
网络模式 -
Elastic Inference 加速器
-