编译Kind¶
本文尝试使用 kind Git仓库最新源代码编译,以便能够从修复 排查X86移动云Kind创建失败 构建包含 zfs
工具的镜像
备注
我清理掉了所有本地kind镜像,从最初开始
下载kind源代码并进行编译:
# 编译kind,不影响镜像制作
make build
# 复制源码编译的kind执行程序到Go PATH
cp bin/kind $HOME/go/bin/
# 编译基础镜像(参考 `images/base <https://github.com/kubernetes-sigs/kind/tree/main/images/base>`_ )
cd images/base
make quick
# 编译节点 - 不要直接 build node-image ,会导致直接下载官方base镜像
kind build node-image
异常问题¶
这里我遇到一个问题,在 make quick
尝试创建 base-image
时候会报错,显示 zfs fs destroy
容器目录出现数据集正忙,无法删除而退出:
ERRO[0024] Error waiting for container: container c32a66a9a8e573412126728b5215edc2eb819b8af22efee5e4cedb1041d87108: driver "zfs" failed to remove root filesystem: exit status 1: "/usr/bin/zfs fs destroy -r zpool-data/05f8135122b3ccd853a663dee5b8a0d1e50d1c8c4449ba7401e33cee70b54771" => cannot destroy 'zpool-data/05f8135122b3ccd853a663dee5b8a0d1e50d1c8c4449ba7401e33cee70b54771': dataset is busy
make: *** [/home/huatai/docs/xcloud-env/kind/images/base/../Makefile.common.in:51: ensure-buildx] Error 125
另外, zfs list
显示大量的残留容器目录没有删除,晕倒:
NAME USED AVAIL REFER MOUNTPOINT
zpool-data 22.0G 839G 3.15G /var/lib/docker
zpool-data/05f8135122b3ccd853a663dee5b8a0d1e50d1c8c4449ba7401e33cee70b54771 21K 839G 18.4M legacy
zpool-data/05f8135122b3ccd853a663dee5b8a0d1e50d1c8c4449ba7401e33cee70b54771-init 25K 839G 18.4M legacy
zpool-data/0e7zhf1ohmfdfgqnsq1gy0b7n 62K 839G 43.0M legacy
zpool-data/15a80a720bcf7652b1b49a513a4bef6efd44eca38be6a0de12afabc6516e6611 74.5M 839G 74.5M legacy
zpool-data/197f30ff6351df25493a07bba14c4872e7409532249ac7e93301a8f58cbeda06 80.6M 839G 172M legacy
zpool-data/23ah042ipkjm8onfidhzu7ebt 7.35M 839G 2.87G legacy
zpool-data/247gg7t6mnbvd291ms37wxyu1 126K 839G 2.87G legacy
zpool-data/2c112dc17d1ed7b8a2172e6d3756cef1906714cbc6b2b16acde22f0e119fd5cd 2.64M 839G 2.89G legacy
...
我想了一下,应该是很多次创建和删除 kind
的容器,但是这些容器内部都没有 zfs
工具,所以不能清理掉残留的容器
备注
暂时没有时间和精力折腾了,我觉得这个构建需要在普通文件系统上完成(将镜像中加入zfs工具),但是直接在zfs文件系统上build不行。还是等待下一个发布版本后再折腾