构建 minikube ISO
概述
minikube ISO 由每个虚拟机管理程序引导,以提供一个稳定的最小化 Linux 环境来启动 Kubernetes。它基于 coreboot,使用 systemd,并包含所有必需的容器运行时和虚拟机管理程序客户机驱动程序。
先决条件
- 具有 x86_64 处理器的机器
- Ubuntu 22.04.5 LTS (Jammy Jellyfish)
- docker
- 近期版本的 GNU Make 分发版(>=4.0)
- 近期版本的 Go 分发版(>=1.22.0)
- 如果您使用 Windows 或 Mac,则需要安装 Docker。
- 4GB 内存
下载源代码
git clone https://github.com/kubernetes/minikube.git
cd minikube
构建
在 Docker 中构建
为 x86 架构构建
$ make buildroot-image
$ make minikube-iso-x86_64
为 ARM 架构构建
$ make buildroot-image
$ make minikube-iso-aarch64
构建将在 docker 容器内进行。可启动的 ISO 镜像将位于 out/minikube-<arch>.iso
。
不使用 Docker 构建
安装所需工具
sudo apt-get install \
automake \
bc \
build-essential \
cpio \
gcc-multilib \
genisoimage \
git \
gnupg2 \
libtool \
locales \
p7zip-full \
python2 \
unzip \
wget \
使用以下说明安装 Go:https://golang.ac.cn/doc/install
不使用 docker 构建时运行
IN_DOCKER=1 make minikube-iso-<arch>
[!IMPORTANT] 即使不使用 docker 构建,一些外部项目也会尝试使用 docker。您必须在构建主机上安装 docker。
使用本地 ISO 镜像
$ ./out/minikube start --iso-url=file://$(pwd)/out/minikube-<arch>.iso
修改 buildroot 组件
要更改客户机虚拟机中包含的 Linux 用户空间组件,请使用此项修改 buildroot 配置
cd out/buildroot
make menuconfig
make
要保存这些配置更改,请执行
make savedefconfig
更改将反映在 minikube-iso/configs/minikube_defconfig
文件中。
添加内核模块
要进行内核配置更改并保存它们,请执行
$ make linux-menuconfig
这将打开内核配置菜单,然后在您选择更改后将其保存到我们的 iso 目录中。
添加第三方软件包
要将您自己的软件包添加到 minikube ISO,请在 iso/minikube-iso/package
下创建一个软件包目录。此目录至少需要 3 个文件
<package name>.mk
- 一个描述如何下载源代码和构建程序的 Makefile
<package name>.hash
- 用于验证下载的源代码的校验和
Config.in
- buildroot 配置
为了开始一个相对简单的示例,您可以参考 podman
软件包。
持续集成构建
我们发布 minikube 的 CI 构建版本,在每个 Pull Request 时都会进行构建。构建版本可在以下地址获取(替换为相关的 PR 编号)
- https://storage.googleapis.com/minikube-builds/PR_NUMBER/minikube-darwin-amd64
- https://storage.googleapis.com/minikube-builds/PR_NUMBER/minikube-linux-amd64
- https://storage.googleapis.com/minikube-builds/PR_NUMBER/minikube-windows-amd64.exe