Kubernetes 源码剖析与实战
孔令飞
前腾讯云专家工程师
1300 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已更新 26 讲/共 55 讲
Kubernetes 源码剖析与实战
15
15
1.0x
00:00/00:00
登录|注册

24|Kubernetes路由构建源码剖析

你好,我是孔令飞。
在 kube-apiserver 源码中,路由构建是其最为核心的逻辑,本节课我将为你详细介绍 kube-apiserver 构建路由的流程和细节知识。

Kubernetes 路由构建主体流程

我们先从整体上来看下,Kubernetes 路由的构建主体流程,具体流程如下:
首先,kube-apiserver 在启动时,会读取所有的 RESTStorage,RESTStorage 以资源组为单位,保存了资源组下所有的版本及版本下所有资源的处理函数。
接着 kube-apiserver 的 New 方法中,会读取所有的 RESTStorage,并调用 InstallAPIs 方法,为所有 RESTStorage 安装路由,具体是调用 InstallAPIGroups 方法。
InstallAPIGroups 方法以资源组为单位,为所有的资源组安装路由。InstallAPIGroups 会遍历传入的所有 APIGroupInfo,读取 APIGroupInfo 中保存的资源组版本列表,并调用 installAPIResources 方法为具体某一个资源版本安装路由。
installAPIResources 方法负责为某一个资源版本安装路由,具体是调用 InstallREST 方法。在 InstallREST 方法中,会遍历 RESTStorage 中该版本下的所有资源类型,并为这些类型安装路由。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
  • 解释
  • 总结

1. Kubernetes路由构建主体流程包括读取RESTStorage、安装路由和创建核心的go-restful实例。 2. HTTP路由介绍,包括HTTP请求方法、URL和路由函数的构成。 3. Kubernetes中HTTP请求路径格式,包括apiVersion、resourceType、resourceName和namespace的介绍。 4. kube-apiserver中的路由种类包括FullHandlerChain、GoRestfulContainer、NonGoRestfulMux和Director。 5. GenericAPIServer结构体中包含了构建一个kube-apiserver的核心字段,如LoopbackClientConfig、admissionControl等。 6. APIServerHandler结构体包含了kube-apiserver用到的不同的http.Handlers,如FullHandlerChain、GoRestfulContainer、NonGoRestfulMux和Director。 7. GenericAPIServer结构体实例中的Handler字段用来设置HTTP路由。 8. kube-apiserver中的路由核心代码位于pkg/controlplane/instance.go文件中的方法中。 9. 通过APIServerHandler的定义,我们可以知道kube-apiserver中包含了4类路由:FullHandlerChain、GoRestfulContainer、NonGoRestfulMux和Director.

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Kubernetes 源码剖析与实战》
新⼈⾸单¥68
立即购买
登录 后留言

精选留言

由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论
显示
设置
留言
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部