Kata Container 2.x 和 3.0 安装,内核编译,镜像制作

kata container

2.x 介绍
3.0 介绍

安装

2.x 版本

Kubernetes 环境中可以使用 kata-deploy 进行安装

$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-rbac/base/kata-rbac.yaml
$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/kata-deploy/base/kata-deploy.yaml

创建 runtimeclass

$ kubectl apply -f https://raw.githubusercontent.com/kata-containers/kata-containers/main/tools/packaging/kata-deploy/runtimeclasses/kata-runtimeClasses.yaml

在 yaml 中 spec 下添加 runtimeClassName: kata-qemu 即可使用

3.0

3.0 当前只支持默认的 Dragonball 做为 hypervisor.

Rust

$ curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
$ source $HOME/.cargo/env
$ rustup install 1.58
$ rustup default 1.58-x86_64-unknown-linux-gnu

$ rustup target add x86_64-unknown-linux-musl

Musl libc

$ wget https://git.musl-libc.org/cgit/musl/snapshot/musl-1.2.3.tar.gz
$ tar vxf musl-1.2.3.tar.gz
$ cd musl-1.2.3/
$ ./configure --prefix=/usr/local/
$ make && sudo make install

编译安装

$ git clone https://github.com/kata-containers/kata-containers.git
$ cd kata-containers/src/runtime-rs
$ make && make install

参考 rust install

创建对应 runtimeclass

创建 yaml 并 apply

kind: RuntimeClass
apiVersion: node.k8s.io/v1
metadata:
    name: kata
handler: kata
scheduling:
  nodeSelector:
    katacontainers.io/kata-runtime: "true"

在 yaml 中 spec 下添加 runtimeClassName: kata 即可使用

make install 后配置文件在 /usr/share/defaults/kata-containers/configuration.toml

内核编译

当时做 sriov 和 vhost-user 时需要内核支持,重新编译内核,加入 mlx5_core 和 uio 驱动

编译需要依赖包,yq 需要使用 pip3 安装,系统包 flex,jq,bison,openssl-devel;’不同的系统 ncurses-devel or libncurses-dev

$ cd kata-contaners/tools/packaging/kernel

// 下载内核包
$ ./build-kernel.sh setup

$ cd kata-linux-5.15.26-90

// 图形页面
$ make menuconfig

uio_pci_geniric 在 device driver > Userspace I/O drivers
mellanox 在 device driver > network device support > Ethernet driver support > Mellanox devices

在这里插入图片描述
build kernel

$ cd ..
$  ./build-kernel.sh build

在 kata-linux-5.15.26-90 可以看到编译好的内核文件

镜像制作

由于 image 需要一些额外的包进行测试使用,需要自己制作

使用 ubuntu

rootfs

$ cd kata-containers/tools/osbuilder

// 将想要安装的包写入
$  export EXTRA_PKGS="gcc make curl gnupg coreutils apt tar kmod pkg-config libc-dev libc6-dev pciutils iproute2 bind9-utils util-linux ethtool"

// 也可以 USE_PODMAN=true
$ make USE_DOCKER=ture  image 2>&1 | tee logimage.txt

image

$ make USE_DOCKER=ture  rootfs 2>&1 | tee logrootfs.txt

可以看到 kata-containers.img 镜像

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值