您的位置:首页 > 其它

【原创】k8s源码分析----apiserver之APIGroupVersion

2016-03-25 16:20 393 查看
【原创】k8s源码分析----apiserver之APIGroupVersion

本文中转载自本人空间:http://user.qzone.qq.com/29185807/blog/1458892866

前面3篇文章,主要是根据程序处理流程进行跳转分析。经过这些流程的跳转分析,拨开乌云终见日。

我们剥掉那些不重要的部分,直接进入主要框架。

APIGroupVersion

在master中,api v1的初始化



生成了一个default的apigroupversion



下面进入到整个框架中最重要的数据结构



一、主要数据结构

1、mapper,其最重要的东西是里面的RESTMapping函数(在k8s.io\kubernetes\pkg\api\meta)



2、Codec,主要是一个编码,解码的接口 (在k8s.io\kubernetes\pkg\runtime)



3、typer (在k8s.io\kubernetes\pkg\runtime)



4、Creater (在k8s.io\kubernetes\pkg\runtime)



5、Convertor,不同版本之间的转换 (在k8s.io\kubernetes\pkg\runtime)



6、Linker (在k8s.io\kubernetes\pkg\runtime)



7、剩余的暂时不做分析

二、主要的工作流程

k8s.io\kubernetes\pkg\apiserver\apiserver.go

主要流程



下面根据主要流程,分解步骤

1、初始化installer



2、new webservice



3、开始注册







插一张mapping的结构体



插一张restscope的interface



我们继续







继续跳过其中一些代码





到此所有过程。

我们再追踪进去get的处理过程









从这个流程再加上之前的3篇文章,那么主要的处理流程,已经比较清晰了。那么剩下的就是mapper,codec,typer,Creater,convertor,linker等这些接口的实现的分析了。

龚浩华

qq 月牙寂 29185807

2016年3月25日

(版权声明:本文为作者原创,如需转载请通知本人,并标明出处和作者。擅自转载的,保留追究其侵权的权利。)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: