K8s 编译 docker 图像的问题

issues with K8s compiled docker images

将 repo (tag v1.14.0) 克隆到本地机器后;我修改了 cmd/kube-apiserver/app/server.go 文件;我添加了一行新代码,即客户日志条目 在编译 K8s 代码时,我在 _output/release-images/amd64/ 中找到了 docker 图像 tar 球,并且我使用了 docker load -i _output/release-images/amd64/kube-apiserver.tar 它添加了一个新建的 apiserver docker 图像,但是,它没有覆盖标签,而是创建了一个新标签 v1.14.0-dirty

现在我的问题是 K8s 如何以及为什么向图像标签添加 dirty 后缀? 现在,当我执行 kubeam init 时,它仍会部署带有 v1.14.0 标签的原始图像,并且不会部署带有 v1.14.0-dirty 标签

的新建图像

如何使用新建的 docker 镜像启动 K8s?

一个快速而肮脏的解决方案是添加另一个命令:

docker tag k8s.gcr.io/kube-apiserver:v1.14.0-dirty k8s.gcr.io/kube-apiserver:v1.14.0

这应该会为图片创建正确的标签。

dirty 标记可以在 tar 构建阶段应用,因为构建器检测到 git 存储库状态为

Kubeadm 在 /etc/kubernetes /manifests 下为 api 服务器、控制器、调度程序服务创建清单。

更新上述路径中的api服务器镜像名称,然后删除api服务器pods。