亚马逊AWS官方博客

Bottlerocket – 容器主机的开源操作系统

可以肯定地说,我们的行业现在已经决定将容器作为打包和扩展应用程序的首选方式。我们的客户充分利用了 Amazon ECSAmazon Elastic Kubernetes Service,目前有超过 80% 的全基于云的容器在 AWS 上运行。

基于容器的环境易于扩展,客户可以运行包含成百上千个实例的主机环境。在这种规模下,主机操作系统会面临一些挑战。例如:

安全性 – 仅仅为了满足依赖性而安装额外的软件包可能会扩大攻击面。

更新 – 传统的基于软件包的更新系统和机制非常复杂且容易出错,并且依赖项可能会出现问题。

开销 – 多余的、不必要的软件包会占用磁盘空间和计算周期,还会增加启动时间。

漂移 – 软件包和配置不一致会随着时间的推移破坏集群的完整性。

Bottlerocket 简介

今天,我想为大家介绍 Bottlerocket,这是一款基于 Linux 的全新开源操作系统,我们专门针对容器主机用途对其进行了设计和优化。

Bottlerocket 是我们多年实践经验的结晶。它仅包括出色容器主机必备的软件包,并与现有的容器协调程序集成。它支持 Docker 映像和符合 Open Container Initiative (OCI) 映像格式的映像。

Bottlerocket 没有选择软件包更新系统,而是使用基于映像的简单模型,可在必要时进行快速而完整的回滚。这消灭了冲突和破坏的机会,并使您更容易使用协调程序(如 EKS)充满信心地在整个机群范围内应用更新。

除了尽可能精简软件包之外,Bottlerocket 使用的文件系统从根本上来说是只读的,并且可在启动时通过 dm-verity 进行完整性检查。不建议使用 SSH 访问,它仅作为独立管理员容器的一部分提供,您可以根据需要启用,并使用它进行问题排查。

试用

我们今天发布了 Bottlerocket 的公开预览版。您可以按照 QUICKSTART 中的步骤设置一个 EKS 集群,还可以阅读 GitHub 使用报告。试用一下,报告错误提交 Pull 请求,告诉我们您的想法!

Jeff