Hitachi

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


5.4.2 Entity-Serviceの要件

このKubernetesマニフェストは、サービス間を中継するサービスとしてのEntity-Serviceがある場合だけ作成します。詳細については、取扱説明書「HMP-PCTO テクニカルガイド(SQL-Participant編)」、または取扱説明書「HMP-PCTO テクニカルガイド(TCC-Participant編)」のトランザクションのモデルに関する説明を参照してください。

このKubernetesアプリケーションは、次の表に示すEntity-Serviceの要件を満たすように作成します。

表5‒6 Entity-Serviceの要件

項目

要件

ワークロードリソース

規定しません。任意(Deploymentなど)とします。

ネームスペース

規定しません。

ラベル

規定しません。※1

アノテーション

規定しません。

初期化コンテナ構成

コンテナ構成

レプリカ数

規定しません。

再起動ポリシー

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

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

規定しません。

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

規定しません。

アクセス制御

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

<Mediator選択機能用ロール>

  • APIグループ

    空(コアグループ)

  • リソース

    services、endpoints

  • アクセス許可

    get、list、watch

上記アクセス許可を定義するためのKubernetesリソースはClusterRoleリソース、ClusterRoleBindingリソース、ServiceAccountリソースを使用すること。

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

  • APIグループ

    空(コアグループ)、apps

  • リソース

    pods、replicasets、deployments、statefulsets、daemonsets

  • アクセス許可

    get、list

これらのアクセス許可を定義するためのKubernetesリソースは、次に示すとおり使い分けてください。

  • Entity-ServiceとEntity-ServiceのDependency-Checkerコンテナで指定するターゲットKubernetesオブジェクト群2のNamespaceがすべて同一の場合:

    Roleリソース、RoleBindingリソース、ServiceAccountリソースを使用してください。

  • Entity-ServiceとEntity-ServiceのDependency-Checkerコンテナで指定するターゲットKubernetesオブジェクト群2のNamespaceが1つでも異なる場合:

    ClusterRoleリソース、ClusterRoleBindingリソース、ServiceAccountリソースを使用してください。

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

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

規定しません。

永続化ボリューム

uCosminexus Application Runtime with Java for Spring Bootスナップショットログの永続ボリュームを割り当ててください(通常版(uCosminexus Application Runtime with Java for Spring Boot導入あり)の場合だけ)。

Podライフサイクル設定

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

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

    推奨値「330」

注※1

DeploymentリソースやStatefulSetリソースの場合は、Kubernetesのマニフェストの記述仕様に従って、.spec.selectorと.spec.template.metadata.labelsの紐づけのために最低1つ以上のラベルを定義する必要があります。Kubernetesマニフェストの記述仕様の詳細については、Kubernetesのマニュアルなどを参照してください。

注※2

Entity-ServiceのDependency-Checkerコンテナで指定するターゲットKubernetesオブジェクト群については、「表5‒7 Entity-ServiceのDependency-Checkerコンテナの要件」を参照してください。

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

表5‒7 Entity-ServiceのDependency-Checkerコンテナの要件

項目

要件

コマンド

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

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

    推奨値「30」

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

    推奨値「10」

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

    推奨値「10」

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

    推奨値「10」

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

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

    Mediator、Participant

    例を次に示します。

    (例)

    SQL-Participantを使用する場合:

    my-namespace/statefulsets/mediator

    my-namespace/deployments/sql-participant

    TCC-Participantを使用する場合:

    my-namespace/statefulsets/mediator

    my-namespace/deployments/tcc-participant

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

ネットワーク設定

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

コンフィグ設定

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

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

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

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

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

CPU/メモリリソース制限

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

表5‒8 Entity-Serviceコンテナの要件

項目

要件

コマンド

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

ネットワーク設定

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

  • ユーザ責務のKubernetesアプリケーションで使用する各種ポート番号

  • Prometheusメトリクス収集で使用するhttpポート番号

    プロトコル:TCP

    公開ポート:Entity-Serviceのserver.portパラメタに設定したポート番号

    コンテナポート:Entity-Serviceのserver.portパラメタに設定したポート番号

コンフィグ設定

次のHMP-PCTOのパラメタを、Spring Bootのコンフィグソース(application.properties、application.yml、環境変数など)に設定してください。

タイムゾーンの設定は任意です。

環境変数HMPPCTO_JAVA_OPTIONSでEntity-ServiceのJavaプロセス起動時にJava VMに渡すオプションを指定してください。

uCosminexus Application Runtime with Java for Spring Bootの設定ファイル(config.properties)をコンテナ内にマウントしてください(通常版(uCosminexus Application Runtime with Java for Spring Boot導入あり)の場合だけ)。

次のとおりファイルを配置してください。

  • ファイル:uCosminexus Application Runtime with Java for Spring Bootの設定ファイル

    キー名:config.properties

    マウント先:/opt/hitachi/ucars/conf/config.properties

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

規定しません。

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

規定しません。

CPU/メモリリソース制限

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

表5‒9 Entity-ServiceのFilebeatコンテナの要件

項目

要件

コマンド

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

ネットワーク設定

規定しません。

コンフィグ設定

filebeat.ymlを「(1) 事前準備」のとおりに設定してください。

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

規定しません。

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

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

    推奨値「10」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「10」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

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

    推奨値「5」

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

    推奨値「10」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「10」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

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

    推奨値「5」

CPU/メモリリソース制限

規定しません。