首页 > 资讯 > > 内容页

【云原生 • Prometheus】云原生kubernetes服务发现原理图解

2023-03-24 14:19:53 腾讯云

云原生kubernetes服务发现原理图解


(相关资料图)

概述

上节分析了Prometheus服务发现核心流程(如下图),Discoverer基于不同协议发现采集点,通过channel通知到updater协程,然后更新到discoveryManager结构体trargets字段中,最终由sender协程将discoveryManagertargets字段数据发送给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接口获取到云原生集群中的PODServiceNodeEndpointsEndpointsliceIngress等对象的元数据,并基于这些信息生成Prometheus采集点,并且可以随着云原生集群状态变更进行动态实时刷新。

kubernetes云原生集群的PODServiceNodeIngress等对象元数据信息都被存储到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_fileca_file则指定访问API Server使用到的认证信息;role指定基于云原生集群中哪种对象类型做服务发现,支持PODServiceNodeEndpointsEndpointsliceIngress六种类型;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_HOSTKUBERNETES_SERVICE_PORT构建出来, token以及 ca信息从POD固定的文件中获取,因此这种场景下kubernetes_sd_configsapi_serverca_file是不需要配置的。

client-gokubernetes官方提供的go语言的客户端库,go应用使用该库可以访问kubernetesAPI Server,这样我们就能通过编程来对kubernetes资源进行增删改查操作。 ❞

Informer机制

从之前分析的服务发现协议接口设计得知,了解k8s服务发现协议入口在discovery/kubernetes.goRun方法:

Run方法中switch罗列出不同role的处理逻辑,刚好和配置示例中role支持的六种云原生对象类型对应,只是基于不同的对象进行服务发现,基本原理都是一致的。

云原生服务发现基本原理是访问API Server获取到云原生集群资源对象,PrometheusAPI Server进行交互这里使用到的是client-go官方客户端里的Informer核心工具包。Informer底层使用ListWatch机制,在Informer首次启动时,会调用List API获取所有最新版本的资源对象,缓存在内存中,然后再通过Watch API来监听这些对象的变化,去维护这份缓存,降低API Server的负载。除了ListWatchInformer还可以注册自定义事件处理逻辑,之后如果监听到事件变化就会调用对应的用户自定义事件处理逻辑,这样就实现了用户业务逻辑扩展。

Informer机制工作流程如下图:

Informer机制本身比较复杂,这里先暂时不太具体说明,只需要理解Prometheus使用Informer机制获取和监听云原生资源对象,即上图中只有「绿色框部分是自定义业务逻辑」,其它都是client-go框架informer工具包提供的功能。

这其中的关键就是注册自定义AddFuncDeleteFuncUpdateFunc三种事件处理器,分别对应增、删、改操作,当触发对应操作后,事件处理器就会被回调感知到。比如云原生集群新增一个POD资源对象,则会触发AddFunc处理器,该处理器并不做复杂的业务处理,只是将该对象的key放入到Workqueue队列中,然后Process Item组件作为消费端,不停从Workqueue中提取数据获取到新增PODkey,然后交由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、注册资源事件,分别对应资源创建、资源删除和资源更新事件处理;

❝ 这里的 podAddCountpodDeleteCountpodUpdateCount分别对应下面三个指标序列,指标含义也比较明显: 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、事件处理,AddFuncDeleteFuncUpdateFunc注册的事件处理逻辑一样,处理逻辑也比较简单:就是获取资源对象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,让整个流程运转起来;

x 广告
最近更新

【云原生 • Prometheus】云原生kubernetes服务发现原理图解

2023-03-24

环球今日报丨2022年12月6日穿衣五行 2022年穿衣五行颜色

2023-03-24

世界微头条丨耐心成就人生阅读答案_耐心成就人生之美阅读答案

2023-03-24

富德生命人寿长治中支开展“不负春光,种植希望”蚂蚁力量活动

2023-03-24

每日播报!媒体人:广州城9个外援8个签字了,只有托西奇陷入僵局

2023-03-24

cf游戏中保存的视频在哪个文件夹里看(CF游戏中保存的视频在哪个文件夹里)_环球今日报

2023-03-24

国联证券给予中国移动买入评级,政企业务保持高增,公司业绩符合预期 世界微速讯

2023-03-24

怎么理解千金散尽还复来 今日讯

2023-03-24

笔记本电脑不能开机黑屏_笔记本电脑不能开机

2023-03-24

每日时讯!新假面骑士(手绘先行版)

2023-03-24

05月05日安庆前往盐城出行防疫政策查询-从安庆出发到盐城的防疫政策 环球快讯

2023-03-23

杜尔伯特2022动迁公告_杜尔拉汗

2023-03-23

今日要闻!黄河交通学院2023年高职单招招生章程(职升机教育)

2023-03-23

花钱买“自律”潮流渐起,2025年付费自习室用户规模有望达1082万人 当前热文

2023-03-23

坚果包括哪些

2023-03-23

天天微动态丨尿毒症可以治好吗费用多少钱_尿毒症可以治好吗

2023-03-23

当前速读:三五互联:请参见公司于2023年3月3日在互动易平台上已回复的内容

2023-03-23

创必承理财师推荐的基金定投 可以买吗? 当前快看

2023-03-23

资讯推荐:小米13Pro全球版也附赠充电器但适配器更大

2023-03-23

济南耳鼻喉医院是正规医院吗(济南耳鼻喉医院)_关注

2023-03-23

火象星座有哪些 世界今热点

2023-03-23

支部建在网格上 工作落到网格里 讯息

2023-03-23

走私稀有珍贵动物罪既遂有什么惩罚

2023-03-23

华晨宇加入那英队后,他拒绝张信哲的原因是什么?答案引人深思-环球新资讯

2023-03-23

空调制热设置30度?|天天速讯

2023-03-22

怎么显示文件的扩展名

2023-03-22

新华百货最新公告:2022年度净利增81.67%至9347.87万元 拟10派1元-世界微速讯

2023-03-22

2023可以下款的贷款平台,这些实力靠前、下款快速、通过率高

2023-03-22

焦点日报:汽车烧甲醇对碳罐有什么影响?

2023-03-22

安庆海事局“四项机制”保障“超长枯水期”航运安全畅通 关注

2023-03-22

聚启赋能 | 2023普尔世分销商大会于苏州·太湖成功举办 环球关注

2023-03-22

天天关注:大连瓦房店超2.7万平米涉宅地块2331万元成交

2023-03-22

《陈阿牛》:黄金63空45平;日内先空后多。|报资讯

2023-03-22

天天快消息!美国一在押非洲裔男子遭警察跪压后身亡 监控视频显示其死前被多人按倒在地

2023-03-22

热推荐:电脑时间怎么调出来_电脑时间怎么调

2023-03-22

全球讯息:店长管理抓好四个重点,提升业绩

2023-03-22

最资讯丨我发现互联网工作的性价比还在持续走低,没看到好转的迹象

2023-03-21

青菜馅发黄怎么补救 青菜馅发黄如何处理 每日热闻

2023-03-21

红塔区:肃清占道乱象 助力创文固卫

2023-03-21

隆化税务:温泉康养产业沐浴税惠“春风”

2023-03-21

开发模型的理解:瀑布模型/增量式/迭代/敏捷开发——笔记

2023-03-21

三晖电气:拟增加经营范围 涉电池制造、销售等 全球热闻

2023-03-21

重点聚焦!泰安一地多孩家庭购房优惠补贴政策来了!证明出具流程具体如下:

2023-03-21

“河湖长+检察长”!助推山西省河湖管理生态保护-全球头条

2023-03-21

福建自贸/海西概念板块3月20日跌1.63%,厦门象屿领跌,主力资金净流出728.47万元|世界信息

2023-03-21

天天快报!拼多多业绩会回应跨境业务:仍处于发展初期 对财报影响较小

2023-03-21

焦点热文:7名高管集体辞职 巴安水务吃关注函

2023-03-20

楷书:中考易错字|环球讯息

2023-03-20

北京昌平区:2030年将建成一座现代化新城_天天报资讯

2023-03-20

【世界独家】r星注册下一步没反应_r星注册

2023-03-20

今日热搜:创识科技(300941):原持股5%以上股东减持计划数量过半暨简式权益变动报告书的提示性公告

2023-03-20

全球观点:瑞信接受瑞银收购前就着手裁员9,000人 据悉最终人数或达数倍之多

2023-03-20

新资讯:@太原人,今天北部有雨雪!后天大风、沙尘来袭!

2023-03-20

2021年局座张召忠视频_张召忠为什么叫局座

2023-03-20

百事通!追梦:库明加的成长势头很好 他正变得越来越可靠

2023-03-19

人从众,太阳宫有个新集市!

2023-03-19

消息!东方板桥镇引入公司发展螺旋藻特色产业,今年预计产值1亿元

2023-03-19

男生不举是什么意思_送打火机给男生是什么意思 天天视讯

2023-03-19

世界头条:奇葩脑洞大师什么时候出 公测上线时间预告

2023-03-19

58同城拼车怎么找不到了_58同城拼车

2023-03-19

行业动态丨华南首家京东MALL启动建设;金龙鱼加码多元发展;生鲜传奇季度盈利

2023-03-18

中秋节主题班会教案设计图_中秋节主题班会教案

2023-03-18

【188男团】当家主凌晨回家2.5(周丁、寒故) 当前关注

2023-03-18

八年级上册历史复习提纲_八年级上册历史重点

2023-03-18

今年首次全面降准 带来哪些利好? 具体详细内容是什么 焦点热议

2023-03-18

*ST中昌(600242):中昌大数据股份有限公司关于召开2023年第一次临时股东大会,审议关于聘任公司2022年度财务审计机构和内部控制审计机构的议案

2023-03-18

通讯!男教师坠亡 举报女生被疑诬告很委屈是什么情况

2023-03-18

今日热搜:山东齐恒金属结构股份有限公司

2023-03-17

全新一代奥迪A6曝光!国产命名E6L,溜背造型运动感十足|环球关注

2023-03-17

美媒:注资不能平息美国银行系统的问题

2023-03-17

内蒙古达拉特旗:项目建设激荡起高质量发展“澎湃春潮”

2023-03-17

大摩:维持恒安国际“与大市同步”评级 目标价降至40港元_播报

2023-03-17

原神夜泊石怎么获得_原神夜泊石在哪儿获得_天天信息

2023-03-17

天天滚动:七部门联合部署2023年全国农资打假专项治理行动

2023-03-17

环球关注:宝宝不爱吃饭怎么办两岁了_宝宝不爱吃饭怎么办

2023-03-17

金宏气体旗下淮南金宏二氧化碳捕集综合利用项目近日开工建设

2023-03-16

季节性荨麻疹是什么原因造成的_季节性荨麻疹是什么

2023-03-16

【三抓三促进行时】环县车道镇:真抓实干为全镇高质量发展蓄势赋能 当前热讯

2023-03-16

焦点热门:港股异动|雅迪控股尾盘大涨超7%机构看好其市场份额前景

2023-03-16

世界快资讯:放弃离间美日韩的不切实际幻想

2023-03-16

2023无锡地铁4号线博览中心站马拉松期间临时关闭

2023-03-16

【一线调研】小农机上山岗

2023-03-16

交易性金融资产属于什么项目(交易性金融资产属于什么科目) 环球时快讯

2023-03-16

千禾味业(603027):3月15日北向资金减持38.61万股

2023-03-16

环球焦点!地暖品牌排行榜金德前十名_地暖品牌排行榜

2023-03-15

联邦调查局:2021年美国仇恨犯罪数量达10840起!创历史新高 天天热点评

2023-03-15

乘联会:3月前两周新能源车市场零售13.1万辆,同比增长9%_世界时快讯

2023-03-15

关注:2023重庆渝中区化龙街道社区卫生服务中心流感疫苗接种

2023-03-15

为什么绿豆汤放冰箱一晚就坏?_天天快播

2023-03-15

2月贵阳市空气质量考核结果公布 综保区排名第一 全球观点

2023-03-15

实践育人 沌口幼儿园垃圾分类小课堂开讲

2023-03-15

力源科技:融资净买入36.71万元,融资余额4294.99万元(03-14) 世界快报

2023-03-15

世界消息!昭阳镇水产养殖场_对于昭阳镇水产养殖场简单介绍

2023-03-15

天天讯息:边路能手!津琴科本赛季英超代表阿森纳持球推进了200次

2023-03-14

世界观察:今年闵行区总工会推出十大服务职工实事项目

2023-03-14

又一部《狂飙》?张译新剧再度央八播出,尺度很不小

2023-03-14

当遇到一个不讲理的老公,你该怎么应付?

2023-03-14

七天网络阅卷操作流程-七天网络阅卷系统登|每日快报

2023-03-14

世界实时:宝丽迪盘中异动 股价振动9.58% 上涨6.99%

2023-03-14

凌云光(688400)3月13日主力资金净买入1120.11万元-观点

2023-03-14

【环球快播报】刘晓庆硬是穿出少女感,花“夹克”配黑色束口裤,真不像50后的人

2023-03-14

全球速讯:如何解决蓝光浏览器无法打开网页的问题?

2023-03-13

当前滚动:大理天龙八部影视城旅游攻略(时间+地点+门票+交通+优惠政策)

2023-03-13

Ranveer Singh汽车收藏从兰博基尼到梅赛德斯迈巴赫

2023-03-13

交通事故责任认定书出来后可以扣车吗-最资讯

2023-03-13

世界观点:信美人寿靠谱吗?从这几点区分看

2023-03-13

天津打造绿色生态屏障为城市“热岛”降温

2023-03-13

收获1金1银列奖牌榜第4,短道速滑世锦赛中国紧追强队 最新消息

2023-03-13

广西师范大学19级环境设计一班志愿服务队

2023-03-13

2022年四川省国土绿化公报发布,全省森林覆盖率达40.26%

2023-03-12

新消息丨新房旧房拿到手之后,第一步该干什么呢?

2023-03-12

每日关注!永久有效的二维码怎么制作?永久二维码如何在线生成?

2023-03-12

新股风向:本周8只新股上市,科创板茂莱光学首日大涨175%,绿通科技一度破发

2023-03-12

天天滚动:权威媒体正式确认!国青队遭受毁灭打击,亚洲杯晋级4强彻底悬了

2023-03-12

最新增值税法全文2022_最新增值税_天天播报

2023-03-11

最新资讯:什么是国有银行哪些是国有银行_原来这些都是国有银行

2023-03-11

安史之乱是谁领导的_安史之乱是谁平定的

2023-03-11

两会热点 龙江担当|培养“大国巨匠” 焦点要闻

2023-03-11

外汇中“剥头皮”交易是什么意思-世界焦点

2023-03-11

inanna-天天新消息

2023-03-11

全球百事通!广发证券固收首席刘郁:2018-2023 年债市复盘与展望

2023-03-11

世界微资讯!细腻的近义词_细腻

2023-03-11

冲积平原示意图_冲积平原

2023-03-10

雾芯科技Q4营收同比大降82% 净亏损为2.25亿元 世界快消息

2023-03-10

外观更显优雅,锐界L同款混动,全新林肯航海家混动版申报图曝光-全球要闻

2023-03-10

哈焊华通(301137):第四届第五次董事会会议决议,审议《关于拟对外出租资产的议案》

2023-03-10

新集能源:公司未来发展以煤炭、煤电、新能源为主_即时看

2023-03-10

Inconel625 性能及固溶处理|快报

2023-03-10

魔兽世界目标名字喊话宏_魔兽世界喊话宏命令大全 当前视点

2023-03-10

僚机计划_僚机

2023-03-10

《命运2:梦魇根源》世界首通赛 资讯/时间/禁用列表/奖励一览 23.03.10

2023-03-10

天翼乐享4g129套餐_天翼乐享4g套餐 全球快资讯

2023-03-10

直线是平角吗_平角是一条直线对不对

2023-03-10

简讯:石门涧要不要买庐山大门票_石门涧

2023-03-10

当前快播:达达集团2022年营收94亿 盈利能力得到改善

2023-03-09

当前快报:bios是什么_bios是什么意思

2023-03-09

京东物流2022年营收1374亿元同比增31%,外部客户收入占比近7成-天天报道

2023-03-09

天天视讯!最新!淄博市结核病定点医疗机构名单及诊疗须知

2023-03-09

026期袁启晨双色球预测奖号:同尾码关注

2023-03-09

我是特种兵1_我是特种兵 世界通讯

2023-03-09

天天快讯:手机声音太小怎么办播放一段音乐_手机声音太小怎么办

2023-03-09

聚焦国企改革 平安“开放共赢ETF”场内简称变更为“国企共赢ETF”(159719)

2023-03-09

小托马斯加盟cba_兰斯 托马斯

2023-03-09

【当前独家】将士扬旌旗 沙场起风雷

2023-03-09

盐川洋介

2023-03-09

薄壳结构的建筑物或物品怎么画_薄壳结构的建筑物

2023-03-09

当前看点!清新干练张子枫,秋季这样穿搭,哪里都是你的游乐场

2023-03-08

为什么浩方对战平台无法登录-天天观热点

2023-03-08

交行信用卡一般额度是多少

2023-03-08

世界快播:博汇纸业:博汇集团及其一致行动人累计质押数量约为4.43亿股

2023-03-08

张予馨

2023-03-08

铁路k字头是什么车_k字头是什么车_世界聚看点

2023-03-08

全球观点:疫情以来,一些3A大作的更新比较迟缓,我一直在等的无限试驾就一直延期

2023-03-08

当前报道:千里明月寄相思歌词

2023-03-08

环球热资讯!业绩被对手甩出好几条街 爱玛科技巨额募资能否翻盘?

2023-03-08

新浪创始人

2023-03-08

环球资讯:棘针寨乡

2023-03-08

天天速看:excel制作曲线图_excel怎么制作曲线趋势图

2023-03-08

后视镜防眩目-环球快资讯

2023-03-08

全球实时:为什么总有人喜欢揭秘刘谦的魔术?本尊给出答案:可能是我的错

2023-03-08

全球实时:黄关军

2023-03-07

后浇带是什么等级的灰_后浇带是什么意思

2023-03-07

生熟普洱茶什么季节喝

2023-03-07

上海健康证多久能办下来_焦点热讯

2023-03-07

蚵仔煎老店公告缺蛋惨遭绿营出征,日商也缺却没事,台网友讽:遇日本就缩起来

2023-03-07

幼儿园地面一般用什么材料来做

2023-03-07

离婚女方不付抚养费能不能有探望权-天天新要闻

2023-03-07

海洛因是什么_世界百事通

2023-03-07

网坛世界排名更新:郑钦文位列第24位_最新快讯

2023-03-07

环球关注:Meta正筹划新一轮裁员 最快将于本周裁减数千名员工

2023-03-07

2022公务员降薪20%是真的吗 公务员工资对照表是什么|环球时讯

2023-03-07

巴基斯坦西南部自杀式袭击致警员10死12伤,ISIS等两家组织争相宣布负责 天天新资讯

2023-03-07

crystalreports

2023-03-07

故人是指什么的人_故人是什么意思

2023-03-07

匪怎么读_匪组词_世界消息

2023-03-07

古人说不孝有三有哪三种-全球快看

2023-03-06

新劲刚:X型吸波复合材料产品何时起量存在较大不确定性

2023-03-06

低压电气

2023-03-06

全球观察:兴业银行福州分行落地福建省首笔惠粮贷

2023-03-06

计算机网络的分类是什么

2023-03-06

东土科技:公司及控股子公司累计担保金额为人民币约1.85亿元

2023-03-06

周五冷空气来袭 京城将迎大风降温

2023-03-06

天天快消息!牛小帅棋牌游戏为什么一直输

2023-03-06

招商银行(03968.HK)再跌超4%,截至发稿,跌4.18%,报42.45港元,成交额6.92亿港元

2023-03-06

hailey是什么意思英文名_hailey是什么意思

2023-03-06

世界即时看!星际战甲更新失败怎么办_星际战甲更新失败

2023-03-06

世界播报:梁靖崑、王艺迪分别获WTT球星挑战赛果阿站男、女单冠军

2023-03-06

北京爱情故事演员表

2023-03-06

烘干机烘床单被单温度时间? 播报

2023-03-06

紧组词_重点聚焦

2023-03-05

观热点:投掷项目全书:铅球铁饼标枪链球

2023-03-05

2013年开学第一课观后感_2013年开学第一课演讲稿

2023-03-05

垒球是棒球吗_垒球是不是棒球

2023-03-05

世界最新:什么叫割礼男人梦见自己退伍什么意思_什么叫割礼

2023-03-05

一个顶十个!吾爱大佬最新力作,打开即是VIP

2023-03-05

焦点!英语四级考试时间多长

2023-03-05

4k视频是什么意思

2023-03-05

重庆公交车坠江事件时间-世界视点

2023-03-05

惠普笔记本怎么进bios_惠普笔记本进入BIOS的方法_每日速读

2023-03-05

换一颗牙齿要多少钱啊_换一颗牙齿要多少钱

2023-03-04