Pilot #
若无特别说明,本文是根据 Istio 1.6.5 进行分析。
pilot discovery #
函数调用栈 #
- NewServer
- initConfigController
- initServiceControllers
- NewServiceDiscovery
- RegisterEventHandler: 注册 serviceEntryKind 与 workloadEntryKind 的 handler
- NewServiceDiscovery
- initDiscoveryService
- initEventHandlers
- 定义 handler
- s.EnvoyXdsServer.ConfigUpdate(pushReq): 真正做的事情,更新 envoy xds 配置
- 添加 handler
- 定义 handler
- initEventHandlers
- discoveryServer.Start(stop)
- (
crd controller
) Run- informer.Run(stop)
- cache.WaitForCacheSync(stop, c.HasSynced): 等待 Informer 完成一次本地缓存的数据同步操作
- c.queue.Run(stop): 执行
queue.tasks
,即cacheHandler.onEvent
- (
叶王 © 2013-2024 版权所有。如果本文档对你有所帮助,可以请作者喝饮料。