kubernetes kube-apiserver源码阅读1启动流程

💡 原文中文,约5100字,阅读约需12分钟。
📝

内容提要

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的资源,提供给调用方。

➡️

继续阅读