---
schema_version: "1"
id: b20d40e93d10388912bebcbd940586dba7f0e5052788c24572584e4dbeceefd7
title: 準備状況プローブまたはライブネスプローブの設定
collection: mulesoft
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/mulesoft/current/ja-jp/gateway/1.9/flex-local-readiness-liveness.md
canonical_url: https://docs.mulesoft.com/jp/gateway/1.9/flex-local-readiness-liveness
source_site: docs.mulesoft.com
content_type: documentation
content_hash: 9bdf009dab7386fc098eb88a978ea41447103ac61e6dd997d343844007ab7def
description: MuleSoft Documentation Site
release: "1.9"
latest: false
---
# 準備状況プローブまたはライブネスプローブの設定

Flex Gateway では、信頼性と効率を確保するための 2 つの方法がサポートされます。

- 準備状況プローブでは、ゲートウェイインスタンスが正しく設定され、受信トラフィックへの準備が整っているかどうかをテストします。これにより、部分的に設定された API によってエンドユーザーが影響を受けないようにします。詳細は、​[準備状況プローブの設定](#configure-a-readiness-probe)​を参照してください。
- ライブネスプローブでは、ゲートウェイインスタンスが稼働可能かどうかをテストします。これにより、クラッシュや他の障害によるダウンタイムを最小限に抑えます。詳細は、​[ライブネスプローブの設定](#configure-a-liveness-probe)​を参照してください。

## [](#configure-a-readiness-probe)準備状況プローブの設定

Flex Gateway インスタンスで受信トラフィックへの準備が整っているかどうかをテストするには、次の CLI コマンドを使用します。

```ssh
flexctl probe --check=readiness
```

Flex Gateway インスタンスで受信トラフィックを受信する準備が整っている場合、このコマンドは終了コード ​`0`​ を返します。それ以外の場合、このコマンドは終了コード ​`1`​ を返します。

Flex Gateway が開始されると、その準備状況は ​`false`​ になります。この状況は、次の条件が満たされると ​`true`​ に変わります。

- API インスタンスがデプロイされた (1 つ以上の API が設定されている必要があります)
- ポリシーが初期化された

設定の変更を実行中のゲートウェイに適用しても、準備状況に影響はありません。これにより、インスタンスは、設定の更新中であってもトラフィックを継続的に受信することができます。

特定の環境での準備状況プローブの設定についての詳細は、次を参照してください。

- Kubernetes と OpenShift
- Docker、Podman、Linux

デフォルトでは、Kubernetes で実行されている Flex Gateway には、Helm チャートで設定された準備状況プローブが含まれています。準備状況プローブは ​`flexctl probe --check=readiness --allow-api-errors --allow-envoy-errors --allow-policy-errors`​ を 10 秒間隔で自動的に実行します。

準備状況プローブには、次のデフォルト値があります。

```helm
readinessProbe:
 exec:
   command:
   - flexctl
   - probe
   - --check=readiness
   - --allow-api-errors
   - --allow-envoy-errors
   - --allow-policy-errors
 initialDelaySeconds: 10
 periodSeconds: 10
 failureThreshold: 2
 timeoutSeconds: 5
```

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 66.6667%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">パラメーター</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">説明</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exec.command</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">準備状況プローブコマンド</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>--allow-api-errors</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">API インスタンスでのエラーを許可するフラグ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>--allow-envoy-errors</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Envoy 設定エラーを許可するフラグ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>--allow-policy-errors</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ポリシー設定エラーを許可するフラグ</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>initialDelaySeconds</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">起動後、最初の準備状況プローブを実行するまで待機する時間 (秒単位)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>periodSeconds</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">各準備状況プローブ間の間隔 (秒単位)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>failureThreshold</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Kubernetes 準備状況を ​<code>false</code>​ に設定するまでの失敗した準備状況プローブ数</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>timeoutSeconds</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">準備状況プローブがタイムアウトになるまでの時間 (秒単位)</p></td>
</tr>
</tbody>
</table>

デフォルトのパラメーターを変更するには、Helm チャートを更新します。これらのパラメーターは、Helm チャートの初回インストール中またはインストール後に変更できます。Helm チャートの更新についての詳細は、[Helm チャートを介した Flex Gateway デプロイメントのポッド設定の更新](https://docs.mulesoft.com/jp/gateway/1.9/flex-gateway-k8-change-helm-settings)を参照してください。

デフォルトの Kubernetes 準備状況プローブは、エラーを許容するように設定されています。これにより、設定エラーの可能性があっても Flex Gateway を拡張できます。エラーの許容範囲についての詳細は、​[エラーの許容範囲の設定](#configure-error-tolerance)​を参照してください。

<table><tbody><tr><td class="icon"><i class="fa icon-note" title="Note"></i></td><td class="content">デフォルトでは、Kubernetes または Openshift で実行されている Flex Gateway は準備状況プローブを使用します。Flex Gateway インスタンスにデプロイされた API がない場合、準備状況は ​<code>false</code>​ になります。これは、カスタム準備状況プローブ設定では問題にはなりません。</td></tr></tbody></table>

Docker および Linux デプロイメントの場合、Flex Gateway には、事前設定済みのデフォルトの準備状況プローブは含まれません。ただし、準備状況プローブコマンドを手動で実行したり、外部サードパーティサービスで自動的に使用するように設定したりすることはできます。Kubernetes 準備状況プローブ以外では、MuleSoft はサードパーティの準備状況プローブのサポートを提供しません。

### [](#外部コンポーネントの設定)外部コンポーネントの設定

準備状況を照会するように外部コンポーネントを設定します。たとえば、ロードバランサーの背後で実行される AWS 仮想マシンでは、準備状況クエリを状態チェックとして設定します。準備状況 API を外部コンポーネントに公開するには、次の設定を Flex Gateway インスタンスに適用します。

```yaml
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
 name: probe
spec:
 probe:
   enabled: true
   port: 3000
```

YAML 設定スニペットを適用すると、準備状況 API で ​`GET`​ 要求に応答することができます。

`http://<flex-gateway-url>:<port-configured>/probes/readiness?allowEnvoyErrors=<true|false>&allowAPIErrors=<true|false>&allowPolicyErrors=<true|false>`

### [](#configure-error-tolerance)エラーの許容範囲の設定

エラーを許容しないまたは許容するように準備状況プローブを設定できます。エラーを許容しない場合、誤って設定されたゲートウェイインスタンスでは、準備状況が ​`true`​ に達することはありません。エラーを許容するデプロイメントでは、設定エラーが発生した (たとえば、ポリシーを誤って設定した) 場合、API インスタンスおよびポリシーがデプロイされた後も準備状況は ​`true`​ のままです。これにより、設定エラーの可能性があっても Flex Gateway を拡張できます。

準備状況 CLI コマンドでは、エラーの許容範囲を設定する次のフラグが提供されます。

- `--allow-api-errors`
- `--allow-envoy-errors`
- `--allow-policy-errors`

準備状況 API への HTTP 要求を介して準備状況を照会するデプロイメントでは、次のクエリパラメーターを使用します。

- `allowEnvoyErrors=false`
- `allowAPIErrors=false`
- `allowPolicyErrors=false`

### [](#シャットダウン中の準備状況のプローブ)シャットダウン中の準備状況のプローブ

ゲートウェイで ​`Connection: close`​ ヘッダーが送信された場合、準備状況はシャットダウン中もプローブされます。​`SIGTERM`​ シグナルでは、ダウンストリーム接続に再接続の信号を送信することで、ダウンストリーム接続のドレーンを開始します。デフォルトのドレーン期間は 25 秒で、その後、Flex Gateway は適切に終了します。

ドレーン期間を変更するには、Docker および Linux では ​`FLEX_SERVICE_ENVOY_DRAIN_TIME`​ 環境変数、Kubernetes Helm チャートでは ​`gateway.drainSeconds`​ オプションを使用できます。

Flex Gateway では、ドレーン期間よりも 5 秒長い 30 秒のグレースフルシャットガウンが事前設定されています。ドレーン期間を増加する場合は、​`TimeoutStopSec`​ (Linux) または ​`terminationGracePeriodSeconds`​ (Kubernetes) を使用してシャットダウン期間も増加します。シャットダウン期間はドレーン期間を超える必要があります。

Kubernetes のデフォルトの準備状況プローブは、失敗しきい値 2 で 10 秒ごとに実行され、20 秒以内にシャットダウンを検出できます。これにより、シャットダウン中のインスタンスに新しいトラフィックは送信されなくなります。AWS ロードバランサーなどの他の環境で準備状況プローブの同様の設定を使用します。

## [](#configure-a-liveness-probe)ライブネスプローブの設定

Flex Gateway インスタンスが稼働可能かどうかをテストするには、次の CLI コマンドを使用します。

```ssh
flexctl probe --check=liveness
```

Flex Gateway インスタンスが稼働可能な場合、このコマンドは終了コード ​`0`​ を返します。それ以外の場合、このコマンドは終了コード ​`1`​ を返します。

ライブネスプローブコマンドを手動で実行することも、自動的に実行されるようにコマンドを設定することもできます。デフォルトでは、Flex Gateway の Kubernetes デプロイメントには自動ライブネスプローブが設定されています。デフォルトのプローブは、ライブネスプローブコマンドを定期的に実行し、指定された回数の失敗の後に Flex Gateway ポッドを自動的に再起動します。

特定の環境でのライブネスプローブの設定についての詳細は、次を参照してください。

- Kubernetes と OpenShift
- Docker、Podman、Linux

デフォルトでは、Kubernetes で実行されている Flex Gateway には、Helm チャートで設定されたライブネスプローブが含まれています。ライブネスプローブは、​`flexctl probe --check=liveness`​ を 10 秒間隔で自動的に実行し、テストが 5 回失敗した後に稼働していないポッドを再起動します。

ライブネスプローブはデフォルトで次の値で設定されています。

```helm
livenessProbe:
 exec:
   command:
   - flexctl
   - probe
   - --check=liveness
 initialDelaySeconds: 10
 periodSeconds: 10
 failureThreshold: 5
 timeoutSeconds: 1
```

<table class="tableblock frame-all grid-all stretch">
<colgroup>
<col style="width: 33.3333%;">
<col style="width: 66.6667%;">
</colgroup>
<tbody>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock">パラメーター</p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">説明</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>exec.command</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ライブネスプローブコマンド</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>initialDelaySeconds</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">起動後、最初のライブネスプローブを実行するまで待機する時間 (秒単位)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>periodSeconds</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">各ライブネスプローブ間の間隔 (秒単位)</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>failureThreshold</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">Kubernetes ポッドが再起動されるまでの失敗したライブネスプローブ数</p></td>
</tr>
<tr>
<td class="tableblock halign-left valign-top"><p class="tableblock"><code>timeoutSeconds</code></p></td>
<td class="tableblock halign-left valign-top"><p class="tableblock">ライブネスプローブがタイムアウトになるまでの時間 (秒単位)</p></td>
</tr>
</tbody>
</table>

デフォルトのパラメーターを変更するには、Helm チャートを更新します。これらのパラメーターは、Helm チャートの初回インストール中またはインストール後に変更できます。Helm チャートの更新についての詳細は、[Helm チャートを介した Flex Gateway デプロイメントのポッド設定の更新](https://docs.mulesoft.com/jp/gateway/1.9/flex-gateway-k8-change-helm-settings)を参照してください。

Docker および Linux デプロイメントの場合、Flex Gateway には、事前設定済みのデフォルトのライブネスプローブは含まれません。ただし、ライブネスプローブコマンドを手動で実行したり、サードパーティサービスで自動的に使用するように設定したりすることはできます。Kubernetes ライブネスプローブ以外では、MuleSoft はサードパーティのライブネスプローブのサポートを提供しません。

Docker でライブネスプローブコマンドを実行する 1 つの方法は、​`docker run`​ コマンドで ​`HEALTHCHECK`​ を設定することです。詳細は、 [「Docker run HEALTHCHECK」](https://docs.docker.com/engine/reference/run/#healthcheck)​を参照してください。

## [](#関連情報)関連情報

- [Liveness Probe、Readiness Probe および Startup Probe を使用する](https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/)​。
- [状態チェックポリシー](https://docs.mulesoft.com/jp/gateway/1.9/policies-included-health-check)