「KUBERNETES」- 通过源码编译

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 kubectl

make kubeadm

make hypercube

编译好的可执行文件保存在_output/bin 目录中。