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
《Kubernetes 源码剖析与实战》,新⼈⾸单¥68
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
精选留言
由作者筛选后的优质留言将会公开显示,欢迎踊跃留言。
收起评论