【原创】k8s源码分析------kube-apiserver分析(1)


由本人空间转过来,空间地址  http://user.qzone.qq.com/29185807/blog/1458208552

源码版本为v1.1.1稳定版本

       从函数main开始 文件k8s.io/kubernetes/cmd/kube-apiserver/apiserver.go



 

我们进入k8s.io/kubernetes/cmd/kube-apiserver/app目录中的server.go



【原创】k8s源码分析------kube-apiserver分析(1)_第1张图片 


 

我们看到apiserver中有很多参数,我们暂时不管。NewAPIServer也只是做一些参数赋值。

 

 

我们具体看Run函数

 

其中有一个地方为



newEtcd的解析为:



 

生成了一个etcd的client,然后通过etcdhelper进行了封装。

然后将其注册到了APIGroup中

       storageDestinations.AddAPIGroup("", etcdStorage)

 

在后面的master初始化中,将APIGroup赋给了config中


 

紧接着



 

我们继续看master中的代码k8s.io\kubernetes\pkg\master\master.go

New函数里面主要做了一些参数赋值,然后就是定义了restful的container。

关于restful这个后续再分析。

【原创】k8s源码分析------kube-apiserver分析(1)_第2张图片


 

我们仅需看master.init



init中从StorageDestinations中获取到了之前注册在里面的apigroup,也就是变量为etcdStorage的etcdhelper结构体

 

在这里生成了一个podstorage

继续跟踪k8s.io\kubernetes\pkg\registry\pod\etcd\etcd.go

NewStorage这个函数中其实是对etcdgeneric.Etcd的一个封装。并且最重要的参数etcdhelper传给了etcdgeneric.Etcd的Storage成员变量




 

 

 

我们再继续跟踪

k8s.io\kubernetes\pkg\registry\generic\etcd

【原创】k8s源码分析------kube-apiserver分析(1)_第3张图片

【原创】k8s源码分析------kube-apiserver分析(1)_第4张图片


 

在这里面呢,有一些函数对象变量,还有一个最重要的是Storage

下面以create函数为例

 【原创】k8s源码分析------kube-apiserver分析(1)_第5张图片

龚浩华

qq 月牙寂 29185807

2016年3月17日


 

 

龚浩华

qq 月牙寂 29185807

2016年3月17日


你可能感兴趣的:(分布式,golang,容器,k8s)