HelmでKubernetesにOBIをデプロイする
Helm の各種設定オプションの詳細については、 OBI Helm チャートドキュメント を参照するか、 Artifact Hub でチャートを参照してください。 詳細な設定パラメーターについては、 values.yaml ファイルを参照してください。
目次
Helm から OBI をデプロイする
まず、OpenTelemetry Helm リポジトリを Helm に追加する必要があります。
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts
次のコマンドは、obi 名前空間にデフォルト設定の OBI DaemonSet をデプロイします。
helm install obi -n obi --create-namespace open-telemetry/opentelemetry-ebpf-instrumentation
OBI のデフォルト設定は次のようになっています。
- Pod HTTP ポート
9090の/metricsパスで Prometheus メトリクスとしてメトリクスをエクスポートします。 - クラスター内のすべてのアプリケーションを計装しようとします。
- デフォルトではアプリケーションレベルのメトリクスのみを提供し、ネットワークレベルのメトリクスは除外します。
k8s.namespace.nameやk8s.pod.nameなどの Kubernetes メタデータラベルでメトリクスを装飾するよう OBI を設定します。
OBI の設定
OBI のデフォルト設定をオーバーライドしたい場合があります。 たとえば、Prometheus のかわりに OpenTelemetry としてメトリクスやスパンをエクスポートしたり、計装するサービス数を制限したりする場合です。
デフォルトの OBI 設定オプション を独自の値でオーバーライドできます。
たとえば、カスタム設定を含む helm-obi.yml ファイルを作成します。
config:
data:
# 実際の OBI 設定ファイルの内容
discovery:
instrument:
- k8s_namespace: demo
- k8s_namespace: blog
routes:
unmatched: heuristic
config.data セクションには OBI 設定ファイルが含まれており、OBI 設定オプションのドキュメントに記載されています。
次に、-f フラグを使用してオーバーライドされた設定を helm コマンドに渡します。
たとえば、このようなコマンドを実行します。
helm install obi open-telemetry/opentelemetry-ebpf-instrumentation -f helm-obi.yml
または、OBI チャートが以前にデプロイされていた場合は次のようにします。
helm upgrade obi open-telemetry/opentelemetry-ebpf-instrumentation -f helm-obi.yml
OBI メタデータの設定
OBI が Prometheus エクスポーターを使用してデータをエクスポートしている場合、Prometheus スクレイパーが OBI を検出できるように OBI Pod アノテーションをオーバーライドする必要がある場合があります。
次のセクションをサンプルの helm-obi.yml ファイルに追加できます。
podAnnotations:
prometheus.io/scrape: 'true'
prometheus.io/path: '/metrics'
prometheus.io/port: '9090'
同様に、Helm チャートでは、サービスアカウント、クラスターロール、セキュリティコンテキストなど、OBI のデプロイに関わる複数のリソースの名前、ラベル、アノテーションをオーバーライドできます。 OBI Helm チャートドキュメントには、各種設定オプションが記載されています。
Helm 設定へのシークレットの提供
OpenTelemetry エンドポイント経由でメトリクスとトレースをオブザーバビリティバックエンドに直接送信する場合、OTEL_EXPORTER_OTLP_HEADERS 環境変数を通じてクレデンシャルを提供する必要がある場合があります。
推奨される方法は、このような値を Kubernetes Secret に保存し、Helm 設定からそれを参照する環境変数を指定することです。
たとえば、次の Secret をデプロイします。
apiVersion: v1
kind: Secret
metadata:
name: obi-secret
type: Opaque
stringData:
otlp-headers: 'Authorization=Basic ....'
次に、envValueFrom セクションを使用して、helm-config.yml ファイルからそれを参照します。
env:
OTEL_EXPORTER_OTLP_ENDPOINT: '<...your OTLP endpoint URL...>'
envValueFrom:
OTEL_EXPORTER_OTLP_HEADERS:
secretKeyRef:
key: otlp-headers
name: obi-secret
フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!