欧美日本国产一区,国产农村妇女毛片精品久久莱园子,国产精品视频一区二区三区,777gn亚洲综合国产

IT可觀測(cè)系列剖析——容器監(jiān)控

發(fā)布日期:2024-09-09 14:53:14

分享到

01. 容器監(jiān)控痛點(diǎn)

近年來(lái),Kubernetes 作為許多公司云原生改造的首選容器編排平臺(tái),越來(lái)越多的開(kāi)發(fā)和運(yùn)維工作都圍繞 Kubernetes 展開(kāi),保證 Kubernetes 的穩(wěn)定性和可用性是基本需求,而其中的核心是如何有效地監(jiān)控 Kubernetes 集群,確保整個(gè)集群的高可觀測(cè)性容器監(jiān)控常常會(huì)有以下痛點(diǎn):

  • 動(dòng)態(tài)環(huán)境與復(fù)雜架構(gòu)
容器化環(huán)境通常是高度動(dòng)態(tài)和分布式的,這意味著容器生命周期短且頻繁變化,同時(shí)應(yīng)用由多個(gè)微服務(wù)組件構(gòu)成,分布在多個(gè)節(jié)點(diǎn)上。這種動(dòng)態(tài)性和復(fù)雜性要求監(jiān)控工具能夠快速適應(yīng)環(huán)境變化,并有效地追蹤跨多個(gè)服務(wù)和節(jié)點(diǎn)的問(wèn)題。
  • 數(shù)據(jù)量大與性能開(kāi)銷
高頻率的數(shù)據(jù)收集和大量的日志、指標(biāo)數(shù)據(jù)會(huì)迅速增長(zhǎng),給存儲(chǔ)和處理帶來(lái)挑戰(zhàn)。另外,監(jiān)控系統(tǒng)本身引入的性能開(kāi)銷也需要謹(jǐn)慎管理,以免影響應(yīng)用程序的正常運(yùn)行。
  • 多層次監(jiān)控需求

容器監(jiān)控需要覆蓋多個(gè)層次,包括底層基礎(chǔ)設(shè)施、容器運(yùn)行時(shí)、容器編排平臺(tái),以及應(yīng)用層面的性能指標(biāo)和日志數(shù)據(jù)。


02. 場(chǎng)景介紹

容器監(jiān)控,泛指在容器場(chǎng)景下,對(duì)容器環(huán)境的指標(biāo)、事件等進(jìn)行上報(bào)。目前市面上的容器管理平臺(tái),基本被Kubernetes所統(tǒng)一,本文將核心圍繞Kubernetes的場(chǎng)景及特性,介紹嘉為藍(lán)鯨監(jiān)控中心(下稱“監(jiān)控中心”)是如何實(shí)現(xiàn)容器監(jiān)控的。

不同于常見(jiàn)的主機(jī)監(jiān)控、組件監(jiān)控等成就,容器監(jiān)控具備以下幾個(gè)鮮明的監(jiān)控特性:

  • 監(jiān)控目標(biāo)是動(dòng)態(tài)的,無(wú)法通過(guò)傳統(tǒng)的方式對(duì)指定目標(biāo)IP、目標(biāo)端口進(jìn)行監(jiān)控。
  • 由于容器的頻繁銷毀與創(chuàng)建,監(jiān)控目標(biāo)展現(xiàn)出極高的動(dòng)態(tài)性,缺乏有效的監(jiān)控手段將直接導(dǎo)致難以追溯。
  • 無(wú)需關(guān)注容器具體運(yùn)行在哪臺(tái)機(jī)器上。
  • 容器的數(shù)量多,上報(bào)的指標(biāo)量級(jí)多。

圍繞著上面的特性,容器監(jiān)控的訴求主要分為以下幾點(diǎn):

1)集群本身的運(yùn)行狀態(tài)監(jiān)控,監(jiān)控的目的是隨時(shí)關(guān)注容量、及時(shí)發(fā)現(xiàn)異常,讓集群的運(yùn)維者能夠快速修復(fù)集群?jiǎn)栴}。

  • 對(duì)Kubernetes集群狀態(tài)的監(jiān)控,如Master集群的etcd,Kube-api、Kube-scheduler、Kube-proxy、Kubelet等核心服務(wù)的監(jiān)控。
  • 對(duì)Node節(jié)點(diǎn)狀態(tài)的監(jiān)控,如CPU、內(nèi)存、網(wǎng)卡等監(jiān)控。
  • 對(duì)資源的統(tǒng)計(jì)需求,如Cluster、NameSpace、 Node、Pod數(shù)量的統(tǒng)計(jì)。
  • 對(duì)Workload、Service、Pod、Container運(yùn)行指標(biāo)和狀態(tài)監(jiān)控。

2)Kubernetes事件監(jiān)控記錄了組件的某個(gè)時(shí)間的動(dòng)作,用于展示集群內(nèi)發(fā)生的情況,當(dāng)集群內(nèi)的資源狀態(tài)發(fā)生變化時(shí)產(chǎn)生新的event,對(duì)容器事件的收集、監(jiān)控,避免集群或節(jié)點(diǎn)可用性產(chǎn)生的影響。

  • 容器事件:如容器啟停狀態(tài)、拉取/創(chuàng)建/啟動(dòng)容器失敗等;
  • 節(jié)點(diǎn)事件:如節(jié)點(diǎn)添加/刪除、節(jié)點(diǎn)狀態(tài)變化、節(jié)點(diǎn)可用性等;
  • Pod事件:如創(chuàng)建Pod成功/失敗、刪除pod成功/失敗等.

3)自定義指標(biāo)的監(jiān)控:

  • 對(duì)于運(yùn)行在容器中的服務(wù)而言,僅僅依賴運(yùn)行環(huán)境的指標(biāo)正常性來(lái)評(píng)估服務(wù)狀態(tài)是不足夠的。因?yàn)榧幢氵\(yùn)行環(huán)境(如CPU、內(nèi)存等)指標(biāo)表現(xiàn)正常,因此需要上報(bào)服務(wù)本身的指標(biāo)。
  • 服務(wù)的指標(biāo),如接口的成功、失敗、飽和度、錯(cuò)誤率等,通常這類指標(biāo)對(duì)應(yīng)用開(kāi)發(fā)來(lái)說(shuō),更具有實(shí)際參考價(jià)值,更能夠?qū)I(yè)務(wù)有幫助。


03. 產(chǎn)品方案

對(duì)于K8s的監(jiān)控,其實(shí)已經(jīng)有一套原生的Prometheus方案,方案本身采集的指標(biāo)相對(duì)完善,但是核心問(wèn)題是對(duì)集群性能有較大的占用,且整體部署方式相對(duì)獨(dú)立,采集的指標(biāo)無(wú)法結(jié)合其他監(jiān)控產(chǎn)品進(jìn)行有效的消費(fèi)。

為了讓大家統(tǒng)一集中管理監(jiān)控,將容器監(jiān)控與主機(jī)監(jiān)控,業(yè)務(wù)監(jiān)控等融為一體,監(jiān)控中心推出了容器場(chǎng)景的監(jiān)控能力??梢越鉀Q以下問(wèn)題:

  • 避免Prometheus服務(wù)在高負(fù)載情況下OOM,查詢無(wú)響應(yīng),可用性不高問(wèn)題。
  • 無(wú)需每個(gè)Kubernetes集群獨(dú)立部署Prometheus。
  • 解決容器監(jiān)控和業(yè)務(wù)監(jiān)控割裂使用的問(wèn)題,集中式查看監(jiān)控、告警,讓監(jiān)控?cái)?shù)據(jù)在統(tǒng)一的地方消費(fèi)使用,無(wú)需同時(shí)維護(hù)多套監(jiān)控系統(tǒng)。

得益于監(jiān)控中心化的存儲(chǔ)能力,Bkmonitor-operator 較 Prometheus-operator 方案,對(duì)集群內(nèi)資源消耗更低。


04. 效果展示

1)容器多指標(biāo)計(jì)算檢測(cè)

容器監(jiān)控的指標(biāo)數(shù)量龐雜,許多指標(biāo)均需經(jīng)過(guò)二次計(jì)算,甚至無(wú)法通過(guò)常規(guī)的配置方式配置檢測(cè)策略。對(duì)此,監(jiān)控中心同步提供以下兩個(gè)檢測(cè)能力:

① 衍生指標(biāo)管理

支持衍生指標(biāo)能力,允許用戶通過(guò)指標(biāo)計(jì)算自定義衍生指標(biāo)。要知道,在容器內(nèi),許多上層資源指標(biāo)都是由下層指標(biāo)匯聚計(jì)算而來(lái)(比如Cluster的性能指標(biāo),其實(shí)是Pod性能指標(biāo)匯聚計(jì)算獲得),通過(guò)衍生指標(biāo)功能,用戶可以預(yù)定義上層匯聚指標(biāo),并在策略配置,可視化展示時(shí)直接消費(fèi),而不需要每次都重復(fù)配置計(jì)算規(guī)則。


② 兼容PromQL表達(dá)式

完全兼容PromQL檢測(cè)預(yù)計(jì),實(shí)現(xiàn)更多樣化的檢測(cè)邏輯,應(yīng)對(duì)容器監(jiān)控下復(fù)雜的監(jiān)控檢測(cè)需求。


③ 容器資源監(jiān)控

監(jiān)控中心支持對(duì)容器內(nèi)各類資源對(duì)象進(jìn)行發(fā)現(xiàn),并采集相關(guān)性能指標(biāo),包括以下對(duì)象:

  • Cluster
  • Workload (DaemonSet、Deployment、StatefulSet、Job、CrontJob、GameStatefulSet、GameDeployment)
  • Pod
  • Container
  • Node

支持按照容器實(shí)例查看對(duì)應(yīng)的實(shí)時(shí)指標(biāo)視圖、告警數(shù)據(jù)以及實(shí)例本身的信息。


④ 容器組件服務(wù)監(jiān)控

對(duì)于容器上部署的組件服務(wù),監(jiān)控中心支持通過(guò)多種方式進(jìn)行監(jiān)控:

  • 支持serviceMonitor(主推)和PodMonitor;
  • sidecar方式( 以sidecar模式部署exporter抓取器暴露出metrics,結(jié)合serviceMonitor進(jìn)行采集);
  • 中心遠(yuǎn)程統(tǒng)一采集 (組件本身暴露了metrics,結(jié)合serviceMonitor進(jìn)行采集)。

支持檢索查看上報(bào)后的指標(biāo)實(shí)時(shí)數(shù)據(jù)。


⑤ 容器日志監(jiān)控

對(duì)于容器上的日志,監(jiān)控中心支持采集以下類型的日志:

  • 支持采集在容器上運(yùn)行的文件日志,即應(yīng)用/服務(wù)產(chǎn)生的文本日志,例如Nginx日志、業(yè)務(wù)日志等;
  • 支持采集K8s Node日志;
  • 支持Kubernetes的標(biāo)準(zhǔn)輸出,即Pod容器的標(biāo)準(zhǔn)輸出,包含標(biāo)準(zhǔn)輸出信息(stdout)和標(biāo)準(zhǔn)出錯(cuò)信息(stderr),輸出路徑為容器的/dev/termination-log文件。

配置容器采集時(shí)可根據(jù)需要選擇指定的Pods。


05. 最佳實(shí)踐

容器監(jiān)控場(chǎng)景由于自身的復(fù)雜性,即使在技術(shù)上我們實(shí)現(xiàn)了對(duì)目標(biāo)的全量監(jiān)控、采集,但是如何配置有效的告警依然是用戶實(shí)施容器監(jiān)控的一大難點(diǎn)。

為了幫助在容器監(jiān)控場(chǎng)景下經(jīng)驗(yàn)不深的用戶,監(jiān)控中心不僅內(nèi)置了默認(rèn)的容器監(jiān)控策略、容器儀表盤(pán),同時(shí)還提供了詳盡的指標(biāo)說(shuō)明文檔和最佳實(shí)踐配置指引,幫助用戶全面了解容器監(jiān)控?cái)?shù)據(jù)。

免費(fèi)申請(qǐng)演示

聯(lián)系我們

服務(wù)熱線:

020-38847288

QQ咨詢:

3593213400

在線溝通:

立即咨詢
查看更多聯(lián)系方式

申請(qǐng)演示

請(qǐng)登錄后在查看!