(接上篇)
组件源码分析
本节将对Kubernetes的核心组件的源码进行梳理和分析。这些组件包括控制节点的kube-apiserver、kube-controller-manager、kube-scheduler,计算节点的kube-let、kube-proxy。
配置文件读取
截至目前,我们已经分析了KubeEdge源码整体架构以及KubeEdge项目中各组件的源码入口。本节将分析KubeEdge项目中CloudCore和EdgeCore组件都会用到的读取配置文件的逻辑。
配置文件读取流程剖析
KubeEdge各模块配置文件读取使用的库是相同的,流程也是高度相似的。所以,这里只对KubeEdge其中一个模块读取配置文件的流程进行深入剖析。关于其他模块的配置文件的读取,读者可以在本节的基础上自行剖析。
(1)配置文件读取流程剖析
从CloudCore组件的cloudhub模块的配置初始化切入,对KubeEdge的配置文件读取流程进行剖析,具体如下所示。
| KubeEdge/cloud/edge/pkg/cloudhub/cloudhub.go |
|---|
| func (a *cloudHub) Start(c *beehiveContext.Context) {...initHubConfig()...} |
initHubConfig()函数定义具体如下所示。
| KubeEdge/cloud/pkg/cloudhub/cloudhub.go |
|---|
| import(..."GitHub.com/KubeEdge/beehive/pkg/common/config"...) func initHubConfig() {cafile, err := config.CONFIG.GetValue("cloudhub.ca").ToString()...certfile, err := config.CONFIG.GetValue("cloudhub.cert").ToString()...keyfile, err := config.CONFIG.GetValue("cloudhub.key").ToString()... util.HubConfig.ProtocolUDS, _ = config.CONFIG.GetValue("cloudhub.enable_uds").ToBool() util.HubConfig.Address, _ = config.CONFIG.GetValue("cloudhub.address").ToString()util.HubConfig.Port, _ = config.CONFIG.GetValue("cloudhub.port").ToInt()util.HubConfig.QuicPort, _ = config.CONFIG.GetValue("cloudhub.quic_port").ToInt()util.HubConfig.MaxIncomingStreams, _ = config.CONFIG.GetValue("cloudhub.max_incomingstreams").ToInt()util.HubConfig.UDSAddress, _ = config.CONFIG.GetValue("cloudhub.uds_address").ToString()util.HubConfig.KeepaliveInterval, _ = config.CONFIG.GetValue("cloudhub.keepalive-interval").ToInt()util.HubConfig.WriteTimeout, _ = config.CONFIG.GetValue("cloudhub.write-timeout").ToInt()util.HubConfig.NodeLimit, _ = config.CONFIG.GetValue("cloudhub.node-limit").ToInt() ...} |
「未完待续……」 点击下方标题可阅读技术文章
「连载」边缘计算(一)01-16:边缘计算系统(基础篇)
juejin.cn/post/732453…
「连载」边缘计算(二)01-16:边缘计算系统(基础篇)
juejin.cn/post/732452…
「连载」边缘计算(三)01-17:边缘计算系统(基础篇)
juejin.cn/post/732488…
「连载」边缘计算(四)01-18:边缘计算系统(基础篇)
juejin.cn/post/732525…
「连载」边缘计算(五)01-19:云、边、端的部署与配置(基础篇)
juejin.cn/post/732542…
「连载」边缘计算(六)01-22:云、边、端的部署与配置(基础篇)
juejin.cn/post/732657…
「连载」边缘计算(七)01-23:云、边、端的部署与配置(基础篇)
juejin.cn/post/732686…
「连载」边缘计算(八)01-24:云、边、端的部署与配置(基础篇)
juejin.cn/post/732719…
「连载」边缘计算(九)01-25:云、边、端的部署与配置(基础篇)
juejin.cn/post/732768…
「连载」边缘计算(十)01-26:云、边、端的部署与配置(基础篇)
juejin.cn/post/732798…
「连载」边缘计算(十一)01-29:云、边、端的部署与配置(基础篇)
juejin.cn/spost/73290…
「连载」边缘计算(十二)01-30:云、边、端的部署与配置(基础篇)
juejin.cn/post/732947…
「连载」边缘计算(十三)01-31:云、边、端的部署与配置(基础篇)
juejin.cn/post/732979…
「连载」边缘计算(十四)02-01:云、边、端的部署与配置(基础篇)
juejin.cn/post/733029…
「连载」边缘计算(十五)02-02:云、边、端的部署与配置(基础篇)
juejin.cn/post/733054…
「连载」边缘计算(十六)02-18:云、边、端的部署与配置(基础篇)
juejin.cn/post/733653…
「连载」边缘计算(十七)02-19:边缘计算系统逻辑架构(原理篇)
juejin.cn/post/733686…
「连载」边缘计算(十八)02-20:边缘计算系统逻辑架构(原理篇)
juejin.cn/post/733723…
「连载」边缘计算(十九)02-21:边缘计算系统逻辑架构(原理篇)
juejin.cn/post/733758…
「连载」边缘计算(二十)02-22:边缘部分原理解析(原理篇)
juejin.cn/post/733797…
「连载」边缘计算(二十一)02-23:边缘部分原理解析(原理篇)
juejin.cn/post/733830…
「连载」边缘计算(二十二)02-26:边缘部分原理解析(原理篇)
juejin.cn/post/733946…
「连载」边缘计算(二十三)02-27:边缘部分原理解析(原理篇)
juejin.cn/post/733980…
「连载」边缘计算(二十四)02-28:边缘部分原理解析(原理篇)
juejin.cn/post/734019…
「连载」边缘计算(二十五)03-04:边缘部分原理解析(原理篇)
juejin.cn/post/734175…
「连载」边缘计算(二十六)03-05:边缘部分原理解析(原理篇)
juejin.cn/post/734240…
「连载」边缘计算(二十七)03-06:边缘部分源码分析(源码分析篇)
juejin.cn/post/734279…
「连载」边缘计算(二十八)03-07:边缘部分源码分析(源码分析篇)
juejin.cn/post/734324…
「连载」边缘计算(二十九)03-08:边缘部分源码分析(源码分析篇)
juejin.cn/post/734353…
「连载」边缘计算(三十)03-11:边缘部分源码分析(源码分析篇)
juejin.cn/post/734457…
「连载」边缘计算(三十一)03-12:边缘部分源码分析(源码分析篇)
juejin.cn/post/734507…
「连载」边缘计算(三十二)03-13:边缘部分源码分析(源码分析篇)
juejin.cn/post/734542…
「连载」边缘计算(三十三)03-14:边缘部分源码分析(源码分析篇)
juejin.cn/post/734582…