日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
一文搞懂基于OpenTelemetry進行Kubernetes全鏈路觀測

一文搞懂基于 OpenTelemetry 進行 Kubernetes 全鏈路觀測

作者:Luga Lee 2023-09-24 23:35:46

云計算

云原生 今天我們來聊一下云原生生態(tài)核心技術(shù)—— 可觀測性,即 “基于 OpenTelemetry 進行 Kubernetes 全鏈路觀測” 。

中寧ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

 Hello folks,我是 Luga,今天我們來聊一下云原生生態(tài)核心技術(shù)—— 可觀測性,即 “基于 OpenTelemetry 進行 Kubernetes 全鏈路觀測” 。

一、基于 OpenTelemetry 徹底改變我們的觀測意識 

隨著組織越來越多地采用 Kubernetes 來部署和管理應用程序,Kubernetes 已成為事實上的容器編排標準。在這樣的動態(tài) Kubernetes 環(huán)境中,觀測資源對于確保平臺上運行的應用程序的健康至關重要。

然而,動態(tài)的 Kubernetes 環(huán)境給觀測帶來了很大的復雜性。應用程序不斷地進行擴展、部署和更新,傳統(tǒng)的依賴代理或輪詢的監(jiān)控技術(shù)無法滿足 Kubernetes 環(huán)境的需求,因為它們無法跟上環(huán)境變化的速度和分布式架構(gòu)的復雜性。

如果無法及時提供實時觀測功能,將導致平均解決時間(MTTR)的增加。這將顯著影響應用程序的整體可用性和性能,對業(yè)務本身產(chǎn)生負面影響。

為了克服傳統(tǒng)監(jiān)控解決方案的這些缺點,技術(shù)團隊依靠使用 OpenTelemetry 的創(chuàng)新方法來觀測 Kubernetes 環(huán)境。通過采用 OpenTelemetry,我們可以使用標準化的方法來收集、處理和導出遙測數(shù)據(jù)。

OpenTelemetry 提供了一套統(tǒng)一的 API 和工具,使得在 Kubernetes 環(huán)境中收集和處理遙測數(shù)據(jù)變得更加簡單和一致。它支持跨語言和跨平臺,可以與不同的組件和工具集成。這使得管理員能夠?qū)崟r監(jiān)測應用程序的性能指標、日志和跟蹤數(shù)據(jù),并使用可視化工具進行分析和故障排除。

通過 OpenTelemetry,技術(shù)團隊可以更好地了解 Kubernetes 環(huán)境中應用程序的行為和性能,快速識別和解決潛在的問題。這將有助于減少 MTTR,提高應用程序的可用性,并確保業(yè)務能夠正常運行。

二、當前觀測 Kubernetes 所面臨的挑戰(zhàn) 

傳統(tǒng)觀測 Kubernetes 環(huán)境面臨一些挑戰(zhàn),這些挑戰(zhàn)可能限制組織對其應用程序和基礎設施的完整可見性和細粒度控制。

  • 復雜性:Kubernetes 是一個高度復雜的容器編排平臺,由多個組件和服務組成。傳統(tǒng)的觀測方法可能無法有效應對這種復雜性,導致難以收集和分析相關的監(jiān)控數(shù)據(jù)。
  • 動態(tài)性:Kubernetes 環(huán)境中的應用程序和資源拓撲通常是動態(tài)變化的,包括 Pod 的創(chuàng)建、刪除、縮放等操作。傳統(tǒng)觀測方法可能無法及時跟蹤這些變化,導致監(jiān)控數(shù)據(jù)的準確性和一致性受到影響。
  • 高度分布式:Kubernetes 環(huán)境中的應用程序通常是分布式的,由多個容器和服務組成。傳統(tǒng)的觀測方法可能無法提供對分布式系統(tǒng)的全面可見性,導致難以追蹤和分析應用程序的端到端性能和依賴關系。
  • 多樣性:Kubernetes 生態(tài)系統(tǒng)中存在多種不同的組件和工具,用于不同的觀測需求,例如 Prometheus、Grafana、ELK 堆棧等。組織可能需要整合和管理這些不同的工具,以獲得全面的觀測能力。
  • 彈性和可擴展性:Kubernetes 環(huán)境的彈性和可擴展性使得應用程序的規(guī)模和負載模式可能隨時發(fā)生變化。傳統(tǒng)觀測方法可能無法有效應對這種變化,導致監(jiān)控數(shù)據(jù)的準確性和時效性受到影響。

面對這些挑戰(zhàn),組織需要采用更先進的觀測方法和工具,如 OpenTelemetry,以應對 Kubernetes 環(huán)境的復雜性和動態(tài)性,提供更全面和準確的觀測能力。這樣可以幫助組織更好地理解和管理其應用程序和基礎設施,提高性能和可用性,并加快故障排除和問題解決的速度。

OpenTelemetry 提供了一種方法,可以從應用程序和 Kubernetes 環(huán)境中收集這些觀測參數(shù),包括輕松實現(xiàn)分布式跟蹤。這使得組織能夠快速識別和診斷問題,從而提高故障排除的效率。

通過 OpenTelemetry,組織可以獲得更全面的可見性,了解應用程序的各個組件之間的相互依賴關系和性能表現(xiàn)。它提供了一種標準化的方式來收集和傳輸監(jiān)控數(shù)據(jù),使組織能夠深入了解應用程序的運行狀況,并快速響應潛在的問題。

因此,使用 OpenTelemetry 可以幫助組織克服傳統(tǒng)觀測方法的局限性,提供更全面、細粒度的觀測能力,從而提高對分布式應用程序的理解和故障診斷能力。

三、揭秘 OpenTelemetry 在觀測 Kubernetes 中的關鍵作用 

盡管有多種方法可以對 Kubernetes 進行觀測,但與傳統(tǒng)的觀測選項相比,使用 OpenTelemetry 提供了更多的優(yōu)勢。然而,如果完全忽視對業(yè)務應用程序的觀測,可能會對其性能和可用性產(chǎn)生嚴重而可怕的影響。

忽視觀測意味著組織將無法準確地了解應用程序的運行狀況和健康狀態(tài)。沒有及時的觀測數(shù)據(jù),組織將無法獲得關鍵的指標和指示器,以評估應用程序的性能表現(xiàn)和資源利用情況。這將使組織難以發(fā)現(xiàn)潛在的性能瓶頸、資源爭用或其他可能導致應用程序性能下降和可用性問題的因素。

而同時,缺乏觀測將導致組織擁有更長的平均解決時間(MTTR),因為組織將沒有必要的指標來有效和高效地識別應用程序中問題的根本原因。通過監(jiān)控 Kubernetes Cluster 中的關鍵組件,可以顯著降低 MTTR。

組織可能會在沒有充分觀測其 Kubernetes 環(huán)境的情況下遇到一些問題,例如 Kubernetes Pod 崩潰循環(huán)、持續(xù)的卷故障和作業(yè)故障。所有這些問題都會導致 Kubernetes 環(huán)境和在這些資源上運行的應用程序出現(xiàn)嚴重的停機時間和性能問題。

另一個需要通過充分觀測來改進的關鍵方面是識別應用程序的分布式組件和運行這些服務的基礎設施之間的依賴關系所需的端到端可見性。如果對應用程序的整體情況缺乏了解,組織就無法對可能出現(xiàn)的問題進行分析和深入研究,從而增加了縮小根本原因和減少平均解決時間(MTTR)的復雜性。

觀測還為異常檢測奠定了基礎,這允許組織識別與應用程序正常操作不符的行為。這一點在嘗試解決可能影響應用程序性能的異常時變得尤為重要。

OpenTelemetry 提供的額外好處確保了觀測實施不當造成的挑戰(zhàn)最小化,團隊可以通過解決 MTTR 時間增加、可見性有限等問題來充分利用這些功能。因此,使用 OpenTelemetry 觀測 Kubernetes 是至關重要的。

四、最佳實踐:確定關鍵觀測目標 

在收集和分析來自 Kubernetes 環(huán)境的指標時,有一些關鍵指標需要考慮。以下內(nèi)容提供了組織所需收集的關鍵指標的良好基礎知識。

1.Node 指標

此指標提供有關各個 Kubernetes Cluster節(jié)點性能和資源使用情況的詳細信息,包括 CPU、內(nèi)存和網(wǎng)絡使用情況。通過監(jiān)測節(jié)點指標,可以了解到節(jié)點的負載狀況,發(fā)現(xiàn)資源瓶頸并進行容量規(guī)劃。

2.Pod 指標

此指標提供有關在節(jié)點上運行的 Pod 資源使用和操作的信息,包括 CPU、內(nèi)存和網(wǎng)絡使用情況。通過監(jiān)測 Pod 指標,可以了解到每個 Pod 的資源消耗情況,識別資源密集型的 Pod 并進行優(yōu)化。

3.Container 指標

此指標提供有關 Pod 中運行的各個容器性能和資源使用情況的詳細信息,包括 CPU、內(nèi)存和網(wǎng)絡使用情況。通過監(jiān)測容器指標,可以深入了解每個容器的資源消耗情況,找到資源泄漏或不良配置的容器并進行調(diào)整。

4.API Server 指標

此指標包括請求延遲、響應時間和錯誤率,提供有關 Kubernetes API 服務器功能和可用性的詳細信息。通過監(jiān)測 API 服務器指標,可以了解API服務器的性能狀況,識別潛在的性能瓶頸和故障情況。

5.Etcd 指標

此指標包括磁盤使用情況、響應時間和錯誤率,提供有關 Etcd Cluster 操作和狀態(tài)的詳細信息。通過監(jiān)測 Etcd 指標,可以了解 Etcd Cluster 的健康狀況、性能瓶頸和故障情況。

通過收集和分析這些關鍵指標,組織可以獲得關于 Kubernetes 環(huán)境中 Node、Pod、Container、API Server 和 Etcd Cluster 的詳細信息。這將幫助組織實時監(jiān)測和優(yōu)化 Cluster 性能,提高應用程序的可靠性和性能。

五、基于 OpenTelemetry 進行 Kubernetes 的解決方案

在 Kubernetes 上部署一個 OpenTelemetry 收集器,這個收集器將負責接收和處理跟蹤數(shù)據(jù)。一旦部署完成,我們可以使用 OpenTelemetry 提供的 OTEL 檢測庫(基于 Go 語言編寫的應用程序)將跟蹤數(shù)據(jù)發(fā)送到收集器。

一旦跟蹤數(shù)據(jù)到達收集器,它將被傳送到 Jaeger 收集器,進一步處理和存儲。最后,我們可以使用 Jaeger 的用戶界面(UI)來可視化這些跟蹤數(shù)據(jù),以便更好地理解應用程序的性能和行為。

下面的圖示展示了這個流程,包括應用程序、OpenTelemetry 收集器和 Jaeger 之間的交互,以及跟蹤數(shù)據(jù)的流動路徑。具體可參考:

在此方案中,我們的 OTEL 設置如下所示:

在實際的業(yè)務場景中,OpenTelemetry 可與 Kubernetes 結(jié)合使用,從 Kubernetes Cluster 上運行的容器化應用程序收集遙測數(shù)據(jù)。OpenTelemetry 提供了多個 Kubernetes 特定的組件和集成,使我們可以輕松地在 Kubernetes 環(huán)境中收集和處理遙測數(shù)據(jù)。

這些包括:

1.Kubernetes 特定的工具

Kubernetes API 服務器、Etcd、Kubelet 等。這些儀器可用于生成用于 Pod 創(chuàng)建、刪除和擴展等操作的遙測數(shù)據(jù)。

2.Kubernetes 元數(shù)據(jù)注入

自動將 Kubernetes 特定的元數(shù)據(jù)(例如 Pod 名稱、Pod 命名空間和容器 ID)注入到遙測數(shù)據(jù)中。這樣可以更輕松地將遙測數(shù)據(jù)與 Kubernetes 特定的元數(shù)據(jù)關聯(lián)起來,并診斷與容器化應用程序相關的問題。

3.Kubernetes 感知采樣

根據(jù) Kubernetes 特定的元數(shù)據(jù)(例如 Pod 名稱、命名空間或服務名稱)采樣遙測數(shù)據(jù)。這有助于減少發(fā)送到后端的遙測數(shù)據(jù)量并提高性能。

4.Kubernetes 部署

OpenTelemetry 可以部署為 Kubernetes 部署或守護進程集,從而可以輕松在 Kubernetes 環(huán)境中擴展和管理 OpenTelemetry 組件。

通過基于 OpenTelemetry 的 Kubernetes 解決方案,我們可以實現(xiàn)對 Kubernetes Cluster 中應用程序的端到端監(jiān)測和可觀察性,從而幫助我們更好地理解應用程序的性能、排查問題,并采取適當?shù)膬?yōu)化措施,以提高應用程序的可靠性和性能。

六、實施 OpenTelemetry 的核心步驟

通過實施 OpenTelemetry 來觀測 Kubernetes 環(huán)境,團隊組織可以收集和分析各種指標,并將這些指標與從應用程序的不同部分收集的其他指標相關聯(lián),以更好地了解整體應用程序的性能。

在實際的業(yè)務場景中,如下是正確實施 OpenTelemetry 來觀測 Kubernetes 環(huán)境的四個易于遵循的核心步驟,具體可參考:

1.安裝 OpenTelemetry Collector

首先,我們需要正確安裝 OpenTelemetry Collector。Collector 是用于接收、處理和導出遙測數(shù)據(jù)的組件。我們可以根據(jù)官方文檔提供的指南,在 Kubernetes Cluster 上安裝和配置 Collector。

在 Kubernetes Cluster 中,可以將 OpenTelemetry 代理配置為一個 DaemonSet,以確保代理在 Cluster 中的每個節(jié)點上都能運行。通過以下命令可以安裝代理:

[leonli@LugaLab ~ ] % kubectl apply -f https://github.com/open-telemetry/opentelemetry-operator/releases/latest/download/opentelemetry-operator.yaml

當然,這里,我們還可以使用 Helm Charts 進行安裝 :https://github.com/open-telemetry/opentelemetry-helm-charts/tree/main/charts/opentelemetry-operator

2.配置 OpenTelemetry Collector

一旦安裝了 Collector,我們需要配置它以收集所需的指標和數(shù)據(jù)。配置文件可以指定要收集的指標類型、導出器(用于將數(shù)據(jù)發(fā)送到后端)以及其他特定的收集器設置。通過仔細配置 Collector,我們可以根據(jù)組織的需求來定制數(shù)據(jù)收集和導出。

OTel 支持多種后端,包括 Prometheus、Jaeger 和 Zipkin。具體配置可參考如下示例:

receivers:
  otlp:
    protocols:
      grpc:
exporters:
  prometheus:
    endpoint: "localhost:4444"
  jaeger:
    endpoint: "http://jaeger:14268/api/traces"
service:
  pipelines:
    traces:
      receivers: [otlp]
      processors: []
      exporters: [jaeger, prometheus]

3.在 Kubernetes 應用程序中啟用 OpenTelemetry 檢測

為了在 Kubernetes 應用程序中啟用 OpenTelemetry 檢測,我們通常需要在應用程序代碼中添加 OpenTelemetry SDK。SDK 提供了用于在應用程序中插入代碼以收集指標、跟蹤請求和記錄日志的 API。通過在應用程序中使用 OpenTelemetry SDK,我們可以捕獲關鍵的性能數(shù)據(jù)和上下文信息。

4.將數(shù)據(jù)發(fā)送到首選的后端

最后一步,我們需要配置 OpenTelemetry Collector 將收集到的數(shù)據(jù)發(fā)送到所首選的后端。后端可以是各種數(shù)據(jù)存儲和分析平臺,如 Prometheus、Grafana、Jaeger 等。根據(jù)我們的需求和環(huán)境,選擇合適的后端,并配置收集器以將數(shù)據(jù)導出到該后端。

這里,以 Jaeger 后端為例,它提供了各種可視化選項,使我們可以輕松理解 Kubernetes Cluster 中的請求流,并支持各種跟蹤格式,包括 OTel 等,具體可參考如下所示:

apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
  name: simple-prod
spec:
  strategy: allInOne
  allInOne:
    image: jaegertracing/all-in-one:latest
    options:
      log-level: debug

在確保基于 Kubernetes 的應用程序的性能、可靠性和可用性方面,觀測 Kubernetes 是至關重要的。OpenTelemetry 為觀測 Kubernetes 環(huán)境提供了一個強大的框架,利用分布式跟蹤、指標和日志記錄等功能。

通過遵循最佳實踐并利用適當?shù)墓ぞ?,?OpenTelemetry 和其他工具,我們可以實時了解 Kubernetes Cluster 的狀態(tài),從而提升應用程序的性能。

隨著 Kubernetes 的廣泛應用,強大的觀測策略比以往任何時候都更為重要。通過實施 OpenTelemetry 和其他監(jiān)控工具,您可以避免潛在問題,并確保 Kubernetes 環(huán)境的平穩(wěn)運行。

這些監(jiān)控工具可以幫助我們收集和分析關鍵的指標、跟蹤請求的路徑,并記錄關鍵事件和日志。通過實時觀測 Kubernetes Cluster,我們可以及時發(fā)現(xiàn)潛在的問題,追蹤性能瓶頸,并采取適當?shù)拇胧﹣韮?yōu)化和調(diào)整應用程序。

總而言之,通過實施 OpenTelemetry 及其他類似觀測工具,我們可以建立強大的觀測策略,從而確?;?Kubernetes 的應用程序的性能和可靠性。這樣,我們將能夠及時發(fā)現(xiàn)和解決問題,提高應用程序的可用性,并為用戶提供更好的體驗。


當前標題:一文搞懂基于OpenTelemetry進行Kubernetes全鏈路觀測
轉(zhuǎn)載源于:http://www.5511xx.com/article/cocssoi.html