kubernetes kube-apiserver源码阅读5之路由

💡 原文中文,约20700字,阅读约需50分钟。
📝

内容提要

本文介绍了 kube-apiserver 后端存储的实现方式,包括 Storage、REST 和 Store 三个对象的构造和关系,以及 handler 对象处理请求的方法。同时,文章详细介绍了创建资源的具体实现,包括获取注册的默认 GVR、构造 reqscope 变量、创建 decoder、获取请求体等步骤。最后,文章介绍了将对象持久化到 ETCD 的过程。

🎯

关键要点

  • kube-apiserver 的后端存储实现涉及三个主要组件:apiExtensionsServer、kubeAPIServer 和 aggregatorServer。
  • 路由分为发现路由和资源路由,前者列出可用资源,后者具体到资源。
  • apiExtensionsServer 的创建过程包括获取配置、判断版本、创建存储对象和注册 API 组。
  • REST 对象作为用户请求与后端存储之间的桥梁,提供增删改查的接口。
  • 路由注册过程包括获取 OpenAPI 模型、安装 API 资源和创建 APIGroupVersion 对象。
  • handler 对象负责处理请求,具体实现包括解析请求参数和调用 REST 对象的方法。
  • Storage 对象封装了对后端存储的操作,主要通过 REST 对象与其交互。
  • ETCD 作为后端存储的实现,提供了数据的持久化功能。
  • 请求的处理链为 ResourceHandler -> REST -> Store -> store,确保数据的正确存取。
  • 创建资源的过程涉及获取默认 GVR、设置请求范围、解析请求体和持久化到 ETCD。
➡️

继续阅读