Hitachi

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


6.4.3 SQL-Participantの要件

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

表6‒10 SQL-Participantの要件

項目

要件

ワークロードリソース

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

ネームスペース

SQL-Participantを構成するPodを定義したKubernetesのServiceのService名(.metadata.nameフィールド)とネームスペース名(.metadata.namespaceフィールド)を「.」でつないだ文字列が、41バイト以内の文字列となるように、ネームスペース名を検討してください。

ラベル

規定しません。※1

アノテーション

規定しません。

初期化コンテナ構成

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

コンテナ構成

Entity-Serviceコンテナ(「5.3.4 Entity-Serviceコンテナイメージ」を参照してください)

SQL-Participantコンテナ(「5.3.5 SQL-Participantコンテナイメージ」を参照してください)

Filebeatコンテナ

レプリカ数

規定しません。

再起動ポリシー

コンテナ障害時は必ず再起動(オートヒーリング)してください(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リソースは、次に示すとおり使い分けてください。

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

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

  • ParticipantとParticipantの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

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

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

表6‒11 SQL-ParticipantのDependency-Checkerコンテナの要件

項目

要件

コマンド

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

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

    推奨値「30」

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

    推奨値「10」

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

    推奨値「10」

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

    推奨値「10」

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

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

    Mediator、EADS、Ext-Cons(トライアル版の場合だけ)、Participantが使用するDB/外部サービス

    例を次に示します。

    (例)

    my-namespace/statefulsets/mediator

    my-namespace/statefulsets/eads-server

    my-namespace/deployments/ext-cons(トライアル版の場合だけ)

    my-namespac /statefulsets/postgresql

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

ネットワーク設定

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

コンフィグ設定

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

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

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

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

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

CPU/メモリリソース制限

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

表6‒12 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/メモリリソース制限

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

表6‒13 SQL-Participantコンテナの要件

項目

要件

コマンド

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

ネットワーク設定

SQL-Participant:を構成するPodを定義したKubernetesのServiceのService名(.metadata.nameフィールド)とネームスペース名(.metadata.namespaceフィールド)を「.」でつないだ文字列が、41バイト以内の文字列となるように、ServiceのService名を検討してください。

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

  • SQL-ParticipantのgRPCポート番号(Mediator向け)

    プロトコル:TCP

    公開ポート:SQL-Participantのjp.co.Hitachi.soft.hmppcto.sql.mediator.portパラメタに設定したポート番号

    コンテナポート:SQL-Participantのjp.co.Hitachi.soft.hmppcto.sql.mediator.portパラメタに設定したポート番号

  • SQL-Participantのhttpポート番号(ヘルスチェック、未決着トランザクション確認、Prometheusメトリクス収集用)

    プロトコル:TCP

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

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

コンフィグ設定

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

HMP-PCTOのgRPC通信の暗号化を有効にする場合、取扱説明書「HMP-PCTO テクニカルガイド」の各プロセスの認証種別ごとに必要となるファイルの一覧に関する説明に示すとおり暗号化通信で必要となるファイルをコンテナ内にマウントしてください(Secretリソースなど)。

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

環境変数HMPPCTO_JAVA_OPTIONSでSQL-Participantの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

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

規定しません。

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

Liveness Probeを次のとおり設定してください。
  • コマンド実行

    パス:HMP-PCTOのトランザクションヘルスチェックスクリプト(health_check.sh)

    第1引数(リトライ回数):「0」固定(Liveness Probeの設定でリトライするため)

    第2引数(リトライ間隔秒数):「0」固定(Liveness Probeの設定でリトライするため)

    第3引数(接続タイムアウト秒数):推奨値「10」

    第4引数(応答タイムアウト秒数):推奨値「10」

    第5引数(HTTPポート番号):SQL-Participantのserver.portパラメタに設定したポート番号

  • 初回Probe実行待機秒数(initialDelaySeconds)

    推奨値「180」

  • Probe実行間隔秒数(periodSeconds)

    推奨値「30」

  • Probe最大失敗回数(failureThreshold)

    推奨値「3」

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

    推奨値「10」

postStartフックを次のとおり設定してください。
  • コマンド実行

    パス:HMP-PCTOのトランザクションヘルスチェックスクリプト(health_check.sh)

    第1引数(リトライ回数):推奨値「30」

    第2引数(リトライ間隔秒数):推奨値「10」

    第3引数(接続タイムアウト秒数):推奨値「10」

    第4引数(応答タイムアウト秒数):推奨値「10」

    第5引数(HTTPポート番号):SQL-Participantのserver.portパラメタに設定したポート番号

preStopフックを次のとおり設定してください。
  • コマンド実行

    パス:HMP-PCTOの未決着トランザクション待機スクリプト(wait_transactions.sh)

    第1引数(リトライ回数):推奨値「30」

    第2引数(リトライ間隔秒数):推奨値「10」

    第3引数(接続タイムアウト秒数):推奨値「10」

    第4引数(応答タイムアウト秒数):推奨値「10」

    第5引数(HTTPポート番号):SQL-Participantのserver.portパラメタに設定したポート番号

CPU/メモリリソース制限

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

表6‒14 SQL-ParticipantのFilebeatコンテナの要件

項目

要件

コマンド

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

  • 第1引数

    「-e」

    標準エラー出力にログを記録します。syslog/fileへのログ出力を無効化します。

  • 第2引数

    「-E」

    このパラメタ以降に記載された設定を反映した状態で起動します。

  • 第3引数(http.enabled)

    「true」

    HTTPエンドポイントを有効にします。死活監視のために設定を有効化します。

ネットワーク設定

規定しません。

コンフィグ設定

filebeat.ymlを「3.9.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/メモリリソース制限

規定しません。