7.5.2 Relay-Serviceの要件
Relay-Serviceは、リソースを更新しないでサービス間を中継するKubernetesアプリケーションです。トランザクションブランチを開始します。
このKubernetesアプリケーションは、次の表に示すRelay-Serviceの要件を満たすように作成します。
|
項目 |
要件 |
|---|---|
|
ワークロードリソース |
規定しません。任意(Deploymentなど)とします。 |
|
ネームスペース |
規定しません。 |
|
ラベル |
規定しません。※1 |
|
アノテーション |
規定しません。 <Prometheusを使用してメトリクス情報を収集する場合> .spec.template.metadata.annotationsに次を指定してください。
|
|
初期化コンテナ構成 |
Dependency-Checkerコンテナ(「6.4.10 Dependency-Checkerコンテナイメージ」を参照してください) |
|
コンテナ構成 |
|
|
レプリカ数 |
規定しません。 |
|
再起動ポリシー |
コンテナ障害時は必ず再起動(オートヒーリング)してください(Kubernetesのデフォルト設定)。 |
|
アップデートストラテジー |
規定しません。 |
|
Podセキュリティコンテキスト |
規定しません。 |
|
アクセス制御 |
Podに対するロールベースアクセス制御(RBAC)で次のとおり対象リソースへのアクセス許可を定義してください。 <Kubernetesリソース取得用ロール>
上記アクセス許可を定義するためのKubernetesリソースはClusterRoleリソース、ClusterRoleBindingリソース、ServiceAccountリソースを使用してください。 <デプロイ依存関係チェック機能用ロール>
これらのアクセス許可を定義するためのKubernetesリソースは、次に示すとおり使い分けてください。
|
|
ServiceAccountリソースのトークンの自動マウント(automountServiceAccountTokenフィールド)を「有効(true)」にしてください(Kubernetesのデフォルト設定)。 |
|
|
Podの割り当てノードの制御 |
規定しません。 |
|
永続化ボリューム |
uCosminexus Application Runtime for Spring Bootスナップショットログの永続ボリュームを割り当ててください(通常版(uCosminexus Application Runtime for Spring Boot導入あり)の場合だけ)。 |
|
Podライフサイクル設定 |
terminationGracePeriodSecondsを次のとおり設定してください。
Orchestrator-Service、Orchestrator-Service(SQL)、Entity-Service(SQL)、Entity-Service(TCC)およびTP1-BridgeのterminationGracePeriodSecondsの設定値以上の値を設定してください。 terminationGracePeriodSecondsは、「Spring BootのGraceful Shutdown機能での最大待機秒数(140秒)」以上の値を設定してください。推奨値はそれぞれの最大待機時間のデフォルト値の合計にバッファ(40秒)を加算した値です。 |
- 注※1
-
DeploymentリソースやStatefulSetリソースの場合は、Kubernetesのマニフェストの記述仕様に従って、.spec.selectorと.spec.template.metadata.labelsの紐づけのために最低1つ以上のラベルを定義する必要があります。Kubernetesマニフェストの記述仕様の詳細については、Kubernetesのマニュアルなどを参照してください。
- 注※2
-
Kubernetesアプリケーションにコンテキストパス(例:/context-path)を設定している場合、prometheus.io/pathにはコンテキストパスを含めた正しいパスを指定してください。
コンテキストパスを指定していない場合、メトリクス収集用のエンドポイントは、/hmppcto/metricsになります。
コンテキストパスを指定していない場合のprometheus.io/pathの指定:prometheus.io/path: /hmppcto/metrics
コンテキストパスを指定している場合、メトリクス収集用エンドポイントの先頭にコンテキストパスが追加されます。
コンテキストパスを指定している場合のprometheus.io/pathの指定:prometheus.io/path: /context-path/hmppcto/metrics
prometheus.io/pathの設定が、実際のアプリケーションのエンドポイントと一致しているかを必ず確認してください。設定が誤っていると、Prometheusによるメトリクスの収集ができません。
- 注※3
-
Relay-ServiceのDependency-Checkerコンテナで指定するターゲットKubernetesオブジェクト群については、「表7‒11 Relay-ServiceのDependency-Checkerコンテナの要件」を参照してください。
コンテナごとの要件を次に示します。
|
項目 |
要件 |
|---|---|
|
コマンド |
次に示すコマンド引数(args)を設定します。
(エントリポイントはDependency-Checkerコンテナイメージで「HMP-PCTOのデプロイ依存関係チェックスクリプト(dependency_check.sh)」を設定済みです) |
|
ネットワーク設定 |
設定しません(デフォルト)。 |
|
コンフィグ設定 |
設定しません(デフォルト)。 |
|
コンテナセキュリティコンテキスト |
設定しません(デフォルト)。 |
|
コンテナライフサイクル設定 |
設定しません(デフォルト)。 |
|
CPU/メモリリソース制限 |
設定しません(デフォルト)。 |
- 注※
-
tp1-bridgeのdeploymentsには、「(15) Kubernetesアプリケーションのデプロイ」でhelmコマンドに指定するリリース名を指定してください。
(例)
リリース名がtp1-bridge1の場合:my-namespace/deployments/tp1-bridge1
|
項目 |
要件 |
|---|---|
|
コマンド |
設定しません(デフォルト)。 |
|
ネットワーク設定 |
Kubernetesクラスタ内で次のポートを公開してください(Serviceリソース)。
|
|
コンフィグ設定 |
次のHMP-PCTOのパラメタを、Spring Bootのコンフィグソース(application.properties、application.yml、環境変数など)に設定してください。
|
|
Spring BootのGraceful Shutdown機能に関する次のプロパティを、Spring Bootのコンフィグソース(application.properties、application.yml、環境変数など)に設定してください。
|
|
|
タイムゾーンの設定は任意です。 |
|
|
環境変数HMPPCTO_JAVA_OPTIONSでRelay-ServiceのJavaプロセス起動時にJava VMに渡すオプションを指定してください。 |
|
|
uCosminexus Application Runtime for Spring Bootの設定ファイル(config.properties)をコンテナ内にマウントしてください(通常版(uCosminexus Application Runtime for Spring Boot導入あり)の場合だけ)。 次のとおりファイルを配置してください。
|
|
|
コンテナセキュリティコンテキスト |
規定しません。 |
|
コンテナライフサイクル設定 |
|
|
CPU/メモリリソース制限 |
実稼働を通して、環境に合わせた設定を実施してください。 |
- 注※
-
コマンド例を次に示します。
- /bin/sh - -c - sleep 20
Elastic Stack、JaegerおよびPrometheusを使用してトラブルシュート情報を収集する場合だけ、次のFilebeatコンテナの要件を満たすように作成します。
|
項目 |
要件 |
|---|---|
|
コマンド |
次に示すコマンド引数(args)を設定します。
|
|
ネットワーク設定 |
規定しません。 |
|
コンフィグ設定 |
filebeat.ymlを「3.11.1 ログおよびトラブルシュート情報の取得の設定」のとおりに設定してください。 |
|
コンテナセキュリティコンテキスト |
規定しません。 |
|
コンテナライフサイクル設定 |
|
|
CPU/メモリリソース制限 |
規定しません。 |