kubernetes-1.34.1 源码包 编译
1.安装依赖工具
bash
sudo apt-get update && sudo apt-get install -y \
build-essential \
gcc \
g++ \
make \
git \
curl \
tar \
zip \
unzip \
python3 \
python3-pip \
pkg-config \
libseccomp-dev \
libssl-dev \
libelf-dev
# 安装 Docker(用于构建容器镜像,可选)
bash
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
sudo usermod -aG docker $USER && newgrp docker
2. 安装 Go 环境
Kubernetes 1.34.1 要求特定版本的 Go(通常是 1.24.0,需参考源码中的 go.mod 确认):
# 下载 Go(以 1.24.0 为例)(或安装包安装,编译时,按需编译)
bash
wget https://dl.google.com/go/go1.24.0.linux-amd64.tar.gz
sudo tar -C /usr/local -xzf go1.24.0.linux-amd64.tar.gz
# 配置环境变量
bash
echo 'export PATH=$PATH:/usr/local/go/bin' >> ~/.bashrc
echo 'export GOPATH=$HOME/go' >> ~/.bashrc
source ~/.bashrc
# 验证 Go 版本
bash
go version # 应输出 go1.24.0
# 全局变量配置
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/go
export GOPATH=$HOME/go
export GOROOT=/usr/local/go
export PATH=$GOROOT/bin:$PATH
3. 安装 Bazel
Kubernetes 主要使用 Bazel 构建,需安装对应版本(参考源码 WORKSPACE 文件中的 bazel_version):
安装 Bazelisk(Bazel 版本管理器,自动匹配所需版本)
bazel-8.4.2-installer-linux-x86_64.sh
(依赖jdk版本)
验证 Bazel 版本
bazel --version # 会自动下载并使用源码所需的版本
4.获取并准备源码
解压源码包kubernetes-1.34.1.tar.gz
tar -zxvf kubernetes-1.34.1.tar.gz
cd kubernetes-1.34.1
同步依赖的子模块(部分组件依赖外部仓库)
git init # 若源码包未包含 git 信息,需初始化
git submodule update --init --recursive
5.编译 Kubernetes 所有组件
bash
KUBE_BUILD_PLATFORMS=linux/amd64 make all GOFLAGS=-v GOGCFLAGS="-N -l"
输出目录out_put/linux/bin