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

Posted 月牙寂

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了原创k8s源码分析----apiserver之APIGroupVersion相关的知识,希望对你有一定的参考价值。

【原创】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日





















以上是关于原创k8s源码分析----apiserver之APIGroupVersion的主要内容,如果未能解决你的问题,请参考以下文章

k8s之apiserver

k8s 之apiserver部署

k8s 之apiserver部署

k8s client-go源码分析 informer源码分析-概要分析

k8s APIserver 安全机制之 rbac 授权

k8s client-go源码分析 informer源码分析-初始化与启动分析