k8s源码分析------kube-apiserver分析(2)

说明:此文章为腾讯云机器自动从本人csdn博客搬迁过来。是本人授权操作。

申明:无本人授权,不可转载本文。如有转载,本人保留追究其法律责任的权利。

龚浩华,QQ 29185807,月牙寂 道长

第一时间获取文章,可以关注本人公众号 月牙寂道长 yueyajidaozhang

接着上一篇。

我们回到k8s.io\kubernetes\pkg\master\master.go

func (m *Master) init(c *Config) {

从代码里看,里面生成了很多storage,podstorage,eventstorage,nodestorage

然后在master的storage变量中注册了这些storage,其实这些就是restful的路由,但还不是restful的路由格式。

那么这些路由是在哪里注册的呢

我们继续往下看代码

还是init函数中,我们看到了api_v1().InstallREST。这里面就是将storage的路由转换成restful的路由,并注册到handlercontainer中

另外底下还有个extensions的InstallREST

我们现在回过头去看看,有两个重要的变量mux,handlerContainer

这两个变量是在master初始化的时候赋值的(函数为New)

并且将mux与container挂钩

我们回到init。

我们看到在api注册完了之后,就是初始化handler(http的handler),其实handler就是上文提到的mux

master的初始化已经完了,现在我们要回到k8s.io\kubernetes\cmd\kube-apiserver\app\server.go 的Run函数中继续往下。

在Run函数末尾,能够很清晰的看到 master中的handle与httpserver挂钩。至此一个httpserver便启动了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Django Scrapy

Django安装及简单使用1.4

Django安装及简单使用1.4 代码都在github: URL:https://github.com/njxshr/codes/tree/master/t...

2606
来自专栏Java技术栈

Spring Boot国际化支持

本章将讲解如何在Spring Boot和Thymeleaf中做页面模板国际化的支持,根据系统语言环境或者session中的语言来自动读取不同环境中的文字。 国际...

5166
来自专栏林德熙的博客

win10 uwp 获取文件夹出错

参见:http://stackoverflow.com/a/42969965/6116637

471
来自专栏Python、Flask、Django

Ajax与php进行数据交互

1002
来自专栏算法与数据结构

实验9-10 编写一个存储过程proc_test_stat3

b)验证结果中的start表示开始实验,success表示成功结束实验,error表示验证错误;

882
来自专栏嵌入式程序猿

三张图看懂MQX下多任务的调试

在基于MQX RTOS的应用软件开发中,我们经常会遇到多任务的创建和调试,今天我们就来看看多任务的调试。 在IAR环境下,基于MQX操作系统的多任务调试其实还是...

2796
来自专栏Android机动车

Android单元测试

Android的单元测试有两种方式:本地单元测试和设备单元测试,本地单元测试可以直接运行在本地机器上面的Java Virtual Machine(JVM)。它的...

361
来自专栏计算机编程

ionic4 -- angular 跳转页面

ionic4 与前辈们最大的不同就是通过angular引入了route,这样每次跳转的时候只需要直接跳转对应的路由地址就可以了,给了路由器上的解耦,也解决了原来...

922
来自专栏Java帮帮-微信公众号-技术文章全总结

同一Tomcat不同项目如何实现session共享【面试+工作】

1294
来自专栏小古哥的博客园

从输入网址到页面呈现的过程

WEB应用的本质 1、用户请求远程资源 2、浏览器查找远程资源,打包用户请求并发送 3、服务器根据请求,通过逻辑计算,回复结果给浏览器 4、浏览器解析结果,呈现...

2637

扫描关注云+社区