天天热议:【云原生 • Prometheus】云原生kubernetes服务发现原理图解
云原生kubernetes服务发现原理图解
概述
上节分析了Prometheus
服务发现核心流程(如下图),Discoverer
基于不同协议发现采集点,通过channel
通知到updater
协程,然后更新到discoveryManager
结构体trargets
字段中,最终由sender
协程将discoveryManager
的targets
字段数据发送给scrape
采集模块。
(资料图)
Discoverer
定义的接口类型,不同的服务发现协议基于该接口进行实现:
type Discoverer interface { // Run hands a channel to the discovery provider (Consul, DNS, etc.) through which // it can send updated target groups. It must return when the context is canceled. // It should not close the update channel on returning. Run(ctx context.Context, up chan<- []*targetgroup.Group)}
k8s协议配置
Prometheus
本身就是作为云原生监控出现的,所以对云原生服务发现支持具有天然优势。kubernetes_sd_configs
服务发现协议核心原理就是利用API Server
提供的Rest接口
获取到云原生集群中的POD
、Service
、Node
、Endpoints
、Endpointslice
、Ingress
等对象的元数据,并基于这些信息生成Prometheus
采集点,并且可以随着云原生集群状态变更进行动态实时刷新。
❝
kubernetes
云原生集群的POD
、Service
、Node
、Ingress
等对象元数据信息都被存储到etcd
数据库中,并通过API Server
组件暴露的Rest
接口方式提供访问或操作这些对象数据信息。 ❞
「kubernetes_sd_configs
配置示例:」
- job_name: kubernetes-pod kubernetes_sd_configs: - role: pod namespaces: names: - "test01" api_server: https://apiserver.simon:6443 bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token tls_config: ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
配置说明:
api_server
指定API Server
地址,出于安全考虑,这些接口是带有安全认证的,bearer_token_file
和ca_file
则指定访问API Server
使用到的认证信息;role
指定基于云原生集群中哪种对象类型做服务发现,支持POD
、Service
、Node
、Endpoints
、Endpointslice
、Ingress
六种类型;namespaces
指定作用于哪个云原生命名空间下的对象,不配置则对所有的云原生命名空间生效;「为什么没有配置api server信息也可以正常进行服务发现?」
很多时候我们并不需要配置api server
相关信息也可以进行服务发现,如我们将上面示例简化如下写法:
- job_name: kubernetes-pod kubernetes_sd_configs: - role: pod namespaces: names: - "test01"
一般Prometheus
部署在监控云原生集群上,从 Pod
使用 Kubernetes API
官方客户端库(client-go
)提供了更为简便的方法:rest.InClusterConfig()
。 API Server
地址是从POD
的环境变量KUBERNETES_SERVICE_HOST
和KUBERNETES_SERVICE_PORT
构建出来, token
以及 ca
信息从POD
固定的文件中获取,因此这种场景下kubernetes_sd_configs
中api_server
和ca_file
是不需要配置的。
❝
client-go
是kubernetes
官方提供的go
语言的客户端库,go
应用使用该库可以访问kubernetes
的API Server
,这样我们就能通过编程来对kubernetes
资源进行增删改查操作。 ❞
Informer机制
从之前分析的服务发现协议接口设计得知,了解k8s
服务发现协议入口在discovery/kubernetes.go
的Run
方法:
Run
方法中switch
罗列出不同role
的处理逻辑,刚好和配置示例中role
支持的六种云原生对象类型对应,只是基于不同的对象进行服务发现,基本原理都是一致的。
云原生服务发现基本原理是访问API Server
获取到云原生集群资源对象,Prometheus
与API Server
进行交互这里使用到的是client-go
官方客户端里的Informer
核心工具包。Informer
底层使用ListWatch
机制,在Informer
首次启动时,会调用List API
获取所有最新版本的资源对象,缓存在内存中,然后再通过Watch API
来监听这些对象的变化,去维护这份缓存,降低API Server
的负载。除了ListWatch
,Informer
还可以注册自定义事件处理逻辑,之后如果监听到事件变化就会调用对应的用户自定义事件处理逻辑,这样就实现了用户业务逻辑扩展。
Informer
机制工作流程如下图:
Informer
机制本身比较复杂,这里先暂时不太具体说明,只需要理解Prometheus
使用Informer
机制获取和监听云原生资源对象,即上图中只有「绿色框部分是自定义业务逻辑」,其它都是client-go
框架informer
工具包提供的功能。
这其中的关键就是注册自定义AddFunc
、DeleteFunc
和UpdateFunc
三种事件处理器,分别对应增、删、改操作,当触发对应操作后,事件处理器就会被回调感知到。比如云原生集群新增一个POD
资源对象,则会触发AddFunc
处理器,该处理器并不做复杂的业务处理,只是将该对象的key
放入到Workqueue
队列中,然后Process Item
组件作为消费端,不停从Workqueue
中提取数据获取到新增POD
的key
,然后交由Handle Object
组件,该组件通过Indexer
组件提供的GetByKey()
查询到该新增POD
的所有元数据信息,然后基于该POD
元数据就可以构建采集点信息,这样就实现kubernetes
服务发现。
「为什么需要Workqueue队列?」
Resource Event Handlers
组件注册自定义事件处理器,获取到事件时只是把对象key
放入到Workerqueue
中这种简单操作,而没有直接调用Handle Object
进行事件处理,这里主要是避免阻塞影响整个informer
框架运行。如果Handle Object
比较耗时放到Resource Event Handlers
组件中直接处理,可能就会影响到④⑤功能,所以这里引入Workqueue
类似于MQ
功能实现解耦。
源码分析
熟悉了上面Informer机制
,下面以role=POD
为例结合Prometheus
源码梳理下上面流程。
1、创建和API Server
交互底层使用的ListWatch
工具;
2、基于ListWatch
创建Informer
;
3、注册资源事件,分别对应资源创建、资源删除和资源更新事件处理;
❝ 这里的
podAddCount
、podDeleteCount
和podUpdateCount
分别对应下面三个指标序列,指标含义也比较明显:prometheus_sd_kubernetes_events_total(role="pod", event="add")
prometheus_sd_kubernetes_events_total(role="pod", event="delete")
prometheus_sd_kubernetes_events_total(role="pod", event="update")
role
标识资源类型,包括:"endpointslice", "endpoints", "node", "pod", "service", "ingress"
五种类型;event
标识事件类型,包括:"add", "delete", "update"
三种类型。 ❞
4、事件处理,AddFunc
、DeleteFunc
和UpdateFunc
注册的事件处理逻辑一样,处理逻辑也比较简单:就是获取资源对象key
,并将其写入到Workqueue
中;
❝ 对于
POD
资源,这里的key
就是:namespace/pod_name
格式,比如key=test01/nginx-deployment-5ffc5bf56c-n2pl8
。 ❞
5、给Workqueue
注册一个无限循环处理逻辑,就能持续从Workqueue
中取出key
进行处理;
❝ 针对
Pod
里的每个Container
上的每个port
,都会生成一个对应采集点target
,其中__address__
就是PodIP
+port
组合。 ❞
6、最后启动Informer
,让整个流程运转起来;
标签:
相关推荐
-
天天热议:【云原生 • Prometheus】云原生kubernetes服务发现原理图解
上节分析了Prometheus服务发现核心流程(如下图),Discoverer基于... -
英超战报:萨卡双响 阿森纳进攻水银泻地主场大胜水晶宫_全球通讯
北京时间3月19日22:00,英超联赛第28轮,阿森纳主场迎战水晶宫。 -
涉嫌短线交易自家股票,金陵体育董事被立案 新消息
涉嫌短线交易自家股票,金陵体育董事被立案 -
俄媒:普京称原本希望顿巴斯地区问题和平解决,但西方欺骗了俄
据俄罗斯卫星通讯社等俄媒19日消息,俄罗斯总统普京在“俄罗斯1”电... -
美国机构研究:186家美国银行或存与硅谷银行类似风险
Yourbrowserisnotsupported(原标题:美国机构研究:186家美国银行... -
上海邮局海关:收到一箱大头收获蚁
近日,上海邮局海关关员在对进境邮件开展机检工作时,发现一件申报... -
驻英国使馆发言人就英国议会代表团窜台事答记者问
记者:据报道,英国议会一个代表团正在台湾访问。请问中方对此有何... -
10亿美元!瑞银“超低报价”换股收购瑞信,瑞信拒绝 全球百事通
10亿美元!瑞银“超低报价”换股收购瑞信,瑞信拒绝 -
全球第二大人造草坪供应商青岛青禾主板IPO,与共创草坪专利纠纷不断,毛利率较行业第一仍有一定差距
全球第二大人造草坪供应商青岛青禾主板IPO,与共创草坪专利纠纷不断... -
天天消息!重庆钓鱼城遗址新发现南宋末年规模宏大建筑群
记者日前在重庆合川钓鱼城遗址采访时了解,近期该遗址新发掘揭露了... -
环球快消息!“超级巨无霸”,要来了!海上的移动“星级酒店”!
因设计建造难度极高,大型邮轮与大型液化天然气运输船、航空母舰一... -
个人退税可以多退几千?小心骗局新套路-世界今亮点
近日许多网友在网络平台晒出了自己的退税金额少则几十元,多的上万... -
银行业危机暴露美国弊政恶果 天天即时看
本月中,银门银行、硅谷银行和签名银行三家美国银行在短短5天内相继... -
为证实核污水“安全性”,东电搞起了直播养鱼!网友:留着自己吃吧 环球最资讯
今年3月11日,是日本福岛核事故发生12周年的日子。而在核泄漏12年后... -
观速讯丨瑞士信贷表示将抵制瑞银10亿美元的收购报价
瑞士信贷表示将抵制瑞银10亿美元的收购报价 -
每日快播:瑞银考虑收购瑞信 美欧银行业信心危机难解
瑞士第二大银行瑞士信贷银行(简称瑞信)受美国硅谷银行关闭风波影... -
从内河到内陆!我国拥有液化天然气储备全产业链 世界热点
消息:中国石油3月19日发布消息,我国首座投用的陆上液化天然气薄膜... -
把蔬菜大棚“搬”上山坡 产区探索新模式保障“菜篮子”供应_天天热议
消息:眼下,全国正在进行蔬菜春播。为了保障“菜篮子”稳定供应,... -
天天报道:各地因苗施策 分类管理 确保夏粮丰收基础
消息:目前,我国冬小麦进入生长关键期,各地因苗施策,分类推动冬... -
34项专利!自主创新让“有光就有电”变成现实 每日资讯
消息:这次获得工业大奖的很多企业和项目在绿色制造、节能减排等各... -
当前速读:此轮甲流高峰是否已经过去?10多家医院医生这么说
“此轮甲流高峰基本已经过去。”3月18日,浙江大学医学院附属第一医... -
海南:从铁路港口离岛也能提免税品了_全球新要闻
离岛免税新政实施以来,消费者对离岛免税购物的热情只增不减,为了... -
全球热消息:樱花观赏季首个双休日,玉渊潭接待16万游客,公园做出这些提示
记者从玉渊潭公园了解到,樱花观赏季首个双休日共迎接16万游客入园... -
全球热门:翠湖国家城市湿地公园4月1日对外预约开放!预约方式有更新
春日已至翠湖国家城市湿地公园万物复苏截至2022年底翠湖国家城市湿... -
每日焦点!厄瓜多尔西南部地震导致一个海洋博物馆倒塌被淹
秘鲁国家紧急行动中心当地时间18日发布消息称,当天在厄瓜多尔发生... -
朱民谈硅谷银行事件:美区域银行仍存爆仓风险,要关注金融市场逻辑变化 全球快资讯
更重要的是美联储加息引起整个金融市场的周期变化和逻辑变化。 -
观察:瑞银收购瑞信遇到重大阻碍:一万人大裁员?
瑞银收购瑞信遇到重大阻碍:一万人大裁员? -
60天还是120天?俄乌续签黑海运粮协议,延长期限仍面临激烈博弈
60天还是120天?俄乌续签黑海运粮协议,延长期限仍面临激烈博弈 -
【世界报资讯】瑞银拟以最高10亿美元的价格收购瑞信
瑞银拟以最高10亿美元的价格收购瑞信 -
plmm网络用语是什么梗_plmm网络用语什么意思|世界热议
1、Plmm是美姐的简称,也是饭圈的常用表达。2、在饭圈,plmm这个词... -
环球微动态丨男子私闯护栏逗引大熊猫?园方:已报警!
3月18日,网友发视频称,唐山动物园免费开放首日,一男游客私自闯进... -
山西一地发生重大刑事案件 警方发协查通告:直接抓获奖5万!
2023年3月18日中午12时许,山西省朔州市山阴县发生一起重大刑事案件... -
80后女书记贪图享乐坠入深渊,“诈病”逃避审查_每日视讯
马虹因犯贪污罪、受贿罪被依法判处有期徒刑7年。面对调查组的调查,... -
丰田本田电动车越降价越难卖,比亚迪推出“日系杀手”-资讯
丰田本田电动车越降价越难卖,比亚迪推出“日系杀手” -
罗熹辞任中国人保董事长|速看
3月17日晚间,中国人民保险集团股份有限公司发布《中国人民保险集团... -
即时:韩媒:朝鲜向半岛东部海域发射弹道导弹
据韩联社报道,据韩国联合参谋本部(韩联参)19日消息,朝鲜当天于... -
哥哥救人牺牲,14年后妹妹做了一个选择
“我想追随哥哥的步伐进入军营”近日,山东东营烈士韩岗的妹妹韩林... -
日本专家盛赞中国抗疫成就有目共睹
据日本广播协会(NHK)报道,3月18日,日本全国新增新冠感染者7066... -
下周天气太刺激!冷空气、沙尘、雨雪、强对流统统凑齐了!|全球播资讯
下周,我国的天气舞台将十分热闹波谲云诡、格局多变冷空气、沙尘、... -
西摩・赫什再发文:“北溪”被炸的祸根――必须遵守美国规则
今年2月撰文披露美国策划炸毁了“北溪”管道的美国记者赫什,近日又... -
专访:在中国的经历让我的作品刻上了中国印记――访斯洛伐克设计师奥雷尔・法布里 世界看点
布拉迪斯拉发3月18日电专访:在中国的经历让我的作品刻上了中国印记... -
今日最新!热带气旋在马拉维致438人死亡 超34万人被转移
卢萨卡3月18日电(记者彭立军)利隆圭消息:马拉维灾害事务管理局17... -
环球观热点:综述:日本航天频频受挫 专家反思研发体制问题
东京3月18日电综述:日本航天频频受挫专家反思研发体制问题新华社记... -
通讯:“谈起大熊猫,大家有说不完的话”――“熊猫友好交流之夜”活动在东京举行
东京3月18日电通讯:“谈起大熊猫,大家有说不完的话”――“熊猫友... -
科威特宪法法院宣布2022年国民议会选举结果无效
当地时间19日下午,科威特国家通讯社报道称,科威特宪法法院当天宣... -
违规操作、冒险作业!中国石化茂名分公司“6·8”泄漏起火事故调查报告公布_速讯
近日,《中国石油化工股份有限公司茂名分公司“6·8”泄漏起火事故... -
每日资讯:日媒:东电公司称约六成核污染水排海设施已检测合格
据日本媒体报道,用于福岛第一核电站核污染水排海的部分设备当地时... -
天天讯息:瑞银考虑收购瑞信 美欧银行业信心危机难解
瑞银考虑收购瑞信美欧银行业信心危机难解 -
广发策略:“破晓”行情等待“4月决断” 主线逐渐明朗
报告摘要:●“破晓”行情等待“4月决断”,主线逐渐明朗—“思变”... -
春雪华山:玉树琼花漫山间 流云飞渡美如画 热讯
一场春雪过后,西岳华山出现了绝美的雾凇云海景观,群峰银装素裹,... -
我国首座液化天然气薄膜罐完成调峰任务 天天时讯
中国石油今天(19日)发布消息,我国首座投用的陆上液化天然气薄膜... -
正在拍婚纱照,突然准新郎和摄影师不见了…-世界快播
“感谢大家的夸赞,但这不是了不得的事,其他人看到也会救的。”3月... -
“警察叔叔,我们好像捡到了罂粟果”
“警察叔叔我们捡到了5个干花果很像是罂粟果”16日,湖北十堰2名小... -
这个“口诀”,派上用场了!
近日,湖南长沙望城区一小区内的草坪起火六名小学生发现后用前一天... -
2023年联合国水大会即将召开,水利部部长李国英率团参会
2023年联合国水大会将于3月22—24日在美国纽约联合国总部召开,中国... -
环球新消息丨台媒:日月潭蓄水率创新低,“九蛙叠像”九蛙全露出来了!
中时新闻网等台媒消息称,台湾南投县日月潭因近期配合下游农业灌溉... -
俄国防部奖励拦截美军无人机飞行员
据法新社报道,3月17日,俄罗斯国防部宣布,对在黑海上空拦截美军无... -
当前热讯:北京一男子开车门撞伤骑行学生,“开门杀”如何防范?一图了解
3月17日下午北京一学生被一男子突然打开的车门撞伤导致右眼睑下肌肉... -
这工作太酷!凌晨2点给蔬菜“做体检”是什么体验?
Yourbrowserisnotsupported凌晨2点,中国最大的蔬菜交易中心活跃了... -
中国标准加快“走出去” 匈塞铁路为民众带来更多发展机遇
消息:2022年3月19日,匈塞铁路贝尔格莱德至诺维萨德段开通运营。作... -
每日热文:建造国产大型邮轮 让“过路经济”迈向“产业链经济”
消息:大型邮轮被称为“能在海上航行的星级酒店”。目前,服役中的... -
向海图强 中国造船业连续13年世界第一-当前速递
消息:从最初的散货船,到如今的大型邮轮,中国造船业不断向海图强... -
中央气象台:北方多地气温先升后降,南方雨水不断
中央气象台预计,下周,冷空气东移南下,北方多地气温又会下跌;降... -
战争的伤痛,让这个文明古国满目疮痍
编者按:从46岁到66岁,巴格达分社的伊拉克籍雇员贾迈勒始终坚守在... -
3张照片“牵出”违规旅游,7人受处分!-当前讯息
“没想到过了这么久,还是逃不了处理……”近日,湖北省竹山县楼台... -
国际市场份额连续13年居全球第一 中国造船向海图强
从最初的散货船,到如今的大型邮轮,中国造船业不断向海图强。目前... -
“冀X”牌照即将落地河北雄安新区-每日快讯
《河北雄安新区机动车上牌管理暂行办法》18日正式印发,这标志着“... -
当前观点:韩国60岁及以上老年人“再就业”人数10年翻一番多
韩国统计厅下属机构19日发布的数据显示,由于生活成本上升、经济放... -
快资讯丨韩美空军举行联合演习
当地时间19日,据韩国国防部消息,韩美空军于当天举行空中联合演习... -
除了中国,他们为何也在减持美国国债?-世界快资讯
除了中国,他们为何也在减持美国国债? -
【全球快播报】聚焦三个文化带保护发展,北京将建长城数字化展示系统
围绕“加强三个文化带保护与发展,守护好千年古都历史文脉”协商议... -
北京自行车专用路南延至西直门,有望吸引超3万人骑行通勤
自建成通车起,回龙观至上地的自行车专用路就广受关注。这条尝试解... -
今日热文:感受千年文化,欣赏旖旎春光,大运河开启今春首航
今天上午9时30分,副中心大运河游船拉响汽笛,开启今春首航。游船分... -
封站80多天的地铁三元桥站重新开放!客流通过能力大幅提升
封站80多天的地铁三元桥站昨天重新开放了。记者昨天探访发现,该站... -
联合国毒品报告:全球可卡因供应量创新高-当前资讯
参考消息网3月19日报道据新加坡《联合早报》网站3月17日报道,联合... -
福建省财政厅一干部被查,涉嫌严重违纪违法! 天天视点
据平潭综合实验区纪工委17日消息,福建省财政厅国库支付中心原二级... -
英媒:“伊战告诉美年轻人,政府不可信”
参考消息网3月19日报道英国《卫报》网站3月16日刊登题为《伊拉克战... -
外媒:塞尔维亚和科索沃在马拉松式谈判后未能签署协议
参考消息网3月19日报道据法新社19日报道,在经由欧盟主导的马拉松式... -
再曝女兵死亡事件!美军胡德堡基地被揭“黑历史”
参考消息网3月19日报道据西班牙《国家报》网站3月17日报道,21岁女... -
日本多地发生集体食物中毒 由诺瓦克病毒引发
广岛市一个婚礼现场发生集体食物中毒(广岛电视台)海外网3月19日电... -
热讯:俞敏洪“吐槽”王石攀珠峰,王石隔空回应:81岁时还要登
俞敏洪“吐槽”王石攀珠峰,王石隔空回应:81岁时还要登 -
环球快播:北京明天花粉浓度很高,过敏人群出行注意做好健康防护
3月18日本市的花粉浓度监测结果为:平均每千平方毫米301粒,浓度较... -
已流向校园周边!这种网红玩具可能产生“急性剧毒”|世界快讯
Yourbrowserisnotsupported在许多中小学校园周边,文具店是学生们经... -
苏大恶意P图者被开除学籍,网友用真实案件制成MV呼吁抵制网暴-环球讯息
Yourbrowserisnotsupported抵制网络造谣!希望不再出现下一个那谁苏... -
多图直击!开航第一天,乘大运河游船感受春天的气息|世界热闻
3月19日,伴着春风和煦,通州城市副中心大运河游船开航迎客。开航的... -
速查!京考首批进入面试名单公布_天天快讯
北京市人事考试通用平台公布2023年京考首批进入面试名单,快去查询... -
【全球播资讯】“绿委”喊“三军仪队”撤出中正纪念堂,有人预言:铜像定遭破坏
【综合报道记者赵友平】台湾中时新闻网19日消息称,民进党“立委”... -
美国疾控中心警告:这种疾病在东北部有增长趋势……
3月19日电据《纽约时报》报道,美国疾病控制与预防中心(CDC)的研究... -
你的隐私正在被明码标价
你的隐私正在被明码标价 -
焦点要闻:下周解禁市值大增!这3只股票均超80亿元
下周解禁市值大增!这3只股票均超80亿元 -
马拉松全国纪录时隔16年被打破 天天报道
据新华社,3月19日进行的2023年无锡马拉松赛中,中国选手何杰以2小... -
跟着习主席看世界 | 走进中国的最大邻国——俄罗斯
俄罗斯1709 82万平方公里土地1 46亿人口194个民族官方语言为俄语... -
跟着习主席看世界 | 走进中国的最大邻国——俄罗斯-全球最资讯
俄罗斯1709 82万平方公里土地1 46亿人口194个民族官方语言为俄语... -
论财富家庭增长率,它超过北上广深
富从何而来? -
湖南常宁:春耕春种忙 天天看点
3月18日,在常宁市洋泉镇四泉村,村民在起运农作物幼苗(无人机照片... -
“测土配方”定制化肥 这些妙招让春耕更绿色_全球头条
农业面源污染,是指农业生产过程中由于化肥、农药、地膜等不合理使... -
今日观点!浙江舟山修船业“淡季不淡” 今年前两个月产值大增超60%
修船业是我国船舶工业的重要组成部分。一季度一向是修船业的传统淡... -
压实资本市场“看门人”责任|天天动态
中国证监会日前发布全面实行股票发行注册制相关制度规则,相关配套... -
今日看点:党建评:抓细抓小纠“四风”
在生活场合“吃心”不改、酒瘾难戒,热衷组局喝酒、打牌掼蛋……近... -
世界微动态丨首艘国产大型邮轮预计年底交付,记者探访“海上移动城市”
大型邮轮被称为“能在海上航行的星级酒店”。目前服役中的大型邮轮...