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オブジェクトは、次の形式で指定します。
{<Namespace>/<Kubernetesリソース種別>/[<Kubernetesオブジェクト名>|<ラベルセレクタ>]}
-
<Namespace>は、ターゲットKubernetesオブジェクトのNamespaceを指定します。なお、存在しないNamespaceを指定した場合は、KFSG62103-Wのメッセージを出力し、リトライします。
-
<Kubernetesリソース種別>は、ターゲットKubernetesオブジェクトのKubernetesリソース種別を指定します。指定可能なKubernetesリソース種別は次のとおりです。なお、これら以外の文字列を指定した場合は、KFSG62103-Wのメッセージを出力し、リトライします。
-
pods
-
replicasets
-
deployments
-
statefulsets
-
daemonsets
-
-
<Kubernetesオブジェクト名>は、ターゲットKubernetesオブジェクトをKubernetesオブジェクト名で指定する場合に指定します。なお、存在しないKubernetesオブジェクト名を指定した場合は、KFSG62103-Wのメッセージを出力し、リトライします。
-
<ラベルセレクタ>は、ターゲットKubernetesオブジェクトをラベルセレクタで指定する場合に指定します。ラベルセレクタは「<キー>=<値>」の形式で指定します((例)「app=mediator」)。ラベルセレクタで指定すると、該当するすべてのKubernetesオブジェクトが起動済みとなるまで待機します。なお、存在しないラベルを指定した場合は、KFSG62110-Wのメッセージを出力し、リトライします。
-
ターゲットKubernetesオブジェクトは、複数指定できます。ターゲットKubernetesオブジェクトを複数指定すると、指定したすべての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」で異常終了します。
-
コマンド引数の数が「5以上」である
-
コマンド引数で指定されたリトライ回数・リトライ間隔秒数・接続タイムアウト秒数・応答タイムアウト秒数の値が「整数値」である
<バージョン表示オプション>
次のようにコマンドに「--version」オプションを指定して実行すると、該当するスクリプト名およびバージョン番号を表示して終了します。
dependency_check.sh△--version
- (凡例)
-
△:半角スペース1文字
<コマンドの実行結果>
dependency_check.sh△V.R.S
- (凡例)
-
△:半角スペース1文字
V.R.S:バージョン
<コマンドの実行結果の例>
dependency_check.sh 1.0.0