本文演示如何在centos-arm系統上進行編譯k8s
1.安裝k8s的安裝環境:golang
# wget -c https://dl.google.com/go/go1.11.4.linux-arm64.tar.gz -P /opt/package/
wget https://golang.google.cn/doc/install?download=go1.13.5.linux-armv6l.tar.gz -P /opt/package/
cd /opt/package/
ls
tar -C /opt/software/ -xzf go1.11.4.linux-arm64.tar.gz
cd /opt/software/
echo "export PATH=$PATH:/opt/software/go/bin" >> /etc/profile && source /etc/profile
2.下載k8s的源碼包
cd /opt/package/
git clone https://github.com/kubernetes/kubernetes -b release-1.13
如果下載慢,請按照下面連結進行配置:
https://mp.csdn.net/postedit/103429677
3.編譯
3.1 修改編譯的架構體系,減少不必要環境的編譯
進入 kubernates目錄,編譯 /kubernate/hack/lib/golang.sh ,將
KUBE_SUPPORTED_SERVER_PLATFORMS、KUBE_SUPPORTED_NODE_PLATFORMS、 KUBE_SUPPORTED_CLIENT_PLATFORMS 三個值中的其他環境注釋掉
三個值中不需要進行編譯的環境注釋掉
4.開始編譯
cd /opt/software/source/kubernetes
#KUBE_BUILD_PLATFORMS=linux/arm64 make all
KUBE_BUILD_PLATFORMS=linux/arm64 make all WHAT=cmd/kubelet GOFLAGS=-v GOGCFLAGS="-N -l" GOPATH="/opt/software/go/bin"
#cd k8s.io/kubernates/cmd/kubelet
#go build kubelet.go -v
cd /opt/package/source/k8s/kubernetes/_output/local/go/bin/linux_arm64
5.編譯成功後,進入cd k8s.io /kubernates/cmd/kubelet 找到對應文件,說明編譯成功
參考連結:
https://www.kubernetes.org.cn/5033.html