云原生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
,让整个流程运转起来;
X 关闭
推荐内容
- 【云原生 • Prometheus】云原生kubernetes服务发现原理图解
- 盘湾镇
- 全球今亮点!乌江构皮滩水电站通航设施运行维护管理交接仪式举行
- 稷下谈|众多资本为何青睐“鲁C”
- 067期唐羽福彩3D预测奖号:和值走势 天天视点
- 焦点简讯:重庆医药行业协会召开第四届会员大会 聚合力量助医药振兴
- 楼市会再次走热吗?连跌17个月后,逆转出现多地房价上涨 环球快消息
- 沙漠之舟啥意思_沙漠之舟的意思
- 中信特钢2022年度净利同比降8.64% 拟10派7元
- 昆明市残联开展2023年“春城暖阳”党建带群建扶残助残活动
- 巴西总统访华 外交部:开辟新时代中巴关系
- 钱报健康小站丨春季锻炼正当时,但因此就诊的患者还真不少……
- 狗狗嗜睡的原因有哪些_嗜睡的原因有哪些
- 大众集团开启转型攻坚战:5年投资1800亿欧元!|财报全视角
- 车膜颜色太深影响后视镜_车膜颜色
- 国际医学(000516):3月16日北向资金减持94.22万股
- 现代VernaTurboGDI是什么让它与众不同-世界百事通
- 《剑网3:指尖江湖》小白最头疼的问题合集,阅后即懂
- 实时:智度股份:公司385.79万元首次回购64.16万股公司股份
- 世界聚焦:登封教育信息网_登封网
- 微信微笑表情包含义_微信微笑表情的新含义
- AI快报丨硅谷银行的48小时与40年
- 焦点要闻:姚晨夫妇监制电影《脐带》周六上映 女主演巴德玛多次来榕献歌
- 环球速讯:卓越商企服务(06989.HK):3月15日南向资金减持7.5万股
- dlc
- 焦点精选!【画师推荐59】原神壁纸头像合集
- 980一盒壮阳药检出伟哥详细内容
- 中国重工:根据信息披露公平原则,公司将在各期定期报告中披露报告期末的股东人数,请您关注|世界热点
- 23金牛环境CP001票面利率为2.9800% 今日快看
- 当前关注:沃顿科技:拟向控股股东等定增募资不超4.08亿元申请获证监会同意注册批复
- 南凌科技(300921)3月14日主力资金净买入1706.44万元
- “旅游+”拉动休闲度假需求(消费视窗·聚焦消费新场景) 每日报道
- 两生关是什么意思_两生关的含义-世界播资讯
- 全球今热点:花费的四种用法和区别_花费的四种用法
- 最资讯丨[快讯]恒丰纸业公布年报
- 男生送210单外卖攒钱给妈妈买鞋:2元一单干了五六天,有时候顾不上吃饭
- 注意!大风沙尘来啦!|世界速看
- 怎么定十级伤残赔偿
- 当前关注:Apple Watch Ultra将升级MicroLED
- 最近一年股市的新型炒作手法! 全球微资讯
- 官媒点名批评,11.4亿阅读,揭开“巨婴们”的遮羞布,别太可笑!
- 艺鼎新作|龙巢餐酒馆:日餐夜酒,生活变奏-当前最新
- 脉管炎早期症状图片大全_脉管炎早期症状有哪些
- 世界看热讯:四面体外接球表面积怎么算(四面体外接球体积公式)
- 焦点热讯:饥荒曼德拉草位置及寻找方法
- ESPN又搞事情!NBA现如今最伟大的球员,却入不了队史最佳!-快播
- 李一桐热搜翻车!谈张颂文被批蹭热度,同是绑架戏网评不如邓家佳_观速讯
- 快播:上海银行信用卡申请-上海银行信用卡申请进度
- 榜上传媒小汉哥-直播带货线上课:各种起号思路以及老号如何重启等|每日看点
- 廖丽芳的丈夫_廖丽芳_世界观点
- 03月12日从怒江出发到龙岩的防疫政策 世界观热点
- 每日精选:男孩爱啃手10个指甲全啃秃,引发骨髓炎高烧40度:再晚几天将截肢
- 【全球新要闻】广州文交会近千台剧目参加交易 成交额近5亿元
- 迎面接力赛作文(迎面接力)-快消息
- 全球速看:斗破苍穹 纳兰嫣然结局_斗破苍穹纳兰嫣然结局
- 准备多少钱才能退休养老?可以这样测算
- 世界短讯!坤年是什么意思_kn是什么意思
- 绅探第二季何时上映_绅探第二季何时上映
- 去年福建省老区苏区居民收入增速高于全省平均水平_全球时快讯
- 中国通号:3月10日融资买入611.78万元,融资融券余额2.44亿元-要闻
- 三星tab3 每日信息
- 愉此一生吻戏在哪几集_愉此一生百度云
- 股票行情快报:四川双马(000935)3月10日主力资金净卖出589.85万元
- 沣峪口有什么地方好玩_沣峪口有什么好玩的
- 当前资讯!湖南高铁职院成功申创新时代教育评价改革试点
- [快讯]辽宁成大发布质押公告一股东累计质押13788万股
- 天天短讯!linux多线程
- 井深9396米 亚洲陆上最深油气水平井在塔里木盆地完钻-即时
- 今日观点!恩捷股份:公司海外项目正在积极推进中
- 世界短讯!中国音响网
- 热头条丨龙源电力贵州首个储能项目获备案
- 世界快消息!基金分红:京管泰富京元一年定开债券发起基金3月14日分红
- 焦点报道:阳了应该怎么办-阳性感染者如何用药 03月10日06时内蒙古包头疫情数据
- 环球通讯!免费的音频转换mp3_免费音频格式转换器转mp3
- 流星蝴蝶剑怎么玩不了_流星蝴蝶剑怎么玩_每日视讯
- 房地产稳增长与防风险并重 业内预计二季度走出“谷底”
- 新铁锅如何开锅使用_新铁锅如何开锅 世界百事通
- 环球快报:2023青岛西海岸半程马拉松领物时间地点
- 森林之旅_每日关注
- 索尼Xperia产品迎系统更新:Android 13来了
- 法证先锋1粤语_法证先锋 有粤语的吗_世界关注
- 信息:重要数据发布!2月份CPI同比涨幅回落至1.0%
- 网格员是做什么的(网格员简述)|视讯
- 她与她,都是“主角”! 环球短讯
- 【全球时快讯】电气应用范围_电气应用
- 中国建材(03323.HK)获贝莱德增持262.4万股 世界新视野
- 依维柯大金杯图片_依维柯大金杯 世界球精选
- 【当前独家】白血病移植后能活多久移的那个人有事没有
- 当前观点:苹果CEO库克称将缩减一些部门的招聘
- 铃木美妃-今日热文
- 还珠格格第二部mkv下载_还珠格格第二部下载迅雷 通讯
- 世界热推荐:皇马科技(603181.SH)累计回购1217万股 耗资1.78亿元
- 前沿热点:父亲节送什么
- 一写作文就“头疼没灵感”?沪上青年作家支招 聚焦
- 微动态丨电影大鱼讲的是什么
- 爱康科技:公司经营情况整体向好,2022年整体产销较前年均有大幅度提升|世界视讯
- 速看:时隔六年,范雨素和自己“久别重逢”
- 东方风神录
- 三一重能:连续3日融资净买入累计294.32万元(03-07) 当前热闻
- 世界微资讯!小欢喜多少集
精彩推荐
-
【云原生 • Prometheus】云原生kubernetes服务发现原理图解2023-03-19
-
盘湾镇2023-03-18
-
全球今亮点!乌江构皮滩水电站通航设施运行维护管理交接仪式举行2023-03-18
-
稷下谈|众多资本为何青睐“鲁C”2023-03-18
-
067期唐羽福彩3D预测奖号:和值走势 天天视点2023-03-18
-
焦点简讯:重庆医药行业协会召开第四届会员大会 聚合力量助医药振兴2023-03-18
-
楼市会再次走热吗?连跌17个月后,逆转出现多地房价上涨 环球快消息2023-03-18
-
沙漠之舟啥意思_沙漠之舟的意思2023-03-18
-
中信特钢2022年度净利同比降8.64% 拟10派7元2023-03-17
-
昆明市残联开展2023年“春城暖阳”党建带群建扶残助残活动2023-03-17
-
巴西总统访华 外交部:开辟新时代中巴关系2023-03-17
-
钱报健康小站丨春季锻炼正当时,但因此就诊的患者还真不少……2023-03-17
-
狗狗嗜睡的原因有哪些_嗜睡的原因有哪些2023-03-17
-
大众集团开启转型攻坚战:5年投资1800亿欧元!|财报全视角2023-03-17
-
车膜颜色太深影响后视镜_车膜颜色2023-03-17
-
国际医学(000516):3月16日北向资金减持94.22万股2023-03-17
-
现代VernaTurboGDI是什么让它与众不同-世界百事通2023-03-16
-
《剑网3:指尖江湖》小白最头疼的问题合集,阅后即懂2023-03-16
-
实时:智度股份:公司385.79万元首次回购64.16万股公司股份2023-03-16
-
世界聚焦:登封教育信息网_登封网2023-03-16
-
微信微笑表情包含义_微信微笑表情的新含义2023-03-16
-
AI快报丨硅谷银行的48小时与40年2023-03-16
-
焦点要闻:姚晨夫妇监制电影《脐带》周六上映 女主演巴德玛多次来榕献歌2023-03-16
-
环球速讯:卓越商企服务(06989.HK):3月15日南向资金减持7.5万股2023-03-16
-
dlc2023-03-16
-
焦点精选!【画师推荐59】原神壁纸头像合集2023-03-15
-
980一盒壮阳药检出伟哥详细内容2023-03-15
-
23金牛环境CP001票面利率为2.9800% 今日快看2023-03-15
-
当前关注:沃顿科技:拟向控股股东等定增募资不超4.08亿元申请获证监会同意注册批复2023-03-15
-
南凌科技(300921)3月14日主力资金净买入1706.44万元2023-03-15
-
“旅游+”拉动休闲度假需求(消费视窗·聚焦消费新场景) 每日报道2023-03-15
-
两生关是什么意思_两生关的含义-世界播资讯2023-03-15
-
全球今热点:花费的四种用法和区别_花费的四种用法2023-03-14
-
最资讯丨[快讯]恒丰纸业公布年报2023-03-14
-
男生送210单外卖攒钱给妈妈买鞋:2元一单干了五六天,有时候顾不上吃饭2023-03-14
-
注意!大风沙尘来啦!|世界速看2023-03-14
-
怎么定十级伤残赔偿2023-03-14
-
当前关注:Apple Watch Ultra将升级MicroLED2023-03-14
-
最近一年股市的新型炒作手法! 全球微资讯2023-03-14
-
官媒点名批评,11.4亿阅读,揭开“巨婴们”的遮羞布,别太可笑!2023-03-14
-
艺鼎新作|龙巢餐酒馆:日餐夜酒,生活变奏-当前最新2023-03-13
-
脉管炎早期症状图片大全_脉管炎早期症状有哪些2023-03-13
-
世界看热讯:四面体外接球表面积怎么算(四面体外接球体积公式)2023-03-13
-
焦点热讯:饥荒曼德拉草位置及寻找方法2023-03-13
-
ESPN又搞事情!NBA现如今最伟大的球员,却入不了队史最佳!-快播2023-03-13
-
李一桐热搜翻车!谈张颂文被批蹭热度,同是绑架戏网评不如邓家佳_观速讯2023-03-13
-
快播:上海银行信用卡申请-上海银行信用卡申请进度2023-03-13
-
榜上传媒小汉哥-直播带货线上课:各种起号思路以及老号如何重启等|每日看点2023-03-13
-
廖丽芳的丈夫_廖丽芳_世界观点2023-03-12
-
03月12日从怒江出发到龙岩的防疫政策 世界观热点2023-03-12
-
每日精选:男孩爱啃手10个指甲全啃秃,引发骨髓炎高烧40度:再晚几天将截肢2023-03-12
-
【全球新要闻】广州文交会近千台剧目参加交易 成交额近5亿元2023-03-12
-
迎面接力赛作文(迎面接力)-快消息2023-03-12
-
全球速看:斗破苍穹 纳兰嫣然结局_斗破苍穹纳兰嫣然结局2023-03-11
-
准备多少钱才能退休养老?可以这样测算2023-03-11
-
世界短讯!坤年是什么意思_kn是什么意思2023-03-11
-
绅探第二季何时上映_绅探第二季何时上映2023-03-11
-
去年福建省老区苏区居民收入增速高于全省平均水平_全球时快讯2023-03-11
-
中国通号:3月10日融资买入611.78万元,融资融券余额2.44亿元-要闻2023-03-11
-
三星tab3 每日信息2023-03-11
-
愉此一生吻戏在哪几集_愉此一生百度云2023-03-11
-
股票行情快报:四川双马(000935)3月10日主力资金净卖出589.85万元2023-03-11
-
沣峪口有什么地方好玩_沣峪口有什么好玩的2023-03-10
-
当前资讯!湖南高铁职院成功申创新时代教育评价改革试点2023-03-10
-
[快讯]辽宁成大发布质押公告一股东累计质押13788万股2023-03-10
-
天天短讯!linux多线程2023-03-10
-
井深9396米 亚洲陆上最深油气水平井在塔里木盆地完钻-即时2023-03-10
-
今日观点!恩捷股份:公司海外项目正在积极推进中2023-03-10
-
世界短讯!中国音响网2023-03-10
-
热头条丨龙源电力贵州首个储能项目获备案2023-03-10
-
世界快消息!基金分红:京管泰富京元一年定开债券发起基金3月14日分红2023-03-10
-
焦点报道:阳了应该怎么办-阳性感染者如何用药 03月10日06时内蒙古包头疫情数据2023-03-10
-
环球通讯!免费的音频转换mp3_免费音频格式转换器转mp32023-03-10
-
流星蝴蝶剑怎么玩不了_流星蝴蝶剑怎么玩_每日视讯2023-03-10
-
房地产稳增长与防风险并重 业内预计二季度走出“谷底”2023-03-09
-
新铁锅如何开锅使用_新铁锅如何开锅 世界百事通2023-03-09
-
环球快报:2023青岛西海岸半程马拉松领物时间地点2023-03-09
-
森林之旅_每日关注2023-03-09
-
索尼Xperia产品迎系统更新:Android 13来了2023-03-09
-
法证先锋1粤语_法证先锋 有粤语的吗_世界关注2023-03-09
-
信息:重要数据发布!2月份CPI同比涨幅回落至1.0%2023-03-09
-
网格员是做什么的(网格员简述)|视讯2023-03-09
-
她与她,都是“主角”! 环球短讯2023-03-09
-
【全球时快讯】电气应用范围_电气应用2023-03-09
-
中国建材(03323.HK)获贝莱德增持262.4万股 世界新视野2023-03-09
-
依维柯大金杯图片_依维柯大金杯 世界球精选2023-03-09
-
【当前独家】白血病移植后能活多久移的那个人有事没有2023-03-08
-
当前观点:苹果CEO库克称将缩减一些部门的招聘2023-03-08
-
铃木美妃-今日热文2023-03-08
-
还珠格格第二部mkv下载_还珠格格第二部下载迅雷 通讯2023-03-08
-
世界热推荐:皇马科技(603181.SH)累计回购1217万股 耗资1.78亿元2023-03-08
-
前沿热点:父亲节送什么2023-03-08
-
一写作文就“头疼没灵感”?沪上青年作家支招 聚焦2023-03-08
-
微动态丨电影大鱼讲的是什么2023-03-08
-
爱康科技:公司经营情况整体向好,2022年整体产销较前年均有大幅度提升|世界视讯2023-03-08
-
速看:时隔六年,范雨素和自己“久别重逢”2023-03-08
-
东方风神录2023-03-08
-
三一重能:连续3日融资净买入累计294.32万元(03-07) 当前热闻2023-03-08
-
世界微资讯!小欢喜多少集2023-03-08