「连载」边缘计算(三十四)03-15:边缘部分源码分析(源码分析篇)

94 阅读4分钟

(接上篇)

组件源码分析

本节将对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…