1. kubernetes 总体架构

目前想对kubernetes 1.21 的源码进行一次阅读分析,本篇文章是对k8s的整体架构进行一个大致分析,先要搞清楚每个组件的功能和任务,在根据不同的组件进行深度的源码分析。

Kubernetes的总体架构图如下所示:

1.1 kubectl & client-go

下面介绍kubectl组件的具体作用:

1.2 Master节点组件

1.3 Node 节点组件

2. Kubernetes 源码的目录结构

目录名称说明
api/存放 OpenAPI/Swagger 的 spec 文件,包括 JSON、Protocol 的定义等
build/存放构建相关的脚本
cmd/存放可执行文件的入口代码,每一个可执行文件都会对应有一个 main 函数
docs/存放设计或者用户使用文档
hack/存放与构建、测试相关的脚本
pkg/存放核心库代码,可被项目内部或外部,直接引用
plugin/存放 kubernetes 的插件,例如认证插件、授权插件等
staging/存放部分核心库的暂存代码,也就是还没有集成到 pkg 目录的代码
test/存放测试工具,以及测试数据
third_party/存放第三方工具、代码或其他组件
translations/存放 i18n(国际化)语言包的相关文件,可以在不修改内部代码的情况下支持不同语言及地区
vendor/存放项目依赖的库代码,一般为第三方库代码