Hitachi

Hitachi Microservices Platform - Paxos Commit Transaction Orchestrator ユーザーズガイド


6.4.11 Jaeger-collectorの要件

このKubernetesアプリケーションは、HMP-PCTOとして提供します。次の表に示す要件を満たすように作成します。

表6‒44 Jaeger-collectorの要件

項目

要件

ワークロードリソース

Deploymentリソースとしてください。

ネームスペース

任意の名称を指定できます。ただし、「6.4.9 Filebeatの要件」〜「6.4.15 Logstashの要件」では同一のネームスペースを指定してください。

ラベル

.metadata.labelには次に示すキーを設定します。
  • キー名:app.kubernetes.io/instance

    値:<リリース名>

  • キー名:app.kubernetes.io/managed-by

    値:Helm

  • キー名:app.kubernetes.io/name

    値:jaeger-collector

    備考:チャート名

  • キー名:app.kubernetes.io/version

    値:V.R.S※1

    備考:バージョン

  • キー名:helm.sh/chart

    値:jaeger-collector-V.R.S※2

    備考:<チャート名>-<バージョン>

.spec.selector.matchLabels、および.spec.template.metadata.labelsには次に示すキーを設定します。
  • キー名:app.kubernetes.io/instance

    値:<リリース名>

    備考:

  • キー名:app.kubernetes.io/name

    値:jaeger-collector

    備考:チャート名

アノテーション

規定しません。

初期化コンテナ構成

Dependency-Checkerコンテナ(「5.3.9 Dependency-Checkerコンテナイメージ」を参照してください)

コンテナ構成

Jaeger-collectorコンテナ

レプリカ数

規定しません。

再起動ポリシー

コンテナ障害時は必ず再起動(オートヒーリング)してください(Kubernetesのデフォルト設定)。

アップデートストラテジー

ローリングアップデートとしてください(Kubernetesのデフォルト設定)。

Podセキュリティコンテキスト

規定しません。

アクセス制御

Podに対するロールベースアクセス制御(RBAC)で、次に示すとおり対象リソースへのアクセス許可を定義してください。

<デプロイ依存関係チェック機能用ロール>

  • APIグループ

    空(コアグループ)、apps

  • リソース

    pods、replicasets、deployments、statefulsets、daemonsets

  • アクセス許可

    get、list

上記アクセス許可を定義するためのKubernetesリソースはRoleリソース、RoleBindingリソース、ServiceAccountリソースを使用してください。

ServiceAccountリソースのトークンの自動マウント(automountServiceAccountTokenフィールド)を「有効(true)」にしてください(Kubernetesのデフォルト設定)。

Podの割り当てノードの制御

  • 1つのノードに割り当てられるPod数は1つまでです(例として、ワーカーノード数「5」に対してレプリカ数「5」のとき、各ノードにPodが1つ起動します)。

永続化ボリューム

規定しません。

Podライフサイクル設定

terminationGracePeriodSecondsを次のとおり設定してください。

  • 安全な停止待機秒数(terminationGracePeriodSeconds)

    推奨値「30」

注※1

V.R.Sは使用するJaeger-collectorのバージョンに合わせて読み替えてください。

注※2

V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。

コンテナごとの要件を次に示します。

表6‒45 Jaeger-collectorのDependency-Checkerコンテナの要件

項目

要件

コマンド

次に示すコマンド引数(args)を設定します。

  • 第1引数(リトライ回数)

    推奨値「30」

  • 第2引数(リトライ間隔秒数)

    推奨値「10」

  • 第3引数(接続タイムアウト秒数)

    推奨値「10」

  • 第4引数(応答タイムアウト秒数)

    推奨値「10」

  • 第5引数以降(ターゲットKubernetesオブジェクト群)

    <対象Kubernetesアプリケーション>

    Elasticsearch

    例を次に示します。

    (例)

    my-namespace/statefulsets/elasticsearch-master

(エントリポイントはDependency-Checkerコンテナイメージで「HMP-PCTOのデプロイ依存関係チェックスクリプト(dependency_check.sh)」を設定済みです)

ネットワーク設定

設定しません(デフォルト)。

コンフィグ設定

設定しません(デフォルト)。

コンテナセキュリティコンテキスト

設定しません(デフォルト)。

コンテナライフサイクル設定

設定しません(デフォルト)。

CPU/メモリリソース制限

設定しません(デフォルト)。

表6‒46 Jaeger-collectorコンテナの要件

項目

要件

コマンド

次に示すコマンド引数(args)を設定します。

  • --collector.queue-size

    Jaeger-collectorのHelmチャートパラメタのcollector.queueSizeの設定値

  • --collector.num-workers

    Jaeger-collectorのHelmチャートパラメタのcollector.numWorkersの設定値

  • --es.num-replicas

    Jaeger-collectorのHelmチャートパラメタのreplicasの設定値

  • --es.num-shards

    Jaeger-collectorのHelmチャートパラメタのcollector.numShardsの設定値

パラメタの詳細については、「(1) Helmチャートのパラメタ」を参照してください。

ネットワーク設定

デプロイしたノードのIPによるポートの公開は不要です。

Kubernetesクラスタ内で次のポートを公開してください(Serviceリソース)。

分散トレースのSpan受付用ポート番号(Participant,Orchestrator,Mediator向け)

  • プロトコル

    TCP

  • コンテナポート

    14268

コンフィグ設定

規定しません。

コンテナセキュリティコンテキスト

規定しません。

コンテナライフサイクル設定

Liveness Probeを次のとおり設定してください。
  • 初回Probe実行待機秒数(initialDelaySeconds)

    推奨値「300」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「10」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

  • Probeタイムアウト秒数(timeoutSeconds)

    推奨値「5」

  • Probe失敗後の成功判定最小回数(successThreshold)

    推奨値「1」

Readiness Probeを次のとおり設定してください。
  • 初回Probe実行待機秒数(initialDelaySeconds)

    推奨値「60」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「10」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

  • Probeタイムアウト秒数(timeoutSeconds)

    推奨値「5」

  • Probe失敗後の成功判定最小回数(successThreshold)

    推奨値「3」

CPU/メモリリソース制限

実稼働を通して、環境に合わせた設定を実施してください。

Helmチャートのディレクトリ/ファイル構成を次の表に示します。

表6‒47 Jaeger-collectorのHelmチャートのディレクトリ/ファイル構成

ディレクトリ/ファイル

説明

templates/

Helmチャートのtemplate配置用ディレクトリ

deployment.yaml

Deploymentオブジェクトのマニフェスト

service.yaml

Serviceオブジェクトのマニフェスト

serviceaccount.yaml

ServiceAccountオブジェクトのマニフェスト

Chart.yaml

Chart.yaml

values.yaml

values.yaml

values.schema.json

values.yamlの設定値のバリデーション用ファイル