Jaegerトレーシング
Jaegerは、マイクロサービスのモニタリングおよびトラブルシューティングに使用される分散トレーシング・システムです。Jaegerの詳細は、Jaeger Webサイトを参照してください。
Jaegerオペレータのインストール
Jaegerオペレータをインストールするには、VerrazzanoリソースでjaegerOperator
コンポーネントを有効にします。次に、Jaegerオペレータを有効にするYAMLファイルの例を示します。
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: verrazzano
spec:
profile: prod
components:
jaegerOperator:
enabled: true
Jaegerオペレータを使用したJaegerのインストール
Jaegerは、Jaegerカスタム・リソース定義を使用してインストールされます。次の例は、VerrazzanoシステムのOpenSearchクラスタをトレース・バックエンドとして使用して、Istioメッシュ内にJaegerをインストールする方法を示しています。
Jaegerインスタンスを作成する前に、OpenSearchのユーザー名とパスワードを含むシークレットを作成します。Jaegerは、これらの資格証明を使用してOpenSearchに接続します:
$ kubectl create secret generic jaeger-secret \
--from-literal=ES_PASSWORD=<OPENSEARCH PASSWORD> \
--from-literal=ES_USERNAME=<OPENSEARCH USERNAME> \
-n verrazzano-system
次のYAMLを使用して、Jaegerリソースを作成します:
apiVersion: jaegertracing.io/v1
kind: Jaeger
metadata:
name: verrazzano-prod
namespace: verrazzano-system
spec:
annotations:
sidecar.istio.io/inject: "true"
strategy: production
storage:
# Jaeger Elasticsearch storage is compatible with Verrazzano OpenSearch.
type: elasticsearch
esIndexCleaner:
enabled: false
numberOfDays: 7
schedule: "* * * * *"
options:
es:
# Enter your OpenSearch cluster endpoint here.
server-urls: https://elasticsearch.vmi.system.default.172.18.0.151.nip.io
index-prefix: jaeger
tls:
ca: /verrazzano/certificates/ca.crt
secretName: jaeger-secret
volumeMounts:
- name: certificates
mountPath: /verrazzano/certificates/
readOnly: true
volumes:
- name: certificates
secret:
# Jaeger should use the client TLS secret for OpenSearch. This is the default secret name for Verrazzano OpenSearch.
secretName: system-tls-es-ingest
Jaegerオペレータは、問合せと収集のためのサービスを作成します。サンプル・リソースを適用した後で、Jaegerリソースをリストすると次のような出力が表示されます:
$ kubectl get services,deployments -l app.kubernetes.io/instance=verrazzano-prod -n verrazzano-system
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/verrazzano-prod-collector ClusterIP 10.96.76.108 <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP 52m
service/verrazzano-prod-collector-headless ClusterIP None <none> 9411/TCP,14250/TCP,14267/TCP,14268/TCP 52m
service/verrazzano-prod-query ClusterIP 10.96.205.8 <none> 16686/TCP,16685/TCP 52m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/verrazzano-prod-collector 1/1 1 1 52m
deployment.apps/verrazzano-prod-query 1/1 1 1 52m
トレースをJaegerにエクスポートするアプリケーションの構成
Jaegerエージェント・サイドカーは、"sidecar.jaegertracing.io/inject": "true"
注釈によってアプリケーション・ポッドに注入されます。この注釈は、Deploymentなどのネームスペースまたはポッド・コントローラに適用できます。次のスニペットは、Jaegerエージェント・インジェクションのためにOAMコンポーネントに注釈を付ける方法を示しています。
apiVersion: core.oam.dev/v1alpha2
kind: Component
metadata:
name: example-component
spec:
workload:
apiVersion: core.oam.dev/v1alpha2
kind: ContainerizedWorkload
metadata:
name: example-workload
annotations:
# The component's Deployment will carry the Jaeger annotation.
"sidecar.jaegertracing.io/inject": "true"
Jaeger UIでのトレースの表示
UIを表示するには、Jaeger問合せサービスをポート転送するか、HTTPSアクセス用にイングレス・コントローラを構成します。Jaeger構成の詳細を確認するにはJaegerカスタム・リソース・ドキュメントを使用します。
Jaegerトレーシング使用するIstioメッシュの構成
Istioの分散トレーシング統合を有効にすることで、Istioメッシュ・トラフィックを表示できます。Istioメッシュのトレースによって、Istioのイングレスおよびエグレス・ゲートウェイを通過するアプリケーション・トラフィックの可観測性を提供します。
デフォルトではIstioトレーシングは無効です。トレースをオンにするには、次の例のようにIstioコンポーネントをカスタマイズします:
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: verrazzano
spec:
profile: prod
components:
jaegerOperator:
enabled: true
istio:
istioInstallArgs:
- name: "meshConfig.enableTracing"
value: "true"
トレースを有効にすると、Istioはクラスタ内のJaegerエンドポイントを使用して自動的に構成され、Istioが注入された新しいポッドはJaegerに対してトレースのエクスポートを開始します。既存のポッドが、新しいIstio構成を取得してトレースの送信を開始するには、再起動する必要があります。
Istioのデフォルトのサンプリング・レートは1%です。つまり、100件中1件がJaegerでトレーシングされます。サンプリング・レートを変更するには、meshConfig.defaultConfig.tracing.sampling
Istioインストール引数を使用して必要なレートを構成します:
apiVersion: install.verrazzano.io/v1alpha1
kind: Verrazzano
metadata:
name: verrazzano
spec:
profile: prod
components:
jaegerOperator:
enabled: true
istio:
istioInstallArgs:
- name: "meshConfig.enableTracing"
value: "true"
# 25% of Istio traces will be sampled.
- name: "meshConfig.defaultConfig.tracing.sampling"
value: "25.0"