5.4.5. 未変更の Health Check サンプルアプリケーションとの対話
サンプルアプリケーションをデプロイすると、MY_APP_NAME サービスが実行します。MY_APP_NAME サービスは、以下の REST エンドポイントを公開します。
- /api/greeting
-
nameパラメーター (または World をデフォルト値として) のグリーティングが含まれる JSON を返します。 - /api/stop
- 障害をシミュレートする手段として、サービスが強制的に応答しなくなります。
以下の手順は、サービスの可用性を確認し、障害をシミュレートする方法を示しています。この利用可能なサービスの障害により、OpenShift の自己修復機能がサービスでトリガーされます。
Web インターフェイスを使用して、これらの手順を実施することもできます。
curlを使用して、MY_APP_NAMEサービスに対してGET要求を実行します。これを行うには、ブラウザーを使用することもできます。curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greetingCopy to Clipboard Copied! Toggle word wrap Toggle overflow {"content":"Hello, World!"}{"content":"Hello, World!"}Copy to Clipboard Copied! Toggle word wrap Toggle overflow /api/stopエンドポイントを呼び出して、その直後に/api/greetingエンドポイントの可用性を確認します。/api/stopエンドポイントを呼び出すと、内部サービス障害をシミュレートし、OpenShift の自己修復機能をトリガーします。障害のシミュレート後に/api/greetingを呼び出すと、サービスは HTTP ステータス503を返すはずです。curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/stop
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/stopCopy to Clipboard Copied! Toggle word wrap Toggle overflow Stopping HTTP server, Bye bye world !
Stopping HTTP server, Bye bye world !Copy to Clipboard Copied! Toggle word wrap Toggle overflow (続く)
curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greeting
$ curl http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME/api/greetingCopy to Clipboard Copied! Toggle word wrap Toggle overflow Not online
Not onlineCopy to Clipboard Copied! Toggle word wrap Toggle overflow oc get pods -wを使用して、動作中の自己修復機能を継続的に監視します。サービス障害の呼び出し中に、OpenShift コンソールまたは
ocクライアントツールで機能する自己修復機能を確認できます。READY状態の Pod 数がゼロ (0/1) になり、短期間 (1 分未満) 後に 1 (1/1) に戻ることが確認できるはずです。さらに、サービスの失敗を呼び出すたびにRESTARTSカウントが増加します。oc get pods -w
$ oc get pods -w NAME READY STATUS RESTARTS AGE MY_APP_NAME-1-26iy7 0/1 Running 5 18m MY_APP_NAME-1-26iy7 1/1 Running 5 19mCopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、Web インターフェイスを使用してサービスを呼び出します。
端末ウィンドウを使用した対話では、サービスが提供する Web インターフェイスを使用して、異なるメソッドを起動し、サービスがライフサイクルフェーズを進めるのを監視できます。
http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAME
http://MY_APP_NAME-MY_PROJECT_NAME.OPENSHIFT_HOSTNAMECopy to Clipboard Copied! Toggle word wrap Toggle overflow 必要に応じて、Web コンソールを使用して、自己修復プロセスの各段階でアプリケーションによって生成されたログ出力を表示します。
- プロジェクトに移動します。
- サイドバーで Monitoring をクリックします。
- 画面右上にある Events をクリックし、ログメッセージを表示します。
- オプション: View Details をクリックし、Event ログの詳細なビューを表示します。
ヘルスチェックアプリケーションは以下のメッセージを生成します。
Expand メッセージ Status Unhealthy
readiness プローブが失敗しました。このメッセージは想定されており、
/api/greetingエンドポイントのシミュレートされた失敗が検出され、自己修復プロセスが開始することを示します。Killing
サービスを実行している利用不可の Docker コンテナーは、再作成前に強制終了されています。
Pulling
最新バージョンの Docker イメージをダウンロードして、コンテナーを再作成します。
Pulled
Docker イメージが正常にダウンロードされました。
Created
Docker コンテナーが正常に作成されました
Started
Docker コンテナーが要求を処理する準備ができました。