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
相关推荐
数据皮皮侠AI17 分钟前
上市公司股票名称相似度(1990-2025)
大数据·人工智能·笔记·区块链·能源·1024程序员节
奋进的芋圆18 分钟前
Java 延时任务实现方案详解(适用于 Spring Boot 3)
java·spring boot·redis·rabbitmq
sxlishaobin34 分钟前
设计模式之桥接模式
java·设计模式·桥接模式
model200535 分钟前
alibaba linux3 系统盘网站迁移数据盘
java·服务器·前端
huaweichenai1 小时前
docker部署kkFileView实现文件预览功能
运维·docker·容器
荒诞硬汉1 小时前
JavaBean相关补充
java·开发语言
提笔忘字的帝国1 小时前
【教程】macOS 如何完全卸载 Java 开发环境
java·开发语言·macos
2501_941882481 小时前
从灰度发布到流量切分的互联网工程语法控制与多语言实现实践思路随笔分享
java·开发语言
華勳全栈2 小时前
两天开发完成智能体平台
java·spring·go
alonewolf_992 小时前
Spring MVC重点功能底层源码深度解析
java·spring·mvc