首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >k8s源码分析------kube-apiserver分析(1)

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

作者头像
月牙寂道长
修改2018-04-03 11:39:07
1.6K0
修改2018-04-03 11:39:07
举报
文章被收录于专栏:月牙寂月牙寂

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

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

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

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

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

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

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

我们看到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这个后续再分析。

我们仅需看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

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

下面以create函数为例

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016年03月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档