首页
Kubernetes 源码开发之旅
GitHub (opens new window)

brook-w

K8s 源码学习、二次开发、自定义组件开发
首页
Kubernetes 源码开发之旅
GitHub (opens new window)
  • (一)环境搭建
    • 视频地址
    • 安装虚拟机
    • 虚拟机环境准备
      • 1. 换源(可以直接去阿里或者清华源中心复制命令)
      • 2. 安装构建工具
      • 3. 安装 Docker
      • 4. 修改 containerd 所用的镜像库地址
      • 5. 安装rsync
      • 1. 下载文件
      • 2. 安装编译工具
      • 3. 编译,安装
      • 6. 安装辅助工具
      • 7. 安装 etcd
      • 8. 安装 Golang(1.24及以上需要golang 1.18)
      • 1. 下载 Go Sdk
      • 2. 配置环境变量
      • 3. 配置 GO 代理
      • 4. 配置 /etc/sudoers
      • 9. 安装CFSSL
    • 下载kubernetes代码
  • (二)编译运行并调试源码
  • (三)API Server 源码刨析

  • (四)Aggregated API Server 的实现
  • Kubernetes 源码开发之旅
brook-w
2022-12-01
目录

(一)环境搭建

# 视频地址 (opens new window)

# 安装虚拟机

这里环境采用虚拟机安装,VMWare17 Pro、Ubuntu:20.04

环境设置为:

自定义 Custom Server- Ubuntu:20.04

  • Kubernetes:v1.24
  • Go:v1.18
  • 8c8m 100g

VMWare 和 Ubuntu 安装包虚、拟机镜像、安装过程掠过,默认虚拟机环境已经准备完毕

# 虚拟机环境准备

# 1. 换源(可以直接去阿里或者清华源中心复制命令)

更换 apt 源为阿里源

sudo mv /etc/apt/sources.list /etc/apt/sources.list.bak
sudo vim /etc/apt/sources.list

deb http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

sudo apt-get update

# 2. 安装构建工具

sudo apt install build-essential

# 3. 安装 Docker

curl -sSL https://get.docker.com/ | sh # or curl -sSL https://get.daocloud.io/docker | sh

# 4. 修改 containerd 所用的镜像库地址

安装完 docker 默认就有 containerd

containerd config default > ~/config.toml
vim  ~/config.toml
# 修改
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
        [plugins."io.containerd.grpc.v1.cri".registry.mirrors."docker.io"]
          endpoint = ["https://hub-mirror.c.163.com", "https://registry-1.docker.io"]

重新复制回配置文件并启动 containerd

sudo mv ~/config.toml /etc/containerd/config.toml
sudo systemctl restart containerd

# 5. 安装rsync

# 1. 下载文件

mkdir ~/software && cd software
wget https://github.com/WayneD/rsync/archive/refs/tags/v3.2.4.tar.gz
tar -xf v3.2.4.tar.gz
cd rsync-3.2.4

# 2. 安装编译工具

sudo apt install -y \
    gcc g++ gawk autoconf \
    automake python3-cmarkgfm \
    acl libacl1-dev \
    attr libattr1-dev \
    libxxhash-dev \
    libzstd-dev \
    liblz4-dev \
    libssl-dev \
    vim

# 3. 编译,安装

./configure
make
sudo cp ./rsync /usr/local/bin/
sudo cp ./rsync-ssl /usr/local/bin/

# 6. 安装辅助工具

sudo apt install jq -y
sudo apt install python3-pip -y
pip install pyyaml

# 7. 安装 etcd

ETCD_VER=v3.5.4  # 设置 etcd 版本
curl -L https://storage.googleapis.com/etcd/${ETCD_VER}/etcd-${ETCD_VER}-linux-amd64.tar.gz -o /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz
mkdir -p ~/software/etcd
tar xzvf /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz -C ~/software/etcd --strip-components=1
rm -f /tmp/etcd-${ETCD_VER}-linux-amd64.tar.gz

配置环境变量

sudo vim ~/.bashrc
export PATH="/home/${USER}/software/etcd:${PATH}"
source ~/.bashrc

# 8. 安装 Golang(1.24及以上需要golang 1.18)

# 1. 下载 Go Sdk

wget https://golang.google.cn/dl/go1.18.2.linux-amd64.tar.gz
sudo rm -rf /usr/local/go && sudo tar -C /usr/local -xzf go1.18.2.linux-amd64.tar.gz

# 2. 配置环境变量

export GOPATH="/home/${USER}/go"
export GOBIN="/home/${USER}/go/bin"
export PATH="/usr/local/go/bin:$GOPATH/bin:${PATH}"

# 3. 配置 GO 代理

go env -w GO111MODULE="on"
go env -w GOPROXY="https://goproxy.cn,direct"

# 4. 配置 /etc/sudoers

如果不加入 /etc/sudoers 就会出现这个错误 https://github.com/kubernetes/kubernetes/issues/3184

sudo vim /etc/sudoers
# secure_path 一行加入如下目录:
/usr/local/go/bin:/home/<用户名>/etcd:/home/<用户名>/go/bin

# 9. 安装CFSSL

go install github.com/cloudflare/cfssl/cmd/...@latest

# 下载kubernetes代码

mkdir -p $GOPATH/src/k8s.io  && cd $GOPATH/src/k8s.io
git clone https://github.com/kubernetes/kubernetes.git
# 加速连接
git clone https://github.91chi.fun/https://github.com/kubernetes/kubernetes.git
git checkout -b my-kube-1.24 v1.24.0
上次更新: 2023/02/15, 03:43:27
(二)编译运行并调试源码

(二)编译运行并调试源码→

最近更新
01
概述
02-10
02
(四)Aggregated API Server 的实现
02-10
03
8. 登录与鉴权的实现
02-09
更多文章>
友站: www.brook-w.com
Theme by Vdoing | Copyright © 2019-2023 Brook-w | GPL License
京ICP备2020045721号-2
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式