Kubernetes 源码部分编译(快速编译其中一个模块) 单独编译 k8s 某个模块

一、问题描述

        Kubernetes 源码自带了编译脚本,简单执行 make quick-release 即可编译

        但遗憾的是,该命令会编译所有的源码,耗时较长,这对于 Kubernetes 开发来说无疑是高代价的

        因此,我们有了单独编译部分代码的需求,本文就介绍一种简单的方法

二、部分编译步骤

        考虑到 Kubernetes 是基于 Golang 语言编写的,博主提供了一个容器化的 golang 环境,以便实现快速编译

        Dockerfile 地址:https://github.com/SataQiu/kube-build

        基于该 Dockerfile 编译好的镜像可以在 DockerHub 下载(shidaqiu/kube-build)

        基于此镜像,实现模块化编译仅需两步:

        1.  下载 kube-build 镜像

# docker pull shidaqiu/kube-build

        2.  以编译 kubeadm 模块为例,假设你从 GitHub 上克隆下来的 kubernetes 文件夹存在于 /root/src 目录

             执行以下命令,进入容器环境

# docker run -it -v /root/src:/usr/lib/go/src/k8s.io shidaqiu/kube-build

             然后,在容器内进入 kubeadm 模块路径,执行编译命令

# cd /usr/lib/go/src/k8s.io/kubernetes/cmd/kubeadm
# go build

             编译好的 kubeadm 二进制文件就自动生成在命令执行所在路径下了,整个过程也就1分钟(视机器配置)

             相比全量编译,该方法能有效缩短代码编译时间,提升开发效率!

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值