构建 minikube ISO
概述
每个虚拟机监控程序都会启动 minikube ISO,以提供一个稳定的最小 Linux 环境来启动 Kubernetes。它基于 coreboot,使用 systemd,并包含所有必要的容器运行时和虚拟机监控程序访客驱动程序。
先决条件
- 最近的 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 out/minikube-amd64.iso
为 ARM 构建
$ make buildroot-image
$ make out/minikube-arm64.iso
构建将在 docker 容器内进行。可启动的 ISO 镜像将位于 out/minikube-<arch>.iso
中。
在裸机上构建
如果要在裸机上执行此操作,请将 make out/minikube-<arch>.iso
替换为 IN_DOCKER=1 make out/minikube-<arch>.iso
。
- 要安装的先决构建工具
sudo apt-get install build-essential gnupg2 p7zip-full git wget cpio python \
unzip bc gcc-multilib automake libtool locales
使用本地 ISO 镜像
$ ./out/minikube start --iso-url=file://$(pwd)/out/minikube-<arch>.iso
修改 buildroot 组件
要更改访客 VM 中包含的 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