Kubernetes 追蹤系統(tǒng)組件

2022-05-26 15:28 更新

追蹤 Kubernetes 系統(tǒng)組件

FEATURE STATE: Kubernetes v1.22 [alpha]

系統(tǒng)組件追蹤功能記錄各個(gè)集群操作的時(shí)延信息和這些操作之間的關(guān)系。

Kubernetes 組件基于 gRPC 導(dǎo)出器的 OpenTelemetry 協(xié)議 發(fā)送追蹤信息,并用 OpenTelemetry Collector 收集追蹤信息,再將其轉(zhuǎn)交給追蹤系統(tǒng)的后臺。

追蹤信息的收集

關(guān)于收集追蹤信息、以及使用收集器的完整指南,可參見 Getting Started with the OpenTelemetry Collector。 不過,還有一些特定于 Kubernetes 組件的事項(xiàng)值得注意。

默認(rèn)情況下,Kubernetes 組件使用 gRPC 的 OTLP 導(dǎo)出器來導(dǎo)出追蹤信息,將信息寫到 IANA OpenTelemetry 端口。 舉例來說,如果收集器以 Kubernetes 組件的邊車模式運(yùn)行,以下接收器配置會收集 spans 信息,并將它們寫入到標(biāo)準(zhǔn)輸出。

receivers:
  otlp:
    protocols:
      grpc:
exporters:
  # 用適合你后端環(huán)境的導(dǎo)出器替換此處的導(dǎo)出器
  logging:
    logLevel: debug
service:
  pipelines:
    traces:
      receivers: [otlp]
      exporters: [logging]

組件追蹤

kube-apiserver 追蹤

kube-apiserver 為傳入的 HTTP 請求、傳出到 webhook 和 etcd 的請求以及重入的請求生成 spans。 由于 kube-apiserver 通常是一個(gè)公開的端點(diǎn),所以它通過出站的請求傳播 W3C 追蹤上下文, 但不使用入站請求的追蹤上下文。

在 kube-apiserver 中啟用追蹤 

要啟用追蹤特性,需要啟用 kube-apiserver 上的 ?APIServerTracing ?特性門控。 然后,使用 ?--tracing-config-file=<<配置文件路徑>? 為 kube-apiserver 提供追蹤配置文件。 下面是一個(gè)示例配置,它為萬分之一的請求記錄 spans,并使用了默認(rèn)的 OpenTelemetry 端口。

apiVersion: apiserver.config.k8s.io/v1alpha1
kind: TracingConfiguration
# default value
#endpoint: localhost:4317
samplingRatePerMillion: 100

穩(wěn)定性 

追蹤工具仍在積極開發(fā)中,未來它會以多種方式發(fā)生變化。 這些變化包括:span 名稱、附加屬性、檢測端點(diǎn)等等。 此類特性在達(dá)到穩(wěn)定版本之前,不能保證追蹤工具的向后兼容性。


以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號