kubernetes 源码编译(ubuntu) kubernetes-1.34.1

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
相关推荐
紧跟先前的步伐7 小时前
Go AI Agent 实战 24|工具系统工程化收尾与阶段验收
人工智能·ai·golang·1024程序员节
学长毕设7 小时前
基于SpringBoot的实验室资产管理系统
java·spring boot·后端
吠品8 小时前
智谱开源 ZCode 之后,真正的考试才开始
单片机·嵌入式硬件·1024程序员节
zzu123zsw8 小时前
从臃肿的模板调用到声明式契约:深入 UniHttp 动态代理与多渠道生命周期扩展
java·spring boot·microsoft·unihttp
日日大王学编程8 小时前
#Feed 流项目复盘:Redis 时间线缓存与 Outbox 消息可靠性设计
golang·1024程序员节
源码集结号9 小时前
云诊所门诊系统源码,基于SpringBoot+Vue.js架构,支持多租户设计与Docker容器化部署
java·spring boot·源码·医院信息系统·门诊系统·诊所系统
论文复现现场10 小时前
WRF、FEA 能用 L40S 加速吗?求解器检查、断点恢复与长期运行
java·数据库·算法·wrf·有限元分析·gpu计算·断点续算
啃瓜子的松鼠10 小时前
泛微OAe9-后端二开异步调用
java
秋天的怀念_David11 小时前
第二十一夜 · 数字黑洞与西西弗斯的惩罚
java·程序人生·算法
外收内放11 小时前
Python基础语法练习题(73)
java·前端·python