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

时间: 2024-12-24 10:45:10

【原创】k8s源码分析----apiserver之APIGroupVersion的相关文章

【原创】k8s源码分析-----kubectl(2)Factory

本文QQ空间的链接:http://user.qzone.qq.com/29185807/blog/1461036130 本文csdn博文的链接:http://blog.csdn.net/screscent/article/details/51188790 源码为k8s v1.1.1 1.原因 首先讲讲为啥,我们要讲解Factory 代码在k8s.io\kubernetes\cmd\kubectl 先从main函数入口来说 main函数很简单,进来就直接构建了一个cmd,然后调用了Execute

【原创】k8s源码分析-----kubectl(3)主要框架

本文QQ空间的链接:http://user.qzone.qq.com/29185807/blog/1461123088 本文csdn博文的链接:http://blog.csdn.net/screscent/article/details/51199351 源码为k8s v1.1.1 1.整体流程 我们先整体的流程走一遍,不用太过于关心看不看的懂,先有个整体的流程概念,后续再一步一步分析 1.1 main 先从main开始 代码在k8s.io\kubernetes\cmd\kubectl\kube

【原创】k8s源码分析-----kubelet(4)imageManager

本文qq空间链接:http://user.qzone.qq.com/29185807/blog/1460429307 本文csdn博客链接:http://blog.csdn.net/screscent/article/details/51131261 源码为k8s v1.1.1稳定版本 2.3.imageManager 1.参数 代码在k8s.io\kubernetes\cmd\kubelet\app中 结构体变量 type KubeletServer struct { ... ImageGCH

【原创】k8s源码分析-----kube-proxy(2)ProxyServer

本文QQ空间链接:http://user.qzone.qq.com/29185807/blog/1460685179 本文csdn博客链接:http://blog.csdn.net/screscent/article/details/51159168 k8s源码为v1.1.1稳定版本 1.ProxyServer的构建与主流程 源码在k8s.io\kubernetes\cmd\kube-proxy main函数入口 这个就不再多说了,这种结构已经见多了 继续进入源码k8s.io\kubernete

《k8s 源码分析》- Custom Controller 之 Informer

Custom Controller 之 Informer 概述 架构概览 reflector - List & Watch API Server Reflector 对象 ListAndWatch watchHandler - add obj to delta fifo Informer (controller) - pop obj from delta fifo Controller processLoop Add obj to Indexer (Thread safe store) shar

【原创】k8s源码分析-----kube-scheduler

本文转自本人空间:http://user.qzone.qq.com/29185807/blog/1459831332 源码为k8s v1.1.1稳定版本 一.主要流程 1.main入口 源码在k8s.io/kubernetes/plugin/cmd/kube-scheduler 这种封装是k8s里面一贯的封装风格,就不再多说了 源码在k8s.io/kubernetes/plugin/cmd/kube-scheduler/app 继续往下 真正的入口 下面有个ratelimiter 在factor

【原创】k8s源码分析-----kubectl(1)api.RESTMapper

本文QQ空间链接:http://user.qzone.qq.com/29185807/blog/1460961715 本文csdn博文链接:http://blog.csdn.net/screscent/article/details/51179485 源码为k8s v1.1.1稳定版本 api. RESTMapper是kube-apiserver和kubectl的基础,在讲解kube-apiserver的时候,我们就有简单的讲解api. RESTMapper,但并没有系统的讲解.那么这一章,我们

【原创】k8s源码分析-----kubelet(5)diskSpaceManager

本文qq空间链接:http://user.qzone.qq.com/29185807/blog/1460448039 本文csdn博客链接:http://blog.csdn.net/screscent/article/details/51134293 源码为k8s v1.1.1稳定版本 2.4.diskSpaceManager 1.参数 代码在k8s.io\kubernetes\cmd\kubelet\app中 结构体变量 type KubeletServer struct { ... LowD

【原创】k8s源码分析-----kubelet(3)ContainerGC

本人空间链接:http://user.qzone.qq.com/29185807/blog/1460080827 源码为k8s v1.1.1稳定版本 2.2 ContainerGC 1.参数 代码在k8s.io\kubernetes\cmd\kubelet\app中 结构体变量 type KubeletServer struct { ... MinimumGCAge                   time.Duration MaxContainerCount              in