婷婷五色,五月天激情婷婷大综合,亚洲综合久久久久久中文字幕,国产ww久久久久久久久久,婷婷综合缴情亚洲五月伊,欧美日韩不卡在线

首頁 > 生活 >

【世界速看料】【云原生 ? Prometheus】云原生kubernetes服務(wù)發(fā)現(xiàn)原理圖解

云原生kubernetes服務(wù)發(fā)現(xiàn)原理圖解

概述

上節(jié)分析了Prometheus服務(wù)發(fā)現(xiàn)核心流程(如下圖),Discoverer基于不同協(xié)議發(fā)現(xiàn)采集點,通過channel通知到updater協(xié)程,然后更新到discoveryManager結(jié)構(gòu)體trargets字段中,最終由sender協(xié)程將discoveryManagertargets字段數(shù)據(jù)發(fā)送給scrape采集模塊。


(相關(guān)資料圖)

Discoverer定義的接口類型,不同的服務(wù)發(fā)現(xiàn)協(xié)議基于該接口進(jìn)行實現(xiàn):

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協(xié)議配置

Prometheus本身就是作為云原生監(jiān)控出現(xiàn)的,所以對云原生服務(wù)發(fā)現(xiàn)支持具有天然優(yōu)勢。kubernetes_sd_configs服務(wù)發(fā)現(xiàn)協(xié)議核心原理就是利用API Server提供的Rest接口獲取到云原生集群中的PODServiceNodeEndpointsEndpointsliceIngress等對象的元數(shù)據(jù),并基于這些信息生成Prometheus采集點,并且可以隨著云原生集群狀態(tài)變更進(jìn)行動態(tài)實時刷新。

? kubernetes云原生集群的PODServiceNodeIngress等對象元數(shù)據(jù)信息都被存儲到etcd數(shù)據(jù)庫中,并通過API Server組件暴露的Rest接口方式提供訪問或操作這些對象數(shù)據(jù)信息。 ?

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地址,出于安全考慮,這些接口是帶有安全認(rèn)證的,bearer_token_fileca_file則指定訪問API Server使用到的認(rèn)證信息;role指定基于云原生集群中哪種對象類型做服務(wù)發(fā)現(xiàn),支持PODServiceNodeEndpointsEndpointsliceIngress六種類型;namespaces指定作用于哪個云原生命名空間下的對象,不配置則對所有的云原生命名空間生效;

「為什么沒有配置api server信息也可以正常進(jìn)行服務(wù)發(fā)現(xiàn)?」

很多時候我們并不需要配置api server相關(guān)信息也可以進(jìn)行服務(wù)發(fā)現(xiàn),如我們將上面示例簡化如下寫法:

- job_name: kubernetes-pod    kubernetes_sd_configs:    - role: pod      namespaces:        names:        - "test01"

一般Prometheus部署在監(jiān)控云原生集群上,從 Pod使用 Kubernetes API官方客戶端庫(client-go)提供了更為簡便的方法:rest.InClusterConfig()API Server地址是從POD的環(huán)境變量KUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORT構(gòu)建出來, token以及 ca信息從POD固定的文件中獲取,因此這種場景下kubernetes_sd_configsapi_serverca_file是不需要配置的。

? client-gokubernetes官方提供的go語言的客戶端庫,go應(yīng)用使用該庫可以訪問kubernetesAPI Server,這樣我們就能通過編程來對kubernetes資源進(jìn)行增刪改查操作。 ?

Informer機(jī)制

從之前分析的服務(wù)發(fā)現(xiàn)協(xié)議接口設(shè)計得知,了解k8s服務(wù)發(fā)現(xiàn)協(xié)議入口在discovery/kubernetes.goRun方法:

Run方法中switch羅列出不同role的處理邏輯,剛好和配置示例中role支持的六種云原生對象類型對應(yīng),只是基于不同的對象進(jìn)行服務(wù)發(fā)現(xiàn),基本原理都是一致的。

云原生服務(wù)發(fā)現(xiàn)基本原理是訪問API Server獲取到云原生集群資源對象,PrometheusAPI Server進(jìn)行交互這里使用到的是client-go官方客戶端里的Informer核心工具包。Informer底層使用ListWatch機(jī)制,在Informer首次啟動時,會調(diào)用List API獲取所有最新版本的資源對象,緩存在內(nèi)存中,然后再通過Watch API來監(jiān)聽這些對象的變化,去維護(hù)這份緩存,降低API Server的負(fù)載。除了ListWatchInformer還可以注冊自定義事件處理邏輯,之后如果監(jiān)聽到事件變化就會調(diào)用對應(yīng)的用戶自定義事件處理邏輯,這樣就實現(xiàn)了用戶業(yè)務(wù)邏輯擴(kuò)展。

Informer機(jī)制工作流程如下圖:

Informer機(jī)制本身比較復(fù)雜,這里先暫時不太具體說明,只需要理解Prometheus使用Informer機(jī)制獲取和監(jiān)聽云原生資源對象,即上圖中只有「綠色框部分是自定義業(yè)務(wù)邏輯」,其它都是client-go框架informer工具包提供的功能。

這其中的關(guān)鍵就是注冊自定義AddFuncDeleteFuncUpdateFunc三種事件處理器,分別對應(yīng)增、刪、改操作,當(dāng)觸發(fā)對應(yīng)操作后,事件處理器就會被回調(diào)感知到。比如云原生集群新增一個POD資源對象,則會觸發(fā)AddFunc處理器,該處理器并不做復(fù)雜的業(yè)務(wù)處理,只是將該對象的key放入到Workqueue隊列中,然后Process Item組件作為消費(fèi)端,不停從Workqueue中提取數(shù)據(jù)獲取到新增PODkey,然后交由Handle Object組件,該組件通過Indexer組件提供的GetByKey()查詢到該新增POD的所有元數(shù)據(jù)信息,然后基于該POD元數(shù)據(jù)就可以構(gòu)建采集點信息,這樣就實現(xiàn)kubernetes服務(wù)發(fā)現(xiàn)。

「為什么需要Workqueue隊列?」

Resource Event Handlers組件注冊自定義事件處理器,獲取到事件時只是把對象key放入到Workerqueue中這種簡單操作,而沒有直接調(diào)用Handle Object進(jìn)行事件處理,這里主要是避免阻塞影響整個informer框架運(yùn)行。如果Handle Object比較耗時放到Resource Event Handlers組件中直接處理,可能就會影響到④⑤功能,所以這里引入Workqueue類似于MQ功能實現(xiàn)解耦。

源碼分析

熟悉了上面Informer機(jī)制,下面以role=POD為例結(jié)合Prometheus源碼梳理下上面流程。

1、創(chuàng)建和API Server交互底層使用的ListWatch工具;

2、基于ListWatch創(chuàng)建Informer

3、注冊資源事件,分別對應(yīng)資源創(chuàng)建、資源刪除和資源更新事件處理;

? 這里的 podAddCountpodDeleteCountpodUpdateCount分別對應(yīng)下面三個指標(biāo)序列,指標(biāo)含義也比較明顯: 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標(biāo)識資源類型,包括:"endpointslice", "endpoints", "node", "pod", "service", "ingress"五種類型; event標(biāo)識事件類型,包括:"add", "delete", "update"三種類型。 ?

4、事件處理,AddFuncDeleteFuncUpdateFunc注冊的事件處理邏輯一樣,處理邏輯也比較簡單:就是獲取資源對象key,并將其寫入到Workqueue中;

? 對于POD資源,這里的key就是:namespace/pod_name格式,比如key=test01/nginx-deployment-5ffc5bf56c-n2pl8。 ?

5、給Workqueue注冊一個無限循環(huán)處理邏輯,就能持續(xù)從Workqueue中取出key進(jìn)行處理;

? 針對Pod里的每個Container上的每個port,都會生成一個對應(yīng)采集點target,其中__address__就是PodIP+port組合。 ?

6、最后啟動Informer,讓整個流程運(yùn)轉(zhuǎn)起來;

關(guān)鍵詞:

責(zé)任編輯:Rex_24

推薦閱讀

關(guān)于我們 聯(lián)系我們 商務(wù)合作 誠聘英才 網(wǎng)站地圖

Copyright @ 2008-2020 www.miyueyun.com.cn Corporation,All Rights Reserved

熱訊新聞網(wǎng) 版權(quán)所有 備案號:豫ICP備20005723號-6
文章投訴郵箱:2 9 5 9 1 1 5 7 8@qq.com 違法信息舉報郵箱:jubao@123777.net.cn

營業(yè)執(zhí)照公示信息

欧美一区二区三区啪啪| 久久精品中文字幕无码| 亚洲色丰满少妇高潮18P| 毛很浓密超多黑毛的少妇| JAPANESE 大战黑人| 四虎永久在线精品国产馆V视影院| 国精产品砖一区二区三区糖心| 夜夜躁狠狠躁日日躁2022| 欧洲一卡2卡3卡4卡乱码视频| 国产成人MV视频在线观看| 亚洲乱码国产乱码精品精姦 | 成人免费一区二区三区视频| 香蕉成人伊视频在线观看| 久久久久久九九精品久| 啊灬啊灬快点灬用力岳| 无码人妻精品一区二区三区不卡 | 四虎成人精品无码| 极品教师动漫在线观看免费完整版| 正在播放熟妇群老熟妇456| 日韩无码AV一区二区| 好男人好资源电影在线播放| 中文字幕无码无码专区| 十八禁羞羞爽爽爽爱爱午夜网| 精品人妻久久久久久888| 99久热RE在线精品99 6热| 婷婷色香合缴缴情AV第三区| 久久久久久AV无码免费网站下载| 啊灬啊别停灬用力啊老师| 性丰满ⅩXXOOO性HD| 免费无码又黄又爽又刺激| 父母儿女一家换着玩的文案| 亚洲日韩精品欧美一区二区| 人妻少妇无码精品视频区| 国产亚洲美女精品久久久| 18禁无遮挡无码国产免费网站 | 免费看成人A级毛片| 荡公乱妇第1章方情95| 亚洲国产AV无码专区亚洲AV| 欧美午夜精品一区二区蜜桃| 国产欧美日韩VA另类在线播放| 综合偷自拍亚洲乱中文字幕| 天天狠天天透天干天天怕∴| 久久狼人大香伊蕉国产| 成人奭片免费观看| 亚洲婷婷五月激情综合APP| 日本熟妇色丰满少妇wwwww色 | 色噜噜狠狠色综合日日 | 国产精品久久久久久久稀缺资源| 伊人依成久久人综合网| 少女のトゲ在线观看动漫 | 性猛交ⅩXXX富婆video| 女技师强制高潮18XXXX按摩| 国产乱人伦偷精品视频| 18禁黄网站禁片免费观看女女| 无码办公室丝袜OL中文字幕| 免费无遮挡无码永久在线观看视频| 国产成人精品A∨一区二区| 永久不收费的视频软件APP| 四虎永久在线精品免费网址| 免费A级毛片出奶水| 国产欧美日韩专区发布| JAPANESE55丰满成熟妇| 亚洲国产无套无码AV电影| 日韩精品无码一区二区视频| 久久人妻无码一区二区三区av| 国产成人精品久久一区二区| 中文字幕无码精品三级在线电影| 羞羞汗汗YY歪歪漫画AV漫画| 欧美性猛交XXXX乱大交蜜桃| 精品国产国偷自产在线观看| 丁香五月天天综合亚洲| 在出租屋里被强高H| 性少妇VIDEOXXX欧美69| 人妻在卧室被老板疯狂进入| 久久国产精品娇妻素人| 国99久9在线 | 免费| 2020精品国产自在现线看| 亚洲AV无码成人精品区一本二本| 秋霞电影网免费观看| 久久97人人超人人超碰超国产| 国产爱豆剧传媒在线观看视频| …久久精品99久久香蕉国产| 亚洲AV无码熟妇在线观看| 日韩人妻无码免费视频一区二区三区| 邻居少妇张开双腿让我爽一夜| 国产色婷婷精品综合在线| 拔萝卜电视剧高清免费| 永久亚洲成A人片777777| 性一交一乱一伦一色一情| 人人人爽人人澡人人高潮| 老太太BGMBGMBGM性| 国产在线观看无码免费视频 | 免费AV大片在线观看入口| 国产在线拍偷自揄拍无码| 从大树开始的进化漫画| 中文字幕无码成人免费视频| 亚洲国产精华推荐单单品榜| 少妇CHINA中国人妻VIDE| 欧美Z0ZO人禽交| 久久国产情侣露脸精品| 国产精品久久久久久超碰| 巴西FREE性VIDEO极品| 在办公室里揉弄小雪好爽 | 日日摸夜夜添夜夜添高潮喷水 | 好爽又高潮了毛片| 国产AV一区二区三区无码野战| BT天堂在线WWW最新版官网| 亚洲一区在线日韩在线尤物| 性XXⅩ欧美老妇肥老太| 色综合久久一区二区三区| 欧美伊人色综合久久天天| 久久亚洲精品无码AⅤ大香| 国偷自产一区二区免费视频| 国产SM重口调教在线观看| 凹凸视频免费在线| 中文字幕亚洲精品无码| 亚洲女毛多水多21P| 亚洲444KKKK在线观看无码| 日日碰狠狠添天天爽无码| 欧洲亚洲1卡二卡三卡2021| 老旺的大肉蟒进进出出视频| 精品无人区麻豆乱码1区2| 国产无套内射普通话对白| 国产成人精品一区二区秒播| 差差差无掩盖30分钟79集| AV片在线观看免费| 中国亚洲女人69内射少妇| 亚洲伊人五月丁香激情| 亚洲国产成在人网站天堂| 午夜性色一区二区三区不卡视频| 色综合色欲色综合色综合色综合R| 欧洲另类一二三四区| 蜜芽AV在线新地址| 久人人爽人人爽人人片AV| 久久99精品国产自在现线小黄鸭| 韩国精品久久久久久无码| 国产免费看MV大片的软件| 国产成人无码AA精品一区| 丰满多毛的大隂户BEST| 苍井空张开腿实干12次| ぱらだいす天堂中文网WWW在线| 99精品无人区乱码在线观看| 中文字幕人妻互换激情| 尤物在线视频.YW163.成年| 亚洲熟妇色XXXXXX爽| 亚洲人成网站在线在线观看| 亚洲不卡无码A∨在线| 亚洲AV成人无码一区二区三区在| 无码少妇一区二区三区| 忘忧草社区在线影视| 四虎永久在线精品国产馆V视影院| 色欲综合久久躁天天躁| 日日摸夜夜添夜夜添毛片性色AV| 日本适合十八岁以上人群的护肤品| 人妻办公室内上司侵犯| 人妻互换精品一区二区| 人妻丰满熟妇无码区yeezy| 人妻办公室出轨上司HD院线| 人妻aⅴ无码一区二区色戒| 欧美伊人色综合久久天天| 破了亲妺妺的处免费视频国产| 欧美激情国产精品视频一区| 欧美噜噜久久久XXX成人高潮| 欧美乱人伦人妻中文字幕| 欧美极品少妇XXXXⅩ| 欧美激情在线播放| 欧美日韩综合精品一区二区 | 久久综合狠狠综合久久综合88 | 国产亚洲AV片在线观看播放按摩| 国产精品亲子乱子伦XXXX裸| 国产精品爽爽ⅴa在线观看| 国产精品青草久久福利不卡| 国产日产欧美一区二区蜜桃| 国产香蕉97碰碰久久人人| 国色天香在线观看全集免费播放 | 俄罗斯SEVERODVINSK| 疯狂做受XXXⅩ高潮高潮按摩| 丰满的继牳3中文字幕系列免费| 国产99在线 | 亚洲| 国产精品久久久久成人| 国产午夜精品一区二区三区软件| 好满射太多了装不下了APP| 娇妻被领导抱进卧室| 久久精品国产亚洲AV麻豆小说| 久久理伦片琪琪电影院| 乱码人妻一区二区三区| 免费无码成人AV在线播| 欧美性猛交XXXX黑人口味重| 日本高清视频色WWWWWW色| 色欲AV无码一区二区人妻| 调教小奴高潮惩罚PLAY道具 | 日韩欧美人妻系列中文字幕一区二区三区| 日日碰狠狠添天天爽超碰97| 天堂AV无码大芭蕉伊人AV不卡| 无码专区HEYZO色欲AV| 亚洲AV永久无码精品久久麻豆| 亚洲熟女www一区二区三区| 中国熟妇人妻性XXXXX在线看| BBOX撕裂BASS后门在线| 成人三级A视频在线观看|