K8s编译的docker映像的问题

时间:2019-03-30 17:45:11

标签: kubernetes kubeadm kube-apiserver

将存储库(标记v1.14.0)克隆到本地计算机后,

;我已经修改了cmd/kube-apiserver/app/server.go文件;我添加了一行新代码,这是自定义日志条目 在K8s代码编译后,我在_output/release-images/amd64/中找到了docker images tar ball,并使用了docker load -i _output/release-images/amd64/kube-apiserver.tar 它添加了一个新建立的apiserver docker映像,但是没有覆盖它,而是创建了一个新标签v1.14.0-dirty

enter image description here

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

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

2 个答案:

答案 0 :(得分:2)

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

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

那应该为图像创建正确的标签。

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

答案 1 :(得分:1)

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

在上述路径中更新api服务器映像名称,然后删除api服务器容器。