kata-containers对接firecracker
在arm64环境下测试kata-containers对接firecracker,kata2.0需要使用containerd,不能使用docker,docker将kata版本硬编码成了v1
下载kata-containers
x86可直接下载官方打包好的压缩包,arm64需要自己编译
|
下载源码文件
github慢可以使用github.com.cnpmjs.org,与官方会有一天延迟,也可clone源码,然后git checkout 2.1.1
|
解压并进入代码目录
|
拷贝配置文件
kata默认使用的配置文件为/usr/share/defaults/kata-containers/目录下的configuration.toml
将src/runtime/cli/config/configuration-*.toml的所有文件拷贝到ls /usr/share/defaults/kata-containers/目录下,便于之后使用
编译容器运行时
注:需要go环境,可17.4
编译二进制
|
会在src/runtime/目录下生成如下文件
|
将二进制文件拷贝到/usr/bin/下
编译虚拟机系统镜像
创建rootfs镜像
注意:需要docker环境,并且运行时为runc,需要rust环境,脚本会自动安装rust,但容易超时失败,并且不能加速下载依赖包,不使用docker还会出现类似以下错误
|
rust环境安装见rust环境搭建_weixin_42758299的博客-CSDN博客
需要添加aarch64-unknown-linux-musl
|
修改docker国内镜像源
|
安装依赖
|
创建本地rootfs
|
注:distro可用./rootfs.sh -l查看,表示可创建的虚拟机系统,本次使用的是ubuntu
|
会生成一个rootfs在当前目录下,使用ubuntu生成的是目录名为rootfs-bionic
|
编译rootfs镜像
使用上面创建的本地rootfs
|
生成的文件在当前目录,为:
kata-containers.img
将文件拷贝到/usr/share/kata-containers/目录下
编译内核
|
安装依赖
|
修改build-kernel.sh
将cdn.kernel.org改为www.kernel.org
执行如下命令
|
生成的文件在/usr/share/kata-containers/
|
安装firecracker
下载
|
解压
|
有如下文件
|
将firecracker-v0.23.4-aarch64和jailer-v0.23.4-aarch64拷贝到/usr/bin/,并改名为firecracker和jailer即可
安装containerd
arm64环境下如果containerd没有命令行工具,可以使用如下工具,containerd官方推出的nerdctl,下载full压缩包,里面包含nerdctl和containerd
|
可以把nerdctl和containerd拷贝到/usr/bin,直接使用containerd启动服务
配置devmapper
AWS Firecracker不支持 virtiofs,只能使用 virtio 块设备
可以使用如下脚本进行配置:
|
注意需要将最后的输出的plugins这一段添加到/etc/containerd/config.toml,没有文件则手动创建
为了使devmapper在机器重启之后继续生效,可使用以下脚本
|
重启containerd服务
kata配置
为了区分对接的不同vmm,可以进行如下操作
创建文件/usr/bin/containerd-shim-kata-fc-v2,并赋予可执行权限,否则将/usr/share/defaults/kata-containers/configuration-fc.toml文件改为configure.toml即可
文件内容为:
|
修改/etc/containerd/config.toml,把以下内容加到[plugins]下
|
重启containerd
测试
拉取镜像并使用kata容器运行时启动容器
|
其他vmm
如果要使用其他vmm的话,只需要下载对应vmm的二进制文件,与configuration.toml匹配即可,另外需要看用的vmm是否支持virtiofs,否则需要devmapper
如果需要使用virtiofs,比如使用qemu或者cloud-hypervisor时,需要编译virtiofsd
编译virtiofsd
如果github访问慢,可以将build-base-qemu.sh里qemu_repo="https://github.com.cnpmjs.org/qemu/qemu.git",然后将Dockerfile里的github.com都改为github.com.cnpmjs.org
|
会生成一个压缩包kata-static-qemu.tar.gz
解压之后是一个opt目录,virtiofsd文件在opt/kata/libexec/kata-qemu/virtiofsd
同理,也可以直接通过该目录下的firecracker和cloud-hypervisor获取firecracker和cloud-hypervisor的二进制,不用去单独下载firecracker和cloud-hypervisor了,其实这两个脚本内容也是去github下载编译好的二进制
如下为使用cloud-hypervisor,不用使用devmapper
|
参考
Running containers on Firecracker microVMs using kata on kubernetes | CloudKernels
https://github.com/kata-containers/kata-containers/blob/main/docs/Developer-Guide.md
https://github.com.cnpmjs.org/kata-containers/kata-containers/blob/main/tools/packaging/kernel/README.md#build-kata-containers-kernel
Kata Containers - ArchWiki
kata-containers对接firecracker相关推荐
- 从零开始入门 K8s | Kata Containers 创始人带你入门安全容器技术
作者 | 王旭 蚂蚁金服资深技术专家 本文整理自<CNCF x Alibaba 云原生技术公开课>第 28 讲,点击直达课程页面. 关注"阿里巴巴云原生"公众号,回复 ...
- Kata Containers及相关vmm介绍
Kata Containers介绍 Kata Containers 是轻量级虚拟机的一种新颖实现,可无缝集成到容器生态系统中. Kata Containers 与容器一样轻巧快速,并与容器管理层集成, ...
- Kata Containers创始人:安全容器导论
从2015年5月初开始创业开发 HyperContainer (runV) 到现在,也快五年了,在这个时候还来写一篇什么是安全容器,显得略有尴尬.不过,也正是经过这五年,越来越多到人开始感到,我需要它 ...
- OpenStack基金会携手Intel、Hyper发布开源Kata Containers项目
OpenStack基金会本周二发布了新的开源项目Kata Containers,其目标是将虚拟机(VM)的安全优势与容器的高速及可管理性结合起来,为用户带来最出色的容器解决方案,同时提供最强大的虚拟机 ...
- 基于 Kata Containers 与 iSulad 的云容器实践解析
在 4 月 9 号结束的 OpenStack 基金会董事会议上,董事们投票批准了 Kata Containers 成为基金会旗下第一个新的顶级开放基础设施(Open Infrastructure)项目 ...
- Kata Containers介绍
美国东部时间12月5日早上8点,OpenStack基金会于KubeCon峰会正式发布基于Apache 2.0协议的容器技术Kata Containers项目(https://katacontainer ...
- 虚拟机容器嵌合体—— Kata Containers正式走出实验室
将虚拟机的安全优势与基于软件的容器的部署和管理优势相结合在一起的开源的Kata Containers项目,在周二达到了1.0的里程碑. 由于去年12月宣布的英特尔Clear Containers和Hy ...
- Kata Containers 2.0 的进击之路
Kata Containers 开源项目于2017年底正式启动,其目标是将虚拟机(VM)的安全优势与容器的高速及可管理性相结合,为用户带来出色的容器解决方案.该项目在过去两年取得了哪些进展?下一版本的 ...
- 配置Docker以使用Kata Containers
Kata Containers是一种轻量级的虚拟化技术,它进一步加强了容器的安全性和隔离性.在Linux系统中,可以通过以下步骤安装Kata Containers: 添加Kata Containers ...
- Docker集成kata containers
我现在机器是Linux mint 20.1 对标的是Ubuntu20.04 所以使用20.04的镜像源 echo "deb http://download.opensuse.org/repo ...
最新文章
- arXiv爆款:想了解Attention就看它!
- Linux驱动程序中的file,inode,file_operations三大结构体
- Codeforces 757C - Felicity is Coming!
- 评价指标:目标检测的评价指标 - mAP
- 一个程序员的职业规划
- 从CLR GC到CoreCLR GC看.NET Core对云原生的支持
- 李国庆离开当当,广东消委会告长隆,智能校服提供定位功能,全球首个5G火车站来了,这就是今天的大新闻...
- shell学习脚本-tomcat停止脚本
- java零碎总结---java实现截图并保存到本地
- 在LINUX上,Apache安装记
- Java分布式面试题集合(收藏篇)
- 关于在IDEA中Tomcat乱码的解决办法
- Android分享wifi给电脑,使用Android手机共享手机网络给PC上网
- GAN-cls:具有匹配感知的判别器
- Zakas大神:LeanPub自出版一年记
- 信号处理之FIR数字滤波器(Matlab仿真)
- Google服务和软件大全
- 2018Java阿里编程测验_2018阿里编程测验题:最短汉密尔顿回路
- 【程序源代码】微信小程序商城
- Lombok @RequiredArgsConstructor @Qualifier
热门文章
- 2014年华为收入122亿美元
- 请假代码java web_学生请假管理系统
- sql注入漏洞--sqlmap使用
- 移动硬盘坏点测试软件,移动硬盘坏道检测工具
- 揭秘阿里CDN核心技术(http://wenku.baidu.com/view/ffc63474b4daa58da1114a45.html?re=view)
- 【MATLAB笔记】对矩阵进行满秩分解
- SEP8266 由零开始(一),最小系统,下载,与WiFi建立
- apple id两步验证服务器,apple id两步验证 苹果Apple ID两步式验证设置使用教程
- Web mfw Writeup
- 【嵌入式系统】STM32时钟系统+时钟配置函数解析