跳到主要内容

01.开启源码之旅

前置工作

  • 下载代码到本地:github

  • 执行命令 git checkout release-1.22

模块讲解

├── CHANGELOG
├── LICENSES
├── _output
├── api
├── build
├── cluster
├── cmd
├── docs
├── hack
├── logo
├── pkg
├── plugin
├── staging
| |── src
| |---client-go
├── test
├── third_party
└── vendor

我们从 client-go 这个目录开始咱们的源码之旅!

搭建开发环境

学习 k8s 源码的第一步就是在本机搭建开发环境,下面我会教大家如何搭建,我的本机为 mac 电脑 m1 芯片, 参考链接如下:https://github.com/kubernetes/community/blob/master/contributors/devel/development.md

  1. 安装一些软件
brew install coreutils ed findutils gawk gnu-sed gnu-tar grep make jq
  1. 将软件添加到 PATH,可以打开你的 .bashrc 文件,添加完后记得 source 下
GNUBINS="$(find `brew --prefix`/opt -type d -follow -name gnubin -print)"

for bindir in ${GNUBINS[@]}
do
export PATH=$bindir:$PATH
done

export PATH
  1. 安装etcd

在项目根目录执行 hack/install-etcd.sh 添加到 path export PATH="$GOPATH/src/k8s.io/kubernetes/third_party/etcd:${PATH}"

  1. 通过脚本构建各组件
build/run.sh make KUBE_BUILD_PLATFORMS=darwin/arm64

执行完毕后你在项目下 _output 目录下能够看到编译好的二进制

  1. 运行以下命令启动各组件
./hack/local-up-cluster.sh -O
  1. 获取 apiserver 启动命令
ps -ef | grep kube-apiserver
  1. kill -9 apiserver的进程号

  2. 打开goland,复制第六步的启动指令,开启调试,结果如下如

友情链接

https://zhuanlan.zhihu.com/p/610355836