kubernetes 源码编译分为本地编译和镜像编译,本地编译是指最终编译出来的是二进制可执行文件,镜像编译是
最终编译出来的产出物为 docker 镜像 tar 包。本文主要介绍本地编译的方法,以编译 kube-apiserver 组件为例说明。
环境要求
- Go 环境: go1.12.xx
- gcc
我的环境说明:Mac Os + go1.12.10 + gcc,如果读者本地的 Go 版本不是 go1.12.xx,可以使用 gvm 工具安装一个,gvm 是 Go 多版本管理工具,具体使用方法可以看之前的文章:Golang 多版本管理神器 gvm
本地编译也分为两种,一种是 make 编译,另一种是 Go 命令行编译,下面一一介绍:
一、make 编译
1.下载 k8s 源码
go get k8s.io/kubernetes
2.编译指定版本源码(以1.16.3为例)
cd $GOPATH/src/k8s.io/kubernetes