文章目录

  • kata container
  • 安装
    • 2.x 版本
    • 3.0
      • Rust
      • Musl libc
      • 编译安装
      • 创建对应 runtimeclass
  • 内核编译
  • 镜像制作
    • rootfs
    • image

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 镜像

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

  1. VC++6.0安装、编译NTL类库

    前言 为了解决大数运算的问题,世界各国的软件开发人员和研究学者都进行了很多 的研究和实践.近年来,越来越多的开发人员开始重视软件工程的作用,为了减少 重复劳动,提高软件的质量和代码复用,许多优秀的大数 ...

  2. iTop4412---linux 3.0.15内核编译错误

    ARM开发板:iTop4412 内核版本:linux 3.0.15 交叉编译器:arm-2014.05 主机:Ubuntu 16 错误1: CC arch/arm/mach-exynos/cpu-ex ...

  3. sata3.0 linux内核,编译Linux内核3.0系统出现的警告信息

    [www.linuxidc.com @linux linux-3.0]$gcc --version gcc (GCC) 4.6.1 Copyright © 2011 Free Software Fou ...

  4. 基础IO(文件接口、安装内核源码超详细步骤图解、静态库与动态库)

    基础IO C语言的文件操作接口 fopen fclose fread fwrite fseek 系统调用文件接口 open close read write lseek 安装内核源码 文件描述符&am ...

  5. Linux 0.11内核分析02:系统启动

    目录 1. 内核镜像的构建 1.1 内核源码结构 1.1.1 boot 1.1.2 fs 1.1.3 include 1.1.4 init 1.1.5 kernel 1.1.6 lib 1.1.7 m ...

  6. arch linux编译,ArchLinux内核编译与安装

    为什么要编译内核?在Gnome桌面环境下,不知什么原因,nouveau显示驱动总是会出现问题.然而尝试着禁掉它,却都没啥作用,只能从内核层面剔除nouveau. 大致步骤: 获取Linux内核源码 解 ...

  7. APOLLO 6.0安装教程

    以下是百度官方的安装说明,必须要在ubuntu18.04以上操作系统才可以完成. nav_ic_arrowhttps://apollo.baidu.com/community/Apollo-Homep ...

  8. 【apollo6.0安装全教程】

    apollo6.0(开发版)安装教程 可能全网最全! 0关于apollo安装的版本提示! 1电脑推荐配置!!非常重要!! 2安装ubuntu系统 3安装NVIDIA GPU 驱动 4换国内源 5安装d ...

  9. Debian 6.0 安装过程 及中文乱码

    2019独角兽企业重金招聘Python工程师标准>>> Debian 6.0 安装过程 Debian 6.0 安装过程 转(一个别人自录的安装过程录相) http://v.youku ...

  10. ESXi6.5环境搭建(三:vSphere Client6.0安装)

    实验目的及要求 完成VMware workstations安装,会应用相关操作: 完成虚拟机中ESXI6.5平台的安装及网络环境配置: 完成VMware vSphere Client 6.0软件在PC ...

最新文章

  1. git_修改git历史提交记录
  2. MySql UBUNTU下复制配置
  3. 0401互联网新闻 | 企业微信新版发布;阿里巴巴发布“AI谣言粉碎机”
  4. scrapy使用cookie的三种方式
  5. 新的开始 和一些总结
  6. for循环,定时器,闭包混合一块的那点事。
  7. 编译安装Mysql5.6.36
  8. ntp如何确认与服务器偏差_CDH集群时钟偏差问题
  9. 手机端与pc端页面html5,浅谈pc和移动端的响应式的使用
  10. 什么样的终端才是最合适桌面虚拟化的呢?
  11. 2020年六十款数据分析的可视化工具推荐
  12. Java —— EJB 到底是什么
  13. matlab解方程 中det,matlab中det函数
  14. 1.1微信支付之现金红包 - Java 开发
  15. QQ邮箱的POP3与SMTP服务器是什么?
  16. php怎么显示不了图片,php显示不了图片的解决办法,
  17. 锥度用计算机怎么算,大小头体积,表面积,锥度,展开圆心角,质量计算公式与在线计算器_三贝计算网_23bei.com...
  18. Java做简单的界面
  19. 正则表达式 - Python 正则表达式 学习笔记 最全整理
  20. esp32-pico-d4问题

热门文章

  1. C++求矩阵最大值和最小值
  2. vue打卡日历_VUE也有自己的日历组件
  3. 手机怎样设置垃圾短信拦截?
  4. EM2 MP1 Vowel and Consonant Teacher:Ashley
  5. 怎么打造云计算的碎片计算方式
  6. unity5 rendersetting选项
  7. L Norms 范数
  8. 机房动力环境监测解决方案
  9. vscode环境搭建:配置prettier
  10. 大咖说开源|郑振宇:通过开源手段巩固基础软件供应链