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
- 安装一些软件
brew install coreutils ed findutils gawk gnu-sed gnu-tar grep make jq
- 将软件添加到 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
- 安装etcd
在项目根目录执行 hack/install-etcd.sh
添加到 path export PATH="$GOPATH/src/k8s.io/kubernetes/third_party/etcd:${PATH}"
- 通过脚本构建各组件
build/run.sh make KUBE_BUILD_PLATFORMS=darwin/arm64
执行完毕后你在项目下 _output 目录下能够看到编译好的二进制
- 运行以下命令启动各组件
./hack/local-up-cluster.sh -O
- 获取 apiserver 启动命令
ps -ef | grep kube-apiserver
kill -9 apiserver的进程号
打开goland,复制第六步的启动指令,开启调试,结果如下如