第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