cloudhub源码分析
edgecontroller
initConfig
func initConfig() {
config.InitBufferConfig() // 初始化云边通信相关channel的管道大小
config.InitContextConfig() //设置edgecontroller默认发/收/响应模块的名称
config.InitKubeConfig() //初始化kube相关的名称
config.InitLoadConfig() // 设置相关携程数量
config.InitMessageLayerConfig() // 设置上下文类型
}NewDownstreamController
NewPodManager
func NewPodManager(kubeClient *kubernetes.Clientset, namespace, nodeName string) (*PodManager, error) {
var lw *cache.ListWatch
if "" == nodeName {
lw = cache.NewListWatchFromClient(kubeClient.CoreV1().RESTClient(), "pods", namespace, fields.Everything())
} else {
selector := fields.OneTermEqualSelector("spec.nodeName", nodeName)
lw = cache.NewListWatchFromClient(kubeClient.CoreV1().RESTClient(), "pods", namespace, selector)
}
realEvents := make(chan watch.Event, config.PodEventBuffer)
mergedEvents := make(chan watch.Event, config.PodEventBuffer)
rh := NewCommonResourceEventHandler(realEvents)
si := cache.NewSharedInformer(lw, &v1.Pod{}, 0)
si.AddEventHandler(rh)
pm := &PodManager{realEvents: realEvents, mergedEvents: mergedEvents}
stopNever := make(chan struct{})
go si.Run(stopNever)
go pm.merge()
return pm, nil
}NewConfigMapManager
initLocating
AddOrUpdatePod
Start
NewUpstreamController
Last updated