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

xiaoxiao2021-07-06  367

一、问题描述

        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分钟(视机器配置)

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

转载请注明原文地址: https://www.6miu.com/read-4821489.html

最新回复(0)