本文共 1003 字,大约阅读时间需要 3 分钟。
由本人空间转过来,空间地址 源码版本为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函数为例
龚浩华 qq 月牙寂 道长 29185807 2016年3月17日 (版权声明:本文为作者原创,如需转载请通知本人,并标明出处和作者。擅自转载的,保留追究其侵权的权利。) 如果你觉得本文对你有帮助,可以转到你的朋友圈,让更多人一起学习。 第一时间获取文章,可以关注本人公众号:月牙寂道长,也可以扫码关注
|