kubernetes kube-apiserver源码阅读1启动流程
内容提要
Kubernetes代码版本为v1.20.2。kube-apiserver是Kubernetes中最核心的组件,负责接受请求并将数据持久化到后端存储。apiserver提供增删改查以及监听的接口,包括认证、鉴权、准入控制、内部资源转发、外部资源转发、后端持久化和响应。启动流程包括创建Options对象、解析命令行参数、校验、补全Options对象、生成server、启动前准备和启动。CreateServerChain用于分配请求和服务发现,包括创建Config对象和三个组件:apiExtensionsServer、kubeAPIServer和aggregatorServer。PrepareRun方法准备运行APIAggregator和GenericAPIServer。
关键要点
-
Kubernetes代码版本为v1.20.2。
-
kube-apiserver是Kubernetes中最核心的组件,负责接受请求并将数据持久化到后端存储。
-
apiserver提供增删改查及监听的接口,包括认证、鉴权、准入控制、内部资源转发、外部资源转发、后端持久化和响应。
-
启动流程包括创建Options对象、解析命令行参数、校验、补全Options对象、生成server、启动前准备和启动。
-
CreateServerChain用于分配请求和服务发现,包括创建Config对象和三个组件:apiExtensionsServer、kubeAPIServer和aggregatorServer。
-
PrepareRun方法准备运行APIAggregator和GenericAPIServer。
-
生成代码文件的命令包括go mod vendor和./hack/update-codegen.sh。
-
启动流程的主要逻辑是创建Options对象、解析命令行参数、校验和补全Options对象,最后生成server并启动。
-
apiserver由三个组件组成:apiExtensionsServer、kubeAPIServer和aggregatorServer。
-
aggregatorServer负责聚合kubeAPIServer和apiExtensionsServer的资源,提供给调用方。