当前位置:首页 > 嵌入式 > 嵌入式动态
[导读]随着我们的客户越来越多地使用容器来运行其工作负载,设计Linux发行版以从头开始运行容器已经变得很流行。 例如,Compact Alpine Research,Redhat的CoreOS和其他操作系统用于运行容器。

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

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

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

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

技术架构

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

最少组件、SELinux增强

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

Device-mapper和eBPF

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

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

Rust开发

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(具有预览功能)一起使用。

Bottlerocket入门

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

最简单入门方法在AWS云中,使用AWS提供的Bottlerocket AMI与Amazon EKS或Amazon ECS结合使用。

可以通过使用AWS CLI查询SSM来找到这些AMI的ID,如下所示。

要查找Bottlerocket aws-k8s-1.17变体的最新AMI ID,请运行:

aws ssm get-parameter --region us-west-2 \

--name "/aws/service/bottlerocket/aws-k8s-1.17/x86_64/latest/image_id" \

--query Parameter.Value --output text

要查找Bottlerocket aws-ecs-1变体的最新AMI ID,运行:

aws ssm get-parameter --region us-west-2 \

--name "/aws/service/bottlerocket/aws-ecs-1/x86_64/latest/image_id" \

--query Parameter.Value --output text

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

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

[settings.kubernetes]

api-server = "Your EKS API server endpoint here"

cluster-certificate = "Your base64-encoded cluster certificate here"

cluster-name = "Your cluster name here"

要使用Bottlerocket的ECS变体连接到ECS群集,可以提供以下用户数据:

[settings.ecs]

cluster = "Your cluster name here"

自定义编译Bottlerocket

除了使用AWS提供的Bottlerocket AMI外,还可以使用自己的更改生成定制的Bottlerocket构建。

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

cargo install cargo-make

cargo install cargo-deny --version 0.6.2

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

要生成映像,请在更改源代码后运行:

cargo make

所有软件包将依次构建,然后编译目录中的img文件build。

接下来,要注册在Amazon EC2上使用的Bottlerocket AMI,需要设置aws-cli并运行:

cargo make ami

开源社区

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

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

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭