k8s源码分析1-阅读源码准备工作
准备工作
找个合适的ide
- 比如goland
下载k8s源码
项目地址
- https://github.com/kubernetes/kubernetes
- 可以git下载,也可以下载zip包,还可以go get 下载
git clone https://github.com/kubernetes/kubernetes.git
本教程基于k8s 1.21 版本
k8s组件代码仓库地址(选择下载)
各个组件仓库地址
k8s.io/api
k8s.io/apiextensions-apiserver
k8s.io/apimachinery
k8s.io/apiserver
k8s.io/cli-runtime
k8s.io/client-go
k8s.io/cloud-provider
k8s.io/cluster-bootstrap
k8s.io/code-generator
k8s.io/component-base
k8s.io/controller-manager
k8s.io/cri-api
k8s.io/csi-api
k8s.io/csi-translation-lib
k8s.io/kube-aggregator
k8s.io/kube-controller-manager
k8s.io/kube-proxy
k8s.io/kube-scheduler
k8s.io/kubectl
k8s.io/kubelet
k8s.io/legacy-cloud-providers
k8s.io/metrics
k8s.io/mount-utils
k8s.io/pod-security-admission
k8s.io/sample-apiserver
k8s.io/sample-cli-plugin
k8s.io/sample-controller
go get 下载路径 k8s.io/xxxx
- 举例 :go get -d k8s.io/kube-controller-manager
阅读源码的注意事项
先理解功能
- 首先理解某一项功能,带着功能去看源码事半功倍,在某些晦涩难懂的地方还可以根据功能的实现反推代码目的
换位思考,如果你实现怎么做
- 可以时长反问自己,如果是你来实现这里怎么做
假设某一块方法去掉,会有什么效果
- 遇到不好理解的方法或者模块时,思考为什么要加这个,去掉会有什么问题就可以更好的理解
多看架构图,多总结
如对您有帮助,支持下呗!
微信

支付宝

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类
2017-11-17 源码安装ELK-5.6.10版本