第5章 OpenShift 4 の JBoss EAP イメージストリームからの、eap73 Imagestream へのアプリケーションの移行

eap71 および eap72 イメージストリーム用に開発されたアプリケーションでは、eap73 イメージストリームで正しく機能するために変更が必要になります。

5.1. eap73 Imagestream の Liveness および Readiness プローブ設定の更新

プローブの YAML 設定は、OpenShift 3.11 上で実行している eap72 イメージから eap73 イメージに移行する際に調整される必要があります。

eap72 イメージでは、liveness プローブのデフォルトの YAML 設定は以下のコード例と同等のものです。

OpenShift 3.11 liveness プローブでの eap72 イメージの YAML 設定サンプル

livenessProbe:
        exec:
          command:
            - /bin/bash
            - '-c'
            - /opt/eap/bin/livenessProbe.sh
        initialDelaySeconds: 60
        periodSeconds: 10
        successThreshold: 1
        failureThreshold: 3

この例では、Liveness プローブは JBoss EAP イメージ内の /opt/eap/bin/livenessProbe.sh にあります。プローブは、60 秒の最初の遅延後にトリガーされ、JBoss EAP サーバーで Pod が開始された後は 10 秒ごとにトリガーされます。

プローブに 3 回失敗すると、コンテナーは正常でないとみなされ、OpenShift は Pod でコンテナーを再起動します。

eap72 イメージでは、成功または失敗が決まるまで、1 回の呼び出しが 5 秒間続きます。この呼び出しの後に 10 秒の待機時間が続きます。つまり、JBoss EAP イメージが正常ではない場合、Pod 内のコンテナーが再起動するまで、3 回にわたる呼び出しが約 35 秒間続きます。

eap73 イメージでは、単一の呼び出し時間は 1 秒未満です。3 つの呼び出しは約 23 秒続きます。eap73 のプローブの設定は、以下のように YAML 設定で調整する必要があります。

eap73 イメージストリーム liveness プローブの YAML 設定例

livenessProbe:
        exec:
          command:
            - /bin/bash
            - '-c'
            - /opt/eap/bin/livenessProbe.sh
        initialDelaySeconds: 60
        periodSeconds: 16
        successThreshold: 1
        failureThreshold: 3

この例では、periodSeconds が 6 秒分増えています。これにより、最初の呼び出しが 1 秒続き、16 秒間にわたり待機します。3 回の呼び出しは、プローブの eap72 の動作とほぼ同等で約 34 秒続きます。

readiness プローブでは、YAML 設定の periodSeconds を同様の値で更新します。

eap73 イメージストリーム readiness プローブの YAML 設定例

readinessProbe:
        exec:
          command:
            - /bin/bash
            - '-c'
            - /opt/eap/bin/readinessProbe.sh
        initialDelaySeconds: 10
        periodSeconds: 16
        successThreshold: 1
        failureThreshold: 3

Liveness and Readiness Probes on OpenShift 3.11