LinuxKit 快速入门

源码:https://github.com/linuxkit/linuxkit

 

LinuxKit 快速入门

转载请注明来源:https://my.oschina.net/u/2306127/blog/1595914

LinuxKit,用于构建自定义的最小、不可更改的Linux分发版的工具。其内核和系统服务全部采用容器技术实现,基于ContainerD和RunC,支持OCI(开放容器规范)。

  • 缺省的安全性,不妥协的可用性。
  • 任何部分都是可替换的、可定制的。
  • 通过构建Linux分发版创建不可更改的基础设施。
  • 完整的无状态但是持久性存储可以被挂载。
  • 简单的工具,易于迭代。
  • 基于容器构建,用于运行容器。
  • 设计用于构建和运行集群化应用,包括但不限于容器集成,如Docker或者Kubernetes。
  • 根据构建容器版本的经验设计,但是重新设计为一个通用的工具集。
  • 设计为可被外部工具管理,如 Infrakit 或者类似的工具。
  • 包含一系列长期协作工程,用于不同开发的阶段,包括 kernel 和 userspace 改变, 尤其是安全。

子项目

  • LinuxKit kubernetes 帮助构建最小、不可更改的 Kubernetes images. (以前库中的 projects/kubernetes )。

开始

构建  linuxkit 工具

LinuxKit 使用 linuxkit 工具用于构建、推送和运行 VM images。

简单 build 指令: 使用 make 进行 build。构建好的工具在 bin/ 目录下,添加到你的 PATH 环境变量中或者拷贝到任何 PATH 覆盖到的路径,使用 sudo cp bin/* /usr/local/bin/。或者使用 sudo make install 进行安装。

如果已经有 go 安装,你可以使用 go get -u github.com/linuxkit/linuxkit/src/cmd/linuxkit 来安装 linuxkit 工具。

在 MacOS 这里有 brew tap 可用。细节说明在 linuxkit/homebrew-linuxkit, 简述为:

brew tap linuxkit/linuxkit
brew install --HEAD linuxkit

从源码构建要求:

  • GNU make
  • Docker
  • optionally qemu

Building images

首先,构建Linuxkit工具。然后,运行:

linuxkit build linuxkit.yml

来构建示范镜像。你可以指定不同的输出格式,如 linuxkit build -format raw-bios linuxkit.yml 输出 raw BIOS 可启动镜像文件, 或者 linuxkit build -format iso-efi linuxkit.yml 输出支持 EFI 的可启动 ISO格式的 image。查看 linuxkit build -help 获得更多信息。

因为 linuxkit build 围绕 Moby tool 构建,这个输入 yml 文件的描述在 Moby tool documentation

启动和测试

使用 linuxkit run <name> 或者 linuxkit run <name>.<format> 执行你从 linuxkit build <name>.yml创建的镜像,这将需使用合适的支撑平台,例如VMWare。查看 linuxkit run --help

目前支持的平台包括:

运行测试

测试套件使用 rtf ,安装使用 make bin/rtf && make install. 需要同时安装 expect 在你的系统上,有的测试需要这个支持库才能运行。

运行测试套件:

cd test
rtf -x run

这将运行测试,并将结果放入 _results 目录!

运行控制使用标签和模式匹配来处理。为了运行添加标签,使用:

rtf -x -l slow run

运行符合模式 linuxkit.examples 的测试,使用下面的命令:

rtf -x run linuxkit.examples

构建自己定制化的镜像

为了定制化,复制和修改 linuxkit.yml 到你自己的 file.yml 或者使用 examples 里面的,然后运行 linuxkit build file.yml 来产生给定的输出。可以运行产生的输出镜像文件 linuxkit run file

这个 yaml 文件制定了 kernel 和 基础 init system, ,一系列containers 也被构建进创建的image中,而且在启动时运行。你可以指定artifact的类型,在 moby 工具中,如linuxkit build -format vhd linuxkit.yml

如果你希望构建自己的软件包,参考 document

Yaml 参考

 yaml 格式文件指定了镜像将如何被构建:

  • kernel 指定的内核容器镜像,包含kernel 和filesystem的tarball, 一起其他容器化模块。示例 kernels 从 kernel/ 构建。
  • init 是基础的 init 进程容器镜像,展开为 base system, 包含 init, containerd, runc 少部分其他工具。从 pkg/init/ 构建。
  • onboot 是系统 containers, 按顺序执行。完成后快速终止。
  • services 系统服务,通常在系统整个运行期运行。
  • files 额外的文件,将被添加到镜像中。

更多的选项参考: yaml documentation

架构与安全

参考 overview of the architecture ,涵盖系统如何工作的内容。covering how the system works.

参考 overview of the security considerations and direction 包含该系统的安全设计。

路线图

这是一个开放项目,没有固定的评价,由社区来决定方向。

一些基本的原则性指南包括:

  • Security 指导下的设计。
  • 基础架构即代码: 不可更改, 基于代码的可管理性。
  • 合理的, 安全的, 良好测试的缺省值。
  • 开放、可插拔的平台,针对多样化的使用场景。
  • 易于使用,易于参与的项目。
  • 基于容器构建,可移植性,可重新生成。
  • 运行基于系统容器,隔离性和可扩展性。
  • 成为可靠产品构建的基石。

开发报告

每周的 development reports ,包含每周的摘要和工作总结。

FAQ

查看 FAQ

许可协议:Apache 2.0 license.

转载于:https://my.oschina.net/u/2306127/blog/1595914

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值