13.1. Compiling from Source
我们需要安装 Go,并需要从 GitHub Kubernetes 的源代码。我们将介绍如何编译整个 Kubernetes kubectl 等具体的组件。
如何从源代码制作自己的 Kubernetes 可执行文件,而不是下载官方发行的可执行文件(请参阅 2.4 节),或第三方的产品?
克隆 Kubernetes Git 代码仓库,并编译源代码。
如果在 Docker 的主机上,可以使用顶层 Makefile 的 quick-release 目标,如下所示:
# git clone https://github.com/kubernetes/kubernetes # cd kubernetes # make quick-release
!!!基于 Docker Docker 服务可以使用的内存足够。对于 MacOS,通过 Docker for Mac 选项增加分配给 Docker 的内存。
编译好的可执行文件保存在_output/release-stages 目录中,完整的包再_output/release-tars 中。
如果有设置好的 Golang,则可以使用 Makefile 的 release 目标:
# git clone https: //github. com/kubernetes/kubernetes # cd kubernetes # make
编译好的可执行文件保存在_output/bin 目录中。
具体的开发者指南:https://gtubcom/kubernetes/community/tree//contributors/devel
13.2. Compiling a Specific Component
如何从源代码编译特定 Kubernetes 组件而不是所有的组件,例如,编译客户端 kubectl1?
使用 make kubectl
顶层 Makefile 中包含了用于编译各个组件的的目标。例如,编译 kubectl kubeadm hyperkube 的命令如下所示:
make kubeadm
make hypercube
编译好的可执行文件保存在_output/bin 目录中。