Hitachi

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


6.5.1 デプロイ依存関係チェックスクリプト(dependency_check.sh)

コマンド引数で指定されたターゲットKubernetesオブジェクト群が起動状態になるまで待機するスクリプトです。各Kubernetesアプリケーションの初期化コンテナとして起動するDependency-Checkerコンテナで使用します。

Kubernetes APIサーバ((kube-apiserver)に対してKubernetesオブジェクトの情報を取得するGETリクエストを実行し、JSONレスポンスの内容が起動済みを示している場合は、ステータスコード「0」で正常終了します。初期化コンテナが正常終了した場合、Kubernetesクラスタは該当するPod内の各コンテナの起動を開始します。

一方、JSONレスポンスの内容が未起動または起動中を示している場合は、コマンド引数で指定されたリトライ回数・リトライ間隔秒数でリトライします。最大リトライ回数を超えた場合は、ステータスコード「1」で異常終了します。リトライオーバーし、初期化コンテナが異常終了した場合、Podの状態はCrashLoopBackOffになります。

<コマンド構文>

dependency_check.sh△<リトライ回数>△<リトライ間隔秒数>△<接続タイムアウト秒数>△<応答タイムアウト秒数>△{<Namespace>/<Kubernetesリソース種別>/[<Kubernetesオブジェクト名>|<ラベルセレクタ>]}△[...]
(凡例)

△:半角スペース1文字

ターゲットKubernetesオブジェクトの指定方法の詳細を次に説明します。

<実行例>

ターゲットKubernetesオブジェクトをKubernetesオブジェクト名で指定する例:

dependency_check.sh 30 10 10 10 my-namespace/deployments/sql-participant

ターゲットKubernetesオブジェクトをラベルセレクタで指定する例:

dependency_check.sh 30 10 10 10 my-namespace/pods/app=sql-participant

ターゲットKubernetesオブジェクトを複数指定する例:

dependency_check.sh 30 10 10 10 \
  my-namespace/statefulsets/mediator \
  my-namespace/statefulsets/eads-server \
  my-namespace/statefulsets/postgresql

<コマンド引数チェック仕様>

次の条件をどちらか1つでも満たしていない場合は、KFSG62109-Eのメッセージを出力し、ステータスコード「1」で異常終了します。

<バージョン表示オプション>

次のようにコマンドに「--version」オプションを指定して実行すると、該当するスクリプト名およびバージョン番号を表示して終了します。

dependency_check.sh△--version
(凡例)

△:半角スペース1文字

<コマンドの実行結果>

dependency_check.sh△V.R.S
(凡例)

△:半角スペース1文字

V.R.S:バージョン

<コマンドの実行結果の例>

dependency_check.sh 1.0.0