Documentation

自己回復

DXP Cloudの自己修復機能は、サービスまたはアプリケーションが応答しなくなったかどうかを検出し、応答しないサービスを回復する手順を自動的に開始します。 プラットフォームは、プローブを使用してサービスを監視します。

プローブの使用と設定

DXP Cloudは、アプリケーションの管理に組み合わせて使用される2つのプローブを提供します。

  • Liveness Probe:サービスが動作しているかどうかを示します。

  • Readiness Probe :サービスがリクエストを受け取る準備ができているかどうかを示します。

各プローブは、以下のオプションで設定できます。

プロパティ名 説明
initialDelaySeconds コンテナが開始してからプローブが開始されるまでの秒数。
periodSeconds プローブがタイムアウトするまでの秒数。 デフォルトおよび最小は1です。
timeoutSeconds プローブを実行する頻度(秒単位)。 デフォルトは10です。 最小は1です。
successThreshold 失敗した後、プローブが成功したとみなされるための最小連続成功回数。 デフォルトおよび最小値は 1です。 推奨値は 1です。
failureThreshold DXP Cloudが失敗したプローブをあきらめるまでに繰り返す回数。 活性プローブの場合、あきらめるとサービスが再起動します。 準備プローブの場合、あきらめると、プローブは失敗としてマークされます。 デフォルトは 3です。 最小値は 1です。

プローブが障害を検出すると(ステータスチェックで成功メッセージを返さない)、プローブはサービスを自動的に再起動します。 活性プローブと準備プローブは、環境に関係なくすべてのサービスに展開されます。 通常、顧客は、ニーズに基づいて値を調整する必要がない限り、プローブを変更する必要はありません。 たとえば、システム管理者は、initialDelaySeconds 値を 増やして、起動プロセスを長くすることができます。

デフォルト値を変更するには、 lcp.json ファイルを変更します。 Configuration via LCP.jsonを参照してください。

準備プローブ

liveness プローブは、URL リクエスト (パス/ポート) を使用して、サービスが実行されていることを検証します。 多くの場合、これは、livenessプローブに応答するアプリケーション内の軽量HTTPサーバーです。 プローブはパスをpingし、200または300の範囲のHTTP応答を受信すると、アプリケーションを正常とマークします。

各サービスの LCP.json ファイルには、次のものが含まれています。

{
  "livenessProbe": {
    "httpGet": {
      "path": "/status",
      "port": 3000
    },
    "initialDelaySeconds": 40,
    "periodSeconds": 5,
    "successThreshold": 5
  }
}

準備調査

準備プローブは実行可能コマンドを使用します。 コマンドが正しい終了コードで戻る場合、コンテナは正常としてマークされています。 それ以外の場合は、異常とマークされます。

各サービスの LCP.json ファイルには、以下の内容が含まれています。

{
  "readinessProbe": {
    "exec": {
      "command": ["cat", "/tmp/healthy"]
    },
    "initialDelaySeconds": 40,
    "periodSeconds": 5
  }
}

以下は、準備プローブのサンプルログで、 webserver サービスに展開されています。 ログには、Googleサーバーが特定のパス nginx_statusが 継続的にヒットしていることが示されています。

Oct 04 12:05:51.821 build-14 [webserver-5547c96447-hbrr6] 10.138.0.69 - - [04/Oct/2019:19:05:51 +0000] "GET /nginx_status HTTP/1.1" 200 117 "-" "kube-probe/1.12+" "-"
Oct 04 12:05:53.001 build-14 [webserver-5547c96447-hbrr6] 10.138.15.249 - - [04/Oct/2019:19:05:53 +0000] "GET /nginx_status HTTP/1.1" 200 115 "-" "GoogleHC/1.0" "-"
Oct 04 12:05:53.083 build-14 [webserver-5547c96447-hbrr6] 10.138.0.13 - - [04/Oct/2019:19:05:53 +0000] "GET /nginx_status HTTP/1.1" 200 115 "-" "GoogleHC/1.0" "-"
Oct 04 12:05:53.293 build-14 [webserver-5547c96447-hbrr6] 10.138.15.251 - - [04/Oct/2019:19:05:53 +0000] "GET /nginx_status HTTP/1.1" 200 115 "-" "GoogleHC/1.0" "-"