Phase 3: Kubernetes

3. Helm で OBI を有効化

2 min

アプリケーションコードを一切変更せずに、Helm のアップグレード1回だけでクラスター全体にトレーシングを追加します。

OBI を有効にして Collector をアップグレード

Exercise

bash
helm -n obi-workshop  upgrade splunk-otel-collector \
  splunk-otel-collector-chart/splunk-otel-collector \
  --set="splunkObservability.realm=${REALM}" \
  --set="splunkObservability.accessToken=${ACCESS_TOKEN}" \
  --set="clusterName=${INSTANCE}-k8s" \
  --set="environment=${INSTANCE}-ebpf" \
  --set="obi.enabled=true"

変更点は --set="obi.enabled=true" という1つのオプションだけです。Helm チャートが残りのすべてを処理します

OBI に必要なものは?

OBI Pod は、eBPF がカーネルレベルで動作するため、昇格した権限で実行されます

yaml
hostPID: true        # See all processes on the node, including other pods
hostNetwork: true    # Observe and inject trace context into network traffic
privileged: true     # Attach eBPF probes to the kernel

クラスターポリシーで必要な場合に権限を削減する方法については、OBI Security Documentation を参照してください。

OBI が実行されていることを確認

bash
kubectl get pods  -n obi-workshop -l app.kubernetes.io/name=obi
kubectl logs  -n obi-workshop -l app.kubernetes.io/name=obi --tail=20

トラフィックを生成します

bash
curl -s http://localhost:30000/create-order | python3 -m json.tool

Splunk APM を確認

トレースが流れるまで30〜60秒待ちます。

Exercise

  1. Service Map: frontend -> order-processor -> payment-service の3つのサービスが表示されるはずです。
  2. Traces: 任意のトレースをクリックします。3つのサービスすべてにまたがる完全な分散トレースと、各ホップのタイミングが表示されます。
  3. フェーズ2と同じストーリー: コード変更ゼロ。1つのフラグを付けた helm upgrade 1回だけです。
Last Modified ·