Flex Gateway新着情報
Governance新着情報
Monitoring API ManagerFlex Gateway では、信頼性と効率を確保するための 2 つの方法がサポートされます。
準備状況プローブでは、ゲートウェイインスタンスが正しく設定され、受信トラフィックへの準備が整っているかどうかをテストします。これにより、部分的に設定された API によってエンドユーザーが影響を受けないようにします。詳細は、準備状況プローブの設定を参照してください。
ライブネスプローブでは、ゲートウェイインスタンスが稼働可能かどうかをテストします。これにより、クラッシュや他の障害によるダウンタイムを最小限に抑えます。詳細は、ライブネスプローブの設定を参照してください。
Flex Gateway インスタンスで受信トラフィックへの準備が整っているかどうかをテストするには、次の CLI コマンドを使用します。
flexctl probe --check=readiness
ssh
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 秒間隔で自動的に実行します。
準備状況プローブには、次のデフォルト値があります。
readinessProbe: exec: command: - flexctl - probe - --check=readiness - --allow-api-errors - --allow-envoy-errors - --allow-policy-errors initialDelaySeconds: 10 periodSeconds: 10 failureThreshold: 2 timeoutSeconds: 5
helm
パラメーター |
説明 |
|
準備状況プローブコマンド |
|
API インスタンスでのエラーを許可するフラグ |
|
Envoy 設定エラーを許可するフラグ |
|
ポリシー設定エラーを許可するフラグ |
|
起動後、最初の準備状況プローブを実行するまで待機する時間 (秒単位) |
|
各準備状況プローブ間の間隔 (秒単位) |
|
Kubernetes 準備状況を |
|
準備状況プローブがタイムアウトになるまでの時間 (秒単位) |
デフォルトのパラメーターを変更するには、Helm チャートを更新します。これらのパラメーターは、Helm チャートの初回インストール中またはインストール後に変更できます。Helm チャートの更新についての詳細は、『Helm チャートを介した Flex Gateway デプロイメントのポッド設定の更新』を参照してください。
デフォルトの Kubernetes 準備状況プローブは、エラーを許容するように設定されています。これにより、設定エラーの可能性があっても Flex Gateway を拡張できます。エラーの許容範囲についての詳細は、エラーの許容範囲の設定を参照してください。
デフォルトでは、Kubernetes または Openshift で実行されている Flex Gateway は準備状況プローブを使用します。Flex Gateway インスタンスにデプロイされた API がない場合、準備状況は false になります。これは、カスタム準備状況プローブ設定では問題にはなりません。
|
Docker および Linux デプロイメントの場合、Flex Gateway には、事前設定済みのデフォルトの準備状況プローブは含まれません。ただし、準備状況プローブコマンドを手動で実行したり、外部サードパーティサービスで自動的に使用するように設定したりすることはできます。Kubernetes 準備状況プローブ以外では、MuleSoft はサードパーティの準備状況プローブのサポートを提供しません。
準備状況を照会するように外部コンポーネントを設定します。たとえば、ロードバランサーの背後で実行される AWS 仮想マシンでは、準備状況クエリを状態チェックとして設定します。準備状況 API を外部コンポーネントに公開するには、次の設定を Flex Gateway インスタンスに適用します。
apiVersion: gateway.mulesoft.com/v1alpha1
kind: Configuration
metadata:
name: probe
spec:
probe:
enabled: true
port: 3000
yaml
YAML 設定スニペットを適用すると、準備状況 API で GET
要求に応答することができます。
http://<flex-gateway-url>:<port-configured>/probes/readiness?allowEnvoyErrors=<true|false>&allowAPIErrors=<true|false>&allowPolicyErrors=<true|false>
エラーを許容しないまたは許容するように準備状況プローブを設定できます。エラーを許容しない場合、誤って設定されたゲートウェイインスタンスでは、準備状況が 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 ロードバランサーなどの他の環境で準備状況プローブの同様の設定を使用します。
Flex Gateway インスタンスが稼働可能かどうかをテストするには、次の CLI コマンドを使用します。
flexctl probe --check=liveness
ssh
Flex Gateway インスタンスが稼働可能な場合、このコマンドは終了コード 0
を返します。それ以外の場合、このコマンドは終了コード 1
を返します。
ライブネスプローブコマンドを手動で実行することも、自動的に実行されるようにコマンドを設定することもできます。デフォルトでは、Flex Gateway の Kubernetes デプロイメントには自動ライブネスプローブが設定されています。デフォルトのプローブは、ライブネスプローブコマンドを定期的に実行し、指定された回数の失敗の後に Flex Gateway ポッドを自動的に再起動します。
特定の環境でのライブネスプローブの設定についての詳細は、次を参照してください。
Kubernetes と OpenShift
Docker、Podman、Linux
デフォルトでは、Kubernetes で実行されている Flex Gateway には、Helm チャートで設定されたライブネスプローブが含まれています。ライブネスプローブは、flexctl probe --check=liveness
を 10 秒間隔で自動的に実行し、テストが 5 回失敗した後に稼働していないポッドを再起動します。
ライブネスプローブはデフォルトで次の値で設定されています。
livenessProbe: exec: command: - flexctl - probe - --check=liveness initialDelaySeconds: 10 periodSeconds: 10 failureThreshold: 5 timeoutSeconds: 1
helm
パラメーター |
説明 |
|
ライブネスプローブコマンド |
|
起動後、最初のライブネスプローブを実行するまで待機する時間 (秒単位) |
|
各ライブネスプローブ間の間隔 (秒単位) |
|
Kubernetes ポッドが再起動されるまでの失敗したライブネスプローブ数 |
|
ライブネスプローブがタイムアウトになるまでの時間 (秒単位) |
デフォルトのパラメーターを変更するには、Helm チャートを更新します。これらのパラメーターは、Helm チャートの初回インストール中またはインストール後に変更できます。Helm チャートの更新についての詳細は、『Helm チャートを介した Flex Gateway デプロイメントのポッド設定の更新』を参照してください。
Docker および Linux デプロイメントの場合、Flex Gateway には、事前設定済みのデフォルトのライブネスプローブは含まれません。ただし、ライブネスプローブコマンドを手動で実行したり、サードパーティサービスで自動的に使用するように設定したりすることはできます。Kubernetes ライブネスプローブ以外では、MuleSoft はサードパーティのライブネスプローブのサポートを提供しません。
Docker でライブネスプローブコマンドを実行する 1 つの方法は、docker run
コマンドで HEALTHCHECK
を設定することです。詳細は、 「Docker run HEALTHCHECK」を参照してください。