7.5.5 Orchestrator-Service(SQL)の要件(SQL-Participant限定)
Orchestrator-Service(SQL)は、Orchestratorの役割に加えて、データベースの参照および更新業務を行うKubernetesアプリケーションです。トランザクションルートとトランザクションブランチを開始します。
このKubernetesアプリケーションは、次の表に示すOrchestrator-Service(SQL)の要件を満たすように作成します。
|
項目 |
要件 |
|---|---|
|
ワークロードリソース |
規定しません。任意(Deploymentなど)とします。 |
|
ネームスペース |
Orchestrator-Service(SQL)を構成するPodを定義したKubernetesのServiceのService名(.metadata.nameフィールド)とNamespace名(.metadata.namespaceフィールド)を「.」でつないだ文字列が、41バイト以内の文字列となるように、Namespace名を検討してください。 |
|
ラベル |
「app.kubernetes.io/name」を必ず設定してください。ほかのKubernetesアプリケーションに設定した値と異なる値を、16バイト以内の文字列で設定してください。 Blue/Greenデプロイメントを実施する場合は、BlueとGreenの「app.kubernetes.io/name」に同一の値を設定してください。 |
|
アノテーション |
規定しません。 <Prometheusを使用してメトリクス情報を収集する場合> .spec.template.metadata.annotationsに次を指定してください。
|
|
初期化コンテナ構成 |
Dependency-Checkerコンテナ(「6.4.10 Dependency-Checkerコンテナイメージ」を参照してください) |
|
コンテナ構成 |
|
|
レプリカ数 |
「1」 |
|
再起動ポリシー |
コンテナ障害時は必ず再起動(オートヒーリング)してください(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を次のとおり設定してください。
terminationGracePeriodSecondsは、「preStopに設定する未決着トランザクション待機スクリプトの最大待機秒数(120秒)」と「Spring BootのGraceful Shutdown機能での最大待機秒数(20秒)」の合計値以上の値を設定してください。推奨値はそれぞれの最大待機時間のデフォルト値の合計にバッファ(40秒)を加算した値です。 |
- 注※1
-
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によるメトリクスの収集ができません。
- 注※2
-
Orchestrator-Service(SQL)のDependency-Checkerコンテナで指定するターゲットKubernetesオブジェクト群については、「表7‒23 Orchestrator-Service(SQL)のDependency-Checkerコンテナの要件」を参照してください。
コンテナごとの要件を次に示します。
|
項目 |
要件 |
|---|---|
|
コマンド |
次に示すコマンド引数(args)を設定します。
(エントリポイントはDependency-Checkerコンテナイメージで「HMP-PCTOのデプロイ依存関係チェックスクリプト(dependency_check.sh)」を設定済みです) |
|
ネットワーク設定 |
設定しません(デフォルト)。 |
|
コンフィグ設定 |
設定しません(デフォルト)。 |
|
コンテナセキュリティコンテキスト |
設定しません(デフォルト)。 |
|
コンテナライフサイクル設定 |
設定しません(デフォルト)。 |
|
CPU/メモリリソース制限 |
設定しません(デフォルト)。 |
|
項目 |
要件 |
|---|---|
|
コマンド |
設定しません(デフォルト)。 |
|
ネットワーク設定 |
Orchestrator-Service(SQL)を構成するPodを定義したKubernetesのServiceのService名(.metadata.nameフィールド)とNamespace名(.metadata.namespaceフィールド)を「.」でつないだ文字列が、41バイト以内の文字列となるように、ServiceのService名を検討してください。 Kubernetesクラスタ内で次のポートを公開してください(Serviceリソース)。
|
|
コンフィグ設定 |
次のHMP-PCTOのパラメタを、Spring Bootのコンフィグソース(application.properties、application.yml、環境変数など)に設定してください。
|
|
Spring BootのGraceful Shutdown機能に関する次のプロパティを、Spring Bootのコンフィグソース(application.properties、application.yml、環境変数など)に設定してください。
|
|
|
HMP-PCTOのgRPC通信の暗号化を有効にする場合、取扱説明書「HMP-PCTO テクニカルガイド」の各プロセスの認証種別に必要となるファイルの一覧に関する説明に示すとおり暗号化通信で必要となるファイルをコンテナ内にマウントしてください(Secretリソースなど)。 |
|
|
タイムゾーンの設定は任意です。 |
|
|
環境変数HMPPCTO_JAVA_OPTIONSでOrchestrator-Service(SQL)のJavaプロセス起動時にJava VMに渡すオプションを指定してください。 |
|
|
uCosminexus Application Runtime for Spring Bootの設定ファイル(config.properties)をコンテナ内にマウントしてください(通常版(uCosminexus Application Runtime for Spring Boot導入あり)の場合だけ)。 次のとおりファイルを配置してください。
|
|
|
コンテナセキュリティコンテキスト |
規定しません。 |
|
コンテナライフサイクル設定 |
|
|
CPU/メモリリソース制限 |
実稼働を通して、環境に合わせた設定を実施してください。 |
Elastic Stack、JaegerおよびPrometheusを使用してトラブルシュート情報を収集する場合だけ、次のFilebeatコンテナの要件を満たすように作成します。
|
項目 |
要件 |
|---|---|
|
コマンド |
次に示すコマンド引数(args)を設定します。
|
|
ネットワーク設定 |
規定しません。 |
|
コンフィグ設定 |
filebeat.ymlを「3.11.1 ログおよびトラブルシュート情報の取得の設定」のとおりに設定してください。 |
|
コンテナセキュリティコンテキスト |
規定しません。 |
|
コンテナライフサイクル設定 |
|
|
CPU/メモリリソース制限 |
規定しません。 |