Kubernetesデプロイ
既存のKubernetesクラスターにデモをデプロイするのに役立つOpenTelemetry Demo Helmチャートを提供しています。
チャートを使用するにはHelmをインストールする必要があります。 利用を開始するには、Helmのドキュメントを参照してください。
前提条件
- Kubernetes 1.24以上
- アプリケーション向けに6GBの空きRAM
- Helm 3.14以上(Helmインストール方法のみ)
Helmを使用してインストール(推奨)
OpenTelemetry Helmリポジトリを追加します。
helm repo add open-telemetry https://open-telemetry.github.io/opentelemetry-helm-charts my-otel-demoというリリース名でチャートをインストールするには、次のコマンドを実行します。
helm install my-otel-demo open-telemetry/opentelemetry-demo OpenTelemetry Demo Helmチャートは、あるバージョンから別のバージョンにアップグレードすることをサポートしていません。 チャートをアップグレードする必要がある場合は、最初に既存のリリースを削除してから新しいバージョンをインストールする必要があります。
OpenTelemetry Demo Helmチャートのバージョン0.11.0以上では、以下に記載されているすべての使用方法を実行できます。
kubectlを使用してインストール
次のコマンドは、デモアプリケーションをKubernetesクラスターにインストールします。
kubectl create --namespace otel-demo -f https://raw.githubusercontent.com/open-telemetry/opentelemetry-demo/main/kubernetes/opentelemetry-demo.yaml OpenTelemetry Demo Kubernetesマニフェストは、あるバージョンから別のバージョンにアップグレードすることをサポートしていません。 デモをアップグレードする必要がある場合は、最初に既存のリソースを削除してから新しいバージョンをインストールする必要があります。
これらのマニフェストは、Helmチャートから生成されており、利便性のために提供されています。 Helmチャートを使用してインストールすることをお勧めします。
デモの使用
デモアプリケーションでは、Kubernetesクラスターの外部に公開されているサービスが必要です。 kubectl port-forwardコマンドを使用するか、任意のデプロイ済みのIngressリソースを使用してサービスタイプ(例: LoadBalancer)を設定することで、サービスをローカルシステムに公開できます。
kubectl port-forwardを使用してサービスを公開する
frontend-proxyサービスを公開するには、次のコマンドを使用します(defaultをHelmチャートのリリースnamespaceに置き換えます)。
kubectl --namespace default port-forward svc/frontend-proxy 8080:8080 kubectl port-forwardは、プロセスが終了するまでポートをプロキシします。 kubectl port-forwardを使用するたびに、個別のターミナルセッションを作成し、完了したらCtrl-Cを使用してプロセスを終了する必要がある場合があります。
frontend-proxyをport-forwardで設定すると、次のURLにアクセスできます。
- Web store: http://localhost:8080/
- Grafana: http://localhost:8080/grafana/
- Load Generator UI: http://localhost:8080/loadgen/
- Jaeger UI: http://localhost:8080/jaeger/ui/
- Flagd configurator UI: http://localhost:8080/feature
ServiceまたはIngress構成を使用してデモコンポーネントを公開する
追加の構成オプションを指定するために、Helmチャートをインストールする際にvaluesファイルを使用することをお勧めします。
Ingressリソースの構成
Kubernetesクラスターには、LoadBalancerのサービスタイプまたはIngressリソースを有効にするための適切なインフラストラクチャのコンポーネントが備わっていない場合があります。 これらの構成オプションを使用する前に、クラスターが適切にサポートされていることを確認してください。
各デモコンポーネント(例:frontend-proxy)は、Kubernetesのサービスタイプを設定できます。 デフォルトでは作成されませんが、各コンポーネントのingressプロパティを使用して有効化および構成できます。
frontend-proxyコンポーネントをIngressリソースを使用するように構成するには、valuesファイルに次の内容を指定します。
components: frontend-proxy: ingress: enabled: true annotations: {} hosts: - host: otel-demo.my-domain.com paths: - path: / pathType: Prefix port: 8080 一部のIngressコントローラーでは、特別なアノテーションやサービスタイプが必要です。 より詳細な情報については、Ingressコントローラーのドキュメントを参照してください。
サービスタイプの構成
各デモコンポーネント(例:frontend-proxy)は、Kubernetesのサービスタイプを設定する方法を提供します。 デフォルトではClusterIPですが、各コンポーネントのservice.typeプロパティを使用して変更できます。
frontend-proxyコンポーネントをLoadBalancerサービスタイプを使用するように構成するには、valuesファイルに次の内容を指定します。
components: frontend-proxy: service: type: LoadBalancer ブラウザテレメトリーの構成
ブラウザからスパンを適切に収集するには、OpenTelemetry Collectorが公開されている場所も指定する必要があります。 frontend-proxyは、コレクターへのルートをパス接頭辞/otlp-httpで定義します。 次の環境変数をfrontendコンポーネントに設定することで、コレクターのエンドポイントを設定できます。
components: frontend: envOverrides: - name: PUBLIC_OTEL_EXPORTER_OTLP_TRACES_ENDPOINT value: http://otel-demo.my-domain.com/otlp-http/v1/traces 独自のバックエンドを使用する
おそらく、すでにお持ちのオブザーバビリティバックエンド(例:既存のJaeger、Zipkin、または選択したベンダーのインスタンス)のデモアプリケーションとしてWebストアを使用したい場合があるでしょう。
OpenTelemetry Collectorの設定はHelmチャートで公開されています。 追加した設定はすべてデフォルトの設定にマージされます。 これを使用して独自のエクスポーターを追加し、必要なパイプラインに追加できます。
opentelemetry-collector: config: exporters: otlphttp/example: endpoint: <your-endpoint-url> service: pipelines: traces: exporters: [spanmetrics, otlphttp/example] Helmを使用してYAML値をマージする場合、オブジェクトはマージされ、配列は置き換えられます。 spanmetricsエクスポーターは、上書きされた場合tracesパイプラインのエクスポーターの配列に含める必要があります。 このエクスポーターを含めていない場合、エラーが発生します。
ベンダーのバックエンドによっては、認証のために追加のパラメーターが必要になる場合があるため、ベンダーのドキュメントを確認してください。 一部のバックエンドでは異なるエクスポーターが必要です。 エクスポーターとドキュメントはopentelemetry-collector-contrib/exporterで入手できます。
カスタムvalueファイルmy-values-file.yamlを使用してHelmチャートをインストールするには、次のコマンドを使用します。
helm install my-otel-demo open-telemetry/opentelemetry-demo --values my-values-file.yaml フィードバック
このページは役に立ちましたか?
Thank you. Your feedback is appreciated!
Please let us know how we can improve this page. Your feedback is appreciated!