Kubernetes OpenTelemetry を使用した監視

Kubernetes 環境は動的かつ複雑であり、数多くのマイクロサービス、ポッド、ノード、その他のリソースが絶えず相互作用しています。 「 OpenTelemetry 」による Kubernetes の監視は、コンテナ化されたアプリケーションやインフラストラクチャを詳細に可視化するための、強力かつベンダーに依存しないアプローチを提供します。

OpenTelemetry を使用した Kubernetes の監視における主要な構成要素

Kubernetes における OpenTelemetry の監視の中核は、主に2種類の OpenTelemetry コレクターと、それらのコレクターに関連付けられたレシーバーによって構成されています。

OpenTelemetry Kubernetes コレクターの種類

  • DaemonSet コレクター
    • 各ノードにデプロイされ、そのノード上で実行されているノード、ポッド、およびコンテナに関するテレメトリデータを収集します。
  • DeploymentSet コレクター
    • Kubernetes や API サーバーのメトリクスやイベントなど、クラスターレベルのメトリクスやイベントを一元管理するための単一のインスタンス。

OpenTelemetry 用レシーバーの種類 Kubernetes コレクター

  • Kubeletstats レシーバー
    • 各ノード上のKubelet API サーバーから、ノードに関するメトリクス、コンテナのメモリ使用量、PodのCPU使用量、およびノードのネットワークエラーに関する情報を直接収集します。
  • Kubernetes クラスタ受信機
    • Kubernetes API サーバーを使用して、クラスター全体に関するクラスターレベルのメトリクスやエンティティイベント(例:Podのフェーズ、ノードの状態など)を収集します
OpenTelemetry 用プロセッサの種類 Kubernetes Collector
  • Kubernetes 属性プロセッサ
    • Kubernetes のPodを自動的に検出し、メタデータ(Pod名、ネームスペース、ノード名、デプロイメント名、Pod UIDなど)を抽出し、このコンテキストをスパン、メトリクス、およびログに追加します。 これは、アプリケーションのテレメトリと Kubernetes のインフラストラクチャデータを関連付ける上で極めて重要です。

OpenTelemetry Kubernetes コレクターのデプロイメントモードの種類

  • ヘルムス・チャート
    • OpenTelemetry の公式チャート( Helm )を利用すれば、 Kubernetes に OpenTelemetry Collectorを簡単かつ柔軟にデプロイできます。
  • Kubernetes オペレーター
    • OpenTelemetry オペレーターは、 Kubernetes API を拡張する Kubernetes オペレーターであり、 OpenTelemetry コンポーネントの管理を自動化します。 これにより、デプロイプロセスを簡素化する新しいカスタムリソース定義(CRD)である OpenTelemetryCollector, が導入されます。

Instana と OpenTelemetry をシームレスに連携させることで、 Kubernetes 環境を効果的に監視できます。 Instana OpenTelemetry ( Kubernetes )からのデータ取り込みを、2つの異なる方法でサポートしています。