【生意多】-免费发布分类信息
当前位置: 首页 » 新闻 » 教程 » 正文

Linux新发布用于容器托管的操作系统Bottlerocket的详细介绍

放大字体  缩小字体 发布日期:2020-09-16 14:51:09    浏览次数:20
导读

  随着我们的客户越来越多地使用容器来运行其工作负载,设计Linux发行版以从头开始运行容器已经变得很流行。 例如,Compact Alpine Research,Redhat的CoreOS和其他操作系统用于运行容器。  日前著名云厂商亚马逊宣布,发布自己的容器Linux发行版Bottlerocket。Bottlerocket立足于安全性,操作和规模管理,使用它能够自

  随着我们的客户越来越多地使用容器来运行其工作负载,设计Linux发行版以从头开始运行容器已经变得很流行。 例如,Compact Alpine Research,Redhat的CoreOS和其他操作系统用于运行容器。

  日前著名云厂商亚马逊宣布,发布自己的容器Linux发行版Bottlerocket。Bottlerocket立足于安全性,操作和规模管理,使用它能够自动管理数千个运行容器的主机。

  Bottlerocket,本质上是一个新Linux发行版,用来跑容器。他内置了安全性增强功能有助于简化安全性合规性,并提供事务更新机制使使用容器编排器自动化操作系统更新并降低运营成本。

  Bottlerocket目前已在GitHub创建开源组,并全开源。今天我们就一起来了解一下这个系统。

  Bottlerocket的开发源于,Amazon AWS云中客户如何使用Amazon Linux运行容器以及从运行服务(例如AWS Fargate)中学到的知识来设计和构建的。在设计中,充分对Bottlerocket进行了优化,以提高安全性,性能并简化维护流程。

  Bottlerocket中只包含运行容器所需的软件,以减少安全攻击面,从而提高了安全性。除了使用标准Linux内核技术在容器化工作负载(例如控制组(cgroup),名称空间和seccomp)之间实现隔离之外,还以强制模式使用安全性增强的Linux(SELinux)来增强容器与主机操作系统之间的隔离。

  Bottlerocket使用Device-mapper的verity目标(dm-verity),这是一种Linux内核功能,可提供完整性检查,以帮助防止攻击者在操作系统上持续存在威胁,例如覆盖核心系统软件。

  Bottlerocket Linux内核中包括了eBPF,这减少了许多低级系统操作对内核模块的需求。

  Bottlerocket的大部分内容都是用Rust编写的,Rust是一种现代编程语言,可帮助确保线程安全并防止与内存相关的错误,例如可能导致安全漏洞的缓冲区溢出。

  Bottlerocket还通过阻止与生产服务器的管理连接来实施可进一步提高安全性的操作模型。它适用于限制对单个主机的控制的大型分布式环境。

  为了进行调试,可以使用Bottlerocket的API运行“管理容器”(通过用户数据或AWS Systems Manager调用),然后使用SSH登录以进行高级调试和故障排除。admin容器是Amazon Linux 2容器映像,包含用于对Bottlerocket进行故障排除和调试的实用程序,并以提升的特权运行。它允许安装和使用标准调试工具,例如traceroute,strace,tcpdump。登录到单个Bottlerocket实例的行为旨在作为高级调试和故障排除的操作。

  Bottlerocket通过使节点的管理和对集群中节点的自动更新更加容易,从而大规模地提高了操作和可管理性。与旨在支持以各种格式打包的应用程序的通用Linux发行版不同,Bottlerocket是专门为运行容器而构建的。对其他通用Linux发行版的更新是在逐个软件包的基础上应用的,它们的软件包之间的复杂依赖关系可能导致错误,从而使流程难以实现自动化。

  Bottlerocke以原子方式应用和回滚更新,这使得它们易于自动化,从而减少了管理开销并降低了运营成本。

  Bottlerocket与容器编排器集成在一起,可以对主机进行自动修补,以提高运营成本,可管理性和正常运行时间。Bottlerocket支持与任何容器编排器集成,AWS提供的编译版本可与Amazon EKS(具有一般可用性)和Amazon ECS(具有预览功能)一起使用。

  Bottlerocke支持不包括编排系统的,作为独立的OS运行进行开发和测试用例,官方还是建议建议将其与容器编排系统结合使用,以充分利用其所有优点。

  在上述两个示例的命令,可以指定是否在另一个区域中操作改变区域,或从x86_64的改变架构arm64如果使用Graviton-动力实例。

  得到AMI ID后,可以启动EC2实例并将其连接到现有的EKS或ECS群集。要使用Bottlerocket的Kubernetes变体连接到EKS集群,在启动EC2实例时,需要提供如下用户数据:

  作为前提步骤,首先创建一个Rust开发环境。建议使用安装最新的稳定Rust版本。要组织构建任务,要使用cargo-make和cargo-deny:

  Bottlerocket使用Docker来协调打包和映像构建。建议使用Docker 19.03或更高版本。需要安装Docker并以您的用户帐户运行,以便能够访问Docker API。通常可以通过将用户帐户添加到docker组来启用此功能。

  Bottlerocket已经完全开源,以使用户能够对用于运行其基础架构的操作系统进行自定义(例如,与自定义协调器/内核/容器运行时集成),将其提交上游并生成自定义版本。所有设计文档,代码,构建工具,测试和文档都将托管在GitHub上。使用GitHub的错误和功能跟踪系统进行项目管理。支持可以使用标准GitHub工作流程查看并为Bottlerocket源代码做贡献。构建,发行和测试基础结构的可用性使生成包含其更改的自定义构建变得容易。ISV合作伙伴可以在客户更新到最新版本的Bottlerocket之前快速验证其软件。

  Bottlerocket包括标准的开放源代码组件,例如Linux内核,容器化容器运行时等。特定于Bottlerocket的附加项着重于可靠的更新以及基于API的机制来进行配置更改和触发更新/回滚。可以选择根据Apache 2.0许可证或MIT许可证来许可Bottlerocket代码。诸如Linux内核之类的底层第三方代码仍受其原始许可证的约束。如果修改Bottlerocket,则可以根据策略准则使用“Bottlerocket Remix”来引用构建。

 
关键词: linux系统简介
(文/小编)
打赏
免责声明
• 
本文为小编原创作品,作者: 小编。欢迎转载,转载请注明原文出处:http://www.31duo.com/news/show-545569.html 。本文仅代表作者个人观点,本站未对其内容进行核实,请读者仅做参考,如若文中涉及有违公德、触犯法律的内容,一经发现,立即删除,作者需自行承担相应责任。涉及到版权或其他问题,请及时联系我们。
 

(c)2016-2019 31DUO.COM All Rights Reserved浙ICP备19001410号-4

浙ICP备19001410号-4