5.4.5. 変更されていないヘルスチェックサンプルアプリケーションとの対話
サンプルのアプリケーションをデプロイすると、MY_APP_NAME サービスが実行されます。MY_APP_NAME サービスは以下の REST エンドポイントを公開します。
- /api/greeting
-
nameパラメーターの greeting が含まれる JSON を返します(またはデフォルト値として World)。 - /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に移行します。さらに、サービスが失敗するたびに 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 をクリックし、イベントログの詳細ビューを表示します。
ヘルスチェックアプリケーションは以下のメッセージを生成します。
Expand メッセージ Status Unhealthy
readiness プローブに失敗しました。このメッセージは予想され、
/api/greetingエンドポイントのシミュレーションの失敗が検出され、自己修復プロセスが開始されます。Killing
サービスを実行している利用できない Docker コンテナーは、再作成する前に強制終了されます。
Pulling
最新バージョンの Docker イメージをダウンロードして、コンテナーを再作成します。
Pulled
Docker イメージが正常にダウンロードされました。
Created
Docker コンテナーが正常に作成されました。
Started
Docker コンテナーが要求を処理する準備ができています。