Kubernetes源码编译(k8s主机编译)(go1.15.7+kubernetes-1.20.2)

(go1.15.7+kubernetes-1.20.2)

Kubernetes支持主机编译和容器编译,主机编译需要安装基本环境(go、gcc),容器编译使用Docker的Dockerfile编译,也是比较流行的方式。编译对内存有一定的要求,建议机器内存至少在2G以上。

环境准备(主机编译)

Kubernetes编译依赖Go环境和gcc,所以编译之前需要先下载好基本环境

gcc安装

Centos7下gcc可以直接使用yum安装(默认已安装,更新)
# yum -y install gcc

Golang源码获取

go语言中文网(里面下载最新稳定版go1.15.7.linux-amd64.tar.gz)

https://studygolang.com/dl
在这里插入图片描述

k8s源码获取

https://github.com/kubernetes/kubernetes

https://github.com/kubernetes/kubernetes/releases
在这里插入图片描述

主机编译

主机编译可以直接使用kubernetes自带的Makefile,使用make即可编译。但是由于编译生成的二进制较多,一般情况下对不同的模块可以进行单独的编译,以kubelet为例:

1、使用 make all WHAT=cmd/kubelet GOFLAGS=-v命令编译 kubelet模块

2、编译生成的二进制包在 _output/bin目录下

3、如果想要知道编译使用的脚本,可以通过查看 Makefile文件代码,查看编译执行脚本

# tar xf go1.15.7.linux-amd64.tar.gz -C /usr/local/

# echo "PATH=/usr/local/go/bin:$PATH" >> /etc/profile

# source /etc/profile

# go version
go version go1.15.7 linux/amd64
# mkdir -p /usr/local/go/bin/src/k8s.io
# cd /usr/local/go/bin/src/k8s.io
# tar xf kubernetes-1.20.2.tar.gz
# cd kubernetes-1.20.2/
# make all WHAT=cmd/kubelet GOFLAGS=-v (整个过程大概2分30秒)
# cd _output/bin
# ./kubelet --version
Kubernetes v1.20.2

步骤截图
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值