多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
[TOC] ### **制作Kubemark镜像** 1、构建kubemark二进制 ``` [root@k8s8 kubernetes-1.23.3]# ./hack/build-go.sh cmd/kubemark/ NOTE: ./hack/build-go.sh has been replaced by 'make' or 'make all' The equivalent of this invocation is: make WHAT='cmd/kubemark/' Detected go version: go version go1.16.15 linux/amd64. Kubernetes requires go1.17.0 or greater. Please install go1.17.0 or later. !!! [0519 17:58:40] Call tree: !!! [0519 17:58:40] 1: hack/run-in-gopath.sh:31 kube::golang::setup_env(...) Detected go version: go version go1.16.15 linux/amd64. Kubernetes requires go1.17.0 or greater. Please install go1.17.0 or later. !!! [0519 17:58:40] Call tree: !!! [0519 17:58:40] 1: /root/kubernetes-1.23.3/hack/lib/golang.sh:794 kube::golang::setup_env(...) !!! [0519 17:58:40] 2: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) !!! [0519 17:58:40] Call tree: !!! [0519 17:58:40] 1: hack/make-rules/build.sh:27 kube::golang::build_binaries(...) make[1]: *** [_output/bin/prerelease-lifecycle-gen] Error 1 make: *** [generated_files] Error 2 ``` 2、构建kubemark镜像 根据 [kubemark](https://github.com/kubernetes/community/blob/master/contributors/devel/sig-scalability/kubemark-setup-guide.md#steps) 的指引,把上面构建好的kubemark二进制文件拷贝到 `kubernetes-1.23.3/cluster/images/kubemark/`目录下,并在上面的目录中,执行make build命令 ``` [root@k8s8 kubemark]# pwd /root/kubernetes-1.23.3/cluster/images/kubemark [root@k8s8 kubemark]# make build docker build --pull -t staging-k8s.gcr.io/kubemark:latest . Sending build context to Docker daemon 121.6MB Step 1/2 : FROM k8s.gcr.io/build-image/go-runner:v2.3.1-go1.17.2-bullseye.0 v2.3.1-go1.17.2-bullseye.0: Pulling from build-image/go-runner ec52731e9273: Pull complete a5732a474047: Pull complete Digest: sha256:7b035982301e211bf9cad67f3d1ccf97d7778f88cc18c8ac286e619bb970d5ba Status: Downloaded newer image for k8s.gcr.io/build-image/go-runner:v2.3.1-go1.17.2-bullseye.0 ---> dc2689354f85 Step 2/2 : COPY kubemark /kubemark ---> 58ad9aa08afa Successfully built 58ad9aa08afa Successfully tagged staging-k8s.gcr.io/kubemark:latest ``` kubemark镜像的构建非常简单,就是把kubemark二进制拷贝到基础镜像中,然后得到`staging-k8s.gcr.io/kubemark:latest`镜像。可以参考该目录下的Dockerfile文件。 我们把这个镜像重命名一下: ``` $ docker tag staging-k8s.gcr.io/kubemark:latest kubemark:v1.23.3 ```