5.4.5 Mediatorの要件
このKubernetesアプリケーションは、HMP-PCTOとして提供します。次の表に示す要件を満たすように作成します。
|
項目 |
要件 |
|---|---|
|
ワークロードリソース |
StatefulSetリソースとしてください。 |
|
ネームスペース |
規定しません。 |
|
ラベル |
|
|
アノテーション |
設定しません(デフォルト)。 |
|
初期化コンテナ構成 |
|
|
コンテナ構成 |
|
|
レプリカ数 |
|
|
サービス名 (StatefulSetリソース特有) |
「mediator」 |
|
Podの管理ポリシー (StatefulSetリソース特有) |
レプリカ数のPodの起動/停止を並行に実施してください。 |
|
再起動ポリシー |
コンテナ障害時は必ず再起動(オートヒーリング)してください(Kubernetesのデフォルト設定)。 |
|
アップデートストラテジー |
ローリングアップデートとしてください(Kubernetesのデフォルト設定)。 |
|
Podセキュリティコンテキスト |
設定しません(デフォルト)。 |
|
アクセス制御 |
Podに対するロールベースアクセス制御(RBAC)で次のとおり対象リソースへのアクセス許可を定義してください。 <デプロイ依存関係チェック機能用ロール>
これらのアクセス許可を定義するためのKubernetesリソースは、次に示すとおり使い分けてください。
|
|
ServiceAccountリソースのトークンの自動マウント(automountServiceAccountTokenフィールド)を「有効(true)」にしてください(Kubernetesのデフォルト設定)。 |
|
|
Podの割り当てノードの制御 |
|
|
永続化ボリューム |
MediatorのConsensusLogの永続ボリュームを割り当ててください。
|
|
uCosminexus Application Runtime with Java for Spring Bootスナップショットログの永続ボリュームを割り当ててください(通常版(uCosminexus Application Runtime with Java for Spring Boot導入あり)の場合だけ)。 |
|
|
Podライフサイクル設定 |
terminationGracePeriodSecondsを次のとおり設定してください。
|
- 注※1
-
OrchestratorのDependency-Checkerコンテナで指定するターゲットKubernetesオブジェクト群については、「表5‒20 MediatorのDependency-Checkerコンテナの要件」を参照してください。
- 注※2
-
V.R.Sは使用するHMP-PCTOのバージョンに合わせて読み替えてください。
<制限事項>
スケーリングは不可とします(手動/自動、スケールアウト/インに関係なく)。
コンテナごとの要件を次に示します。
|
項目 |
要件 |
|---|---|
|
コマンド |
次に示すコマンド引数(args)を設定します。
(エントリポイントはDependency-Checkerコンテナイメージで「HMP-PCTOのデプロイ依存関係チェックスクリプト(dependency_check.sh)」を設定済みです) |
|
ネットワーク設定 |
設定しません(デフォルト)。 |
|
コンフィグ設定 |
設定しません(デフォルト)。 |
|
コンテナセキュリティコンテキスト |
設定しません(デフォルト)。 |
|
コンテナライフサイクル設定 |
設定しません(デフォルト)。 |
|
CPU/メモリリソース制限 |
設定しません(デフォルト)。 |
|
項目 |
要件 |
|---|---|
|
コマンド |
設定しません(デフォルト)。 |
|
ネットワーク設定 |
Kubernetesクラスタ内のHeadless Service(ClusterIP: None)で次のポートを公開してください(Serviceリソース)。
|
|
コンフィグ設定 |
次のHMP-PCTOのパラメタを、Spring Bootのコンフィグソースに設定してください。
次のとおりファイルを配置します。
|
|
HMP-PCTOのgRPC通信の暗号化を有効にする場合(Helmチャートのgrpc.useTlsがtrue)、取扱説明書「HMP-PCTO テクニカルガイド(SQL-Participant編)」、または取扱説明書「HMP-PCTO テクニカルガイド(TCC-Participant編)」の各プロセスの認証種別ごとに必要となるファイルの一覧に関する説明に示すとおりgRPC通信機能の暗号化通信で必要となるファイルをコンテナ内にマウントしてください。 次のとおりファイルを配置します。
さらに、クライアント認証を行う場合(Helmチャートのgrpc.tls.clientAuth.enabledがtrue)は、次のとおりファイルを配置します。
「MediatorのgRPC通信機能の暗号化通信用シークレット」をユーザが作成します(「(3) Orchestrator、ParticipantのgRPC通信機能の暗号化通信用シークレットの作成」を参照してください)。 ユーザが作成した「MediatorのgRPC通信機能の暗号化通信用シークレット」をStatefulSetから参照する際、Helmチャートのgrpc.tls.secretName パラメタに指定されているSecretオブジェクト名で参照してください。 |
|
|
環境変数TZでタイムゾーンを設定します。ユーザ責務のコンテナと同じタイムゾーンに設定することを推奨します。デフォルト値は日本標準時(Asia/Tokyo、UTC+09:00)です。 |
|
|
Helmチャートのtimezoneパラメタで、Mediatorコンテナのタイムゾーンを指定します。 |
|
|
Helmチャートのjava.optionsパラメタでMediatorのJavaプロセス起動時にJava VMに渡すオプションを指定してください。 |
|
|
uCosminexus Application Runtime with Java for Spring Bootの設定ファイル(config.properties)をコンテナ内にマウントしてください(通常版(uCosminexus Application Runtime with Java for Spring Boot導入あり)の場合だけ)。 次のとおりファイルを配置してください。
|
|
|
コンテナセキュリティコンテキスト |
設定しません(デフォルト)。 |
|
コンテナライフサイクル設定 |
|
|
CPU/メモリリソース制限 |
実稼働を通して、環境に合わせた設定を実施してください。 |
Helmチャートのディレクトリ/ファイル構成を次の表に示します。
|
ディレクトリ/ファイル |
説明 |
||
|---|---|---|---|
|
templates/ |
Helmチャートのtemplate配置用ディレクトリ |
||
|
includes/ |
HelmチャートのConfigMapオブジェクトの設定内容外部化ファイル配置用ディレクトリ |
||
|
application.properties.tpl |
MediatorのConfigMapオブジェクトの設定内容外部化ファイル |
||
|
mediator-config-map-data.yaml |
MediatorのConfigMapオブジェクトの設定内容外部化ファイル |
||
|
config.properties.tpl |
uCosminexus Application Runtime with Java for Spring BootのConfigMapオブジェクトの設定内容外部化ファイル |
||
|
ucars-config-map-data.yaml |
uCosminexus Application Runtime with Java for Spring BootのConfigMapオブジェクトの設定内容外部化ファイル |
||
|
mediator-config-map.yaml |
MediatorのConfigMapオブジェクトのマニフェスト |
||
|
ucars-config-map.yaml |
uCosminexus Application Runtime with Java for Spring BootのConfigMapオブジェクトのマニフェスト |
||
|
service.yaml |
Serviceオブジェクトのマニフェスト |
||
|
serviceaccount.yaml |
ServiceAccountオブジェクトのマニフェスト |
||
|
statefulset.yaml |
StatefulSetオブジェクトのマニフェスト |
||
|
Chart.yaml |
Chart.yaml |
||
|
values.yaml |
values.yaml |
||
|
values.schema.json |
values.yamlの設定値のバリデーション用ファイル |
||