• 首页
  • 热点
  • 资讯
  • 财经
  • 要闻
  • 经济
  • 快讯
  • 科技
  • 滚动
  • 行业
  • 教育
logo
  • 中陕网首页 >
  • 中陕网 > 滚动 >
  • 正文

环球今热点:【云原生 • Prometheus】云原生kubernetes服务发现原理图解

2023-03-22 06:15:06 来源:腾讯云

云原生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基于不同协议发现采集点,通过channel通知到updater协程,然后更新到di
  • 热推荐:去年北京地区生产总值同比增长0.7%

    北京市统计局、国家统计局北京调查总队3月21日发布《北京市2022年国民经济和社会发展统计公报》,公布了北京市2022年
  • 【全球热闻】王纲球:纸浆期货2305合约的共振区!

    500)this width=500 "align= "center "hspace= "10 "vspace= "10 "rel= "nofollow ">纸浆2305
  • 世界快播:江乙对荆宣王的启示(江乙对荆宣王)

    1、去百度文库,查看完整内容>内容来自用户:人神人江乙对荆宣王【原文繁体字】荆宣王问群臣曰:“吾闻北方之畏昭奚恤也,果诚何如?”群臣莫对
  • 天津异地就医怎么用医保报销?

    天津已经实现了异地住院的直接结算,天津市民可以全国“漫游”,到异地住院可以直接报销。天津市“金医宝”手机APP有异地联网登记功能,随时可
  • win11电脑开机与重启字体都是乱码修复方法 电脑显示字体全部是乱码怎么办?

    win11电脑开机与重启字体都是乱码修复方法Win11系统死机了用户就会强制关机之后再重启电脑就出现了乱码怎么办呢?可能是因为Win11系统还没有
  • 笔记本更新到Win11系统之后指纹不能用修复方法 笔记本电脑的指纹功能用不了怎么办?

    笔记本更新到Win11系统之后指纹不能用修复方法指纹不能用了是哪里原因?最近自己的笔记本电脑也出现了指纹识别不能使用的问题,具体是在更新
  • 解除电脑网络限制实现无阻碍上网操作教程分享 win11系统怎么解除电脑网速限制?

    解除电脑网络限制实现无阻碍上网操作教程分享怎么解除网络限制呢?当自己的电脑受到单位或其它用户的限制时,该如何突破限制,实现无阻碍上
  • win11笔记本电脑的摄像头打不开是哪里的问题?电脑摄像头打不开几种解决方法分享

    win11笔记本电脑的摄像头打不开是哪里的问题有关win11系统笔记本摄像头打不开的操作方法想必大家有所耳闻。但是能够对win11系统笔记本摄像
  • windows10更新升级windows11系统是免费的吗?电脑升级win11的几种方法介绍

    windows10更新升级windows11系统是免费的吗win10升级win11需要付费吗答:不需要。1、根据微软此前的消息,win10升级win11是完全免费的,用
  • 环球微资讯!国际金价“狂飙”!全球央行出手“抢购”!什么情况?

    国际金价“狂飙”!全球央行出手“抢购”!什么情况?
  • 怎么才能确认Windows11系统究竟有没有激活?检查Win11电脑激活状态方法教程

    怎么才能确认Windows11系统究竟有没有激活Windows10发布六年后,微软的最新操作系统仍然接受Windows7和Windows8激活密钥。此外,如果您有一
  • Windows11设置禁用后台应用程序方法教程介绍 电脑怎么同时禁用所有应用程序后台运行?

    Windows11设置禁用后台应用程序方法教程介绍您可以在Windows 11中禁用后台应用,并阻止它们一直运行。您可以禁用单个应用程序,也可以同时
  • 怎么把Windows11系统的小部件板彻底完全删除?Windows11完全禁用小部件详细操作方法

    怎么把Windows11系统的小部件板彻底完全删除Windows 11 中可用的小部件功能被吹捧为一项新功能。但它只不过是其前身 Windows 10 的新
  • 电脑的搜索栏里面输入不了文字是什么情况?搜索栏无法输入字解决方法分享

    电脑的搜索栏里面输入不了文字是什么情况使用搜索栏的时候却发现无法输入任何字母或文字,那么碰到这种情况应该怎么办?Win11搜索栏无法输入
  • win11电脑的任务栏图标有重叠的情况怎么办?解决Win11系统任务栏图标重叠方法介绍

    win11电脑的任务栏图标有重叠的情况怎么办在使用Win11系统的时候发现自己的桌面上的图标重叠了,那么碰到这种情况应该怎么办,下面就和小编
  • 环球微动态丨2月份浙江快递业务量、收入双增长,全面复苏来了吗

    2月份浙江快递业务量、收入双增长,全面复苏来了吗
  • 广西海城区:企业招工“有门” 务工就业“有家”

    海城区零工市场让就业更便捷(副题)北海日报讯3月15日上午,海城区零工市场举行“就业暖心·桂在行动”主题春风行动暨就业援助月零工市场专场
  • 电脑重装系统前怎么备份自己的个人文件?重装系统前备份文件方法教程

    电脑重装系统前怎么备份自己的个人文件总体而言,Windows 11是Windows的完美新版本。但它有一些严重的烦恼,我们不仅仅是在谈论更改默认浏
  • Microsoft帐户的两步验证功能在哪里设置禁用?禁用微软帐户两步验证操作方法

    Microsoft帐户的两步验证功能在哪里设置禁用在此功能适合您的极少数情况下,您可以禁用 2FA 以使用安全性较低的一步验证。要禁用两步验证
  • win11系统自带的小组件打不开处理方法 win11小组件功能怎么打开?

    win11系统自带的小组件打不开处理方法有一些小伙伴在更新完Win11系统之后不知道如何打开小组件,那么碰到这个问题应该怎么办呢?Win11小组件
  • win10专业版点击任务栏窗口没反应解决方法 电脑任务栏窗口点击之后不弹出怎么办?

    win10专业版点击任务栏窗口没反应解决方法最近就有不少小伙伴问我,自己的Win10电脑在使用的时候点击任务栏上的东西毫无反应,重启电脑之后
  • 电脑开不了机按f8进不了安全模式怎么办?win10系统进入安全模式详细操作方法

    电脑开不了机按f8进不了安全模式怎么办Win10系统启动的过程中按F8可以进入安全模式,但是有时候按了却没有用,到底是因为什么原因导致的呢?
  • 全球速读:广言快评|法制护航 助民营经济轻装上阵

    广言快评|法制护航助民营经济轻装上阵
  • win10专业版错误代码0xc0000185该怎么去解决?电脑0xc0000185无法开机怎么办?

    win10专业版错误代码0xc0000185该怎么去解决方法一:1、按下win+r打开运行,输入regedit。2、随后依次打开HKEY_LOCAL_MACHINE SOFTWARE Wow
  • Windows11系统自定义触摸键盘大小设置方法 怎么才能更改电脑触摸键盘大小?

    Windows11系统自定义触摸键盘大小设置方法首先,通过按 Windows+i 或右键单击开始按钮并从菜单中选择设置来打开 Windows 设置。设置打
  • 新装的win11电脑没有声卡驱动修复方法分享 电脑没有声卡驱动应该怎么办?

    新装的win11电脑没有声卡驱动修复方法分享最近有些朋友在升级更新win11系统之后,发现电脑没有声音,检查后才发现原来是没有声卡驱动。那么
  • 电脑启动java虚拟机提示无法打开文件解决方法 win11系统启动java虚拟机发生错误怎么办?

    电脑启动java虚拟机提示无法打开文件解决方法Java虚拟机产生的错误。当发生此类错误时,通常意味着计算机无法读取或理解代码。发生这种情况
  • 电脑文件资源管理器怎么禁用最近使用的文件功能?清空电脑最近使用的文件操作方法

    电脑文件资源管理器怎么禁用最近使用的文件怎么在Windows11上禁用文件资源管理器搜索历史记录?按Windows 键+ R打开运行提示。输入gpedit
  • 即时看!瑞士政府当地时间3月19日晚上宣布,瑞士最大银行瑞银集团同意收购第二大银行瑞士信贷银行,以避免瑞信眼下危机对本国乃至全球造成“无可挽回的经济动荡”

    瑞士政府当地时间3月19日晚上宣布,瑞士最大银行瑞银集团同意收购第二大银行瑞士信贷银行,以避免瑞信眼下危机对本国乃至全球造成“无可挽回的
  • 天天观热点:欢迎你们,新包头人!

    【来源:包头市住房和城乡建设局_住建动态】因为梦想他们从天南地北来到包头成为我们中的一员↑吊装工人↑精心打磨他们是平地起高楼的建筑工人
  • 关于管理方面的书籍有哪些_关于管理方面的书籍

    1、《只有偏执狂才能生存》安迪*格鲁夫(描写英特尔历程,并介绍在面对一个个转型和危机,作为领导人改如何应对)《谁说大象
  • 全球速讯:水城:提高魔芋种植技术

    春风和煦,暖阳普照。近日,贵州省六盘水市水城区蟠龙镇院坝村组织开展魔芋种植技术培训,开启魔芋种植“加速度”。在去年魔芋种
  • 当前速递!2023天津公务员笔试成绩公布时间

    》》》2023天津公务员笔试成绩公布详情公布时间:3月20日查询网站:天津市人事考试网上报名公共服务平台“天津市2023年公开招考公务员专题”(
  • 天天信息:汾阳交警查获一起无牌无证酒驾违法行为

    汾阳交警查获一起无牌无证酒驾违法行为
  • 南昌福泰人文纪念园代客祭扫服务2023

    南昌福泰人文纪念园代客祭扫服务2023尊重生命,把在福泰安居的逝者当作我们自己的亲人,我们有责任守护他们,纪念他们,并完成亲情传递的使命。
  • 电脑感染了win32trojan病毒怎么才能彻底清除?win32trojan详细处理方法介绍

    电脑感染了win32trojan病毒怎么才能彻底清除有网友反应遇上"win32trojan怎么解决"问题,具体情况如下:有用户发现经常会查杀出一个win32 tro
  • Win10电脑的VT虚拟化功能在哪里设置启用?开启vt虚拟化会对电脑有什么影响?

    Win10电脑的VT虚拟化功能在哪里设置启用VT虚拟化技术能够最大限度提高系统利用率,但是不少小伙伴都还不知道如何开启VT虚拟化,下面教一教
  • windows11系统更新一直卡在0%是什么情况?电脑更新一直是0的几种解决方法分享

    windows11系统更新一直卡在0%是什么情况Windows 11 Build 22454 可用于 Dev Channel 中受支持的设备,此更新来自公司的活跃开发分支
  • Windows11系统的触摸键盘自动更正功能在哪里关闭?电脑禁用自动更正设置方法

    Windows11系统的触摸键盘自动更正功能在哪里关闭厌倦了在使用屏幕触摸键盘打字时让Windows 11 自动更正单词?可能令人沮丧,尤其是如果您
  • 没有微软账号怎么才能安装激活Windows11系统?不设置Microsoft帐户安装Win11操作方法

    没有微软账号怎么才能安装激活Windows11系统是的,您可以使用本地帐户设置新的 Windows 11 家庭版安装,您只需要知道解决方法。您可以使
  • 每日热议!如何鉴别天门冬的真假_怎么判断天门冬的真假

    解答:1、龙须菜在云南部分地区被称为“小芦笋”,与芦笋混在一起。小芦笋肉质纺锤形,比芦笋细,皮深褐色,内部白色。呼吸轻微
  • 天天新消息丨醉驾结果出来以后怎么处理

    一、醉驾结果出来以后怎么处理醉驾结果出来以后的处理方式是由公安机关交通管理部门约束行为人至酒醒,吊销其机动车驾驶证,并且
  • Windows11电脑通过WSL挂载Linux文件系统详细操作方法 WSL挂载Linux文件怎么操作的?

    Windows11电脑通过WSL挂载Linux文件系统详细操作方法您现在可以使用适用于Linux2的Windows子系统在Windows10上挂载Linux文件系统,方法如在
  • winxp系统设置无线网络连接具体操作步骤 xp电脑怎么才能安装无线网络连接?

    winxp系统设置无线网络连接具体操作步骤1、点击开始——所有程序——附件——通讯——无线网络安装向导;2、在打开的无线网络安装向导界面中
  • xp电脑的麦克风一直没声音是什么问题?WinXP麦克风没声音修复方法详细介绍

    xp电脑的麦克风一直没声音是什么问题我们一起往下看看WinXP电脑麦克风没声音的设置方法。方法步骤1、先保证你的麦克风(耳机)接电脑的输入输
  • 怎么设置在win11专业版电脑上开启省电模式?使用快速设置开启电脑省电模式操作方法

    怎么设置在win11专业版电脑上开启省电模式一、什么是省电模式?省电模式是一种特殊的Windows省电模式,可通过调暗屏幕亮度、减少背景活动和
  • Windows11电脑卸载Edge浏览器的几种方法分享 怎么才能重新安装MicrosoftEdge?

    Windows11电脑卸载Edge浏览器的几种方法分享虽然 Microsoft Edge 与其他浏览器相当,但大多数用户更喜欢 Chrome 而不是其他网络浏览器
  • 每日热门:恒驰5将迎重要OTA 智能辅助驾驶功能全面开放

    近日,恒驰汽车邀请数十名恒驰5车主代表齐聚广州,体验山野露营派对。在车主交流环节,恒驰高管表示将于近期进行恒驰5OTA升级,届时智能辅助驾
  • 晋江市梦之缘妇幼用品有限公司_对于晋江市梦之缘妇幼用品有限公司简单介绍

    1、晋江市梦之缘妇幼用品有限公司于2011年02月21日在福建省晋江市市场监督管理局登记成立。2、法定代表人吴永义,公司
  • 天天资讯:提取盈余公积会计分录影响净利润吗(提取盈余公积会计分录)

    提取盈余公积会计分录影响净利润吗,提取盈余公积会计分录这个很多人还不知道,现在让我们一起来看看吧!1、提取法定盈余公积按税后利润的10%提
  • 前沿热点:容大感光定增股票申请获得中国证监会注册批复

    容大感光(300576 SZ)发布公告,公司于近日收到中国证券监督管理委员会(“中国证监会”)出具的《关于同意深圳市容大感光科技股份有限公司向特定
  • 焦点热议:完成G1503“跨越” 陆翔路(鄱阳湖路-杨南路)道路新建工程迎新进展

    东方网记者刘辉、通讯员郑宇3月19日报道:今天凌晨5时05分,陆翔路(鄱阳湖路-杨南路)道路新建工程跨G1503高速大型钢结构吊装工作顺利完成,
  • 热议:厄瓜多尔西南沿海发生6.5级地震

    新华社基多3月18日电(记者席玥朱婉君)厄瓜多尔西南部瓜亚斯省沿海地区18日发生6 5级地震,首都基多、主要城市瓜亚基尔及多个省份均有震感。
  • 环球简讯:获取保租房申请资格要收费?别信

    来源:经济日报近日,针对四川成都地区部分个人及中介声称可代为获取保障性租赁住房申请资格或代为购买保租房,成都市住房和城乡建设局发布声
  • 环球关注:数智国兴_关于数智国兴简介

    1、深圳市数智国兴信息科技有限公司坐落于深圳市高新技术园中区,是深圳市优秀软件企业,专业研制智能化信息产品和提供智能

相关推荐

  • 解除电脑网络限制实现无阻碍上网操
  • win11笔记本电脑的摄像头打不开是哪
  • windows10更新升级windows11系统是
  • 环球微资讯!国际金价“狂飙”!全
  • 怎么才能确认Windows11系统究竟有没
  • Windows11设置禁用后台应用程序方法
  • 怎么把Windows11系统的小部件板彻底
  • 电脑的搜索栏里面输入不了文字是什
  • win11电脑的任务栏图标有重叠的情况
  • 环球微动态丨2月份浙江快递业务量、

阅读排行

  • 环球今热点:【云原生 • Prometheus】云原生kubernetes服务发现原理图解
  • 热推荐:去年北京地区生产总值同比增长0.7%
  • 【全球热闻】王纲球:纸浆期货2305合约的共振区!
  • 世界快播:江乙对荆宣王的启示(江乙对荆宣王)
  • 天津异地就医怎么用医保报销?
  • win11电脑开机与重启字体都是乱码修复方法 电脑显示字体全部是乱码怎么办?
  • 笔记本更新到Win11系统之后指纹不能用修复方法 笔记本电脑的指纹功能用不了怎么办?
  • 解除电脑网络限制实现无阻碍上网操作教程分享 win11系统怎么解除电脑网速限制?
  • win11笔记本电脑的摄像头打不开是哪里的问题?电脑摄像头打不开几种解决方法分享
  • windows10更新升级windows11系统是免费的吗?电脑升级win11的几种方法介绍

中陕网版权所有