9.4.5. 未変更の Health Check サンプルアプリケーションとの対話
サンプルアプリケーションをデプロイすると、MY_APP_NAME サービスが実行します。MY_APP_NAME サービスは、以下の REST エンドポイントを公開します。
- /api/greeting
- 名前を String として返します。
- /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を呼び出すと、サービスはApplication is not availableページに戻るはずです。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 (続く)
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 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注記/api/stopエンドポイントを呼び出すと、OpenShift が Pod を削除するタイミングによっては、最初に 404 エラーコードが表示される可能性があります。引き続き/api/greetingエンドポイントを呼び出すと、OpenShift が Pod を削除した後にApplication is not availableページが表示されます。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 コンテナーが要求を処理する準備が整っている。