NetScaler CPX の Kubernetes プローブのサポート
Kubernetes は、アプリケーションが正しく初期化され、正常な状態を維持するように、起動プローブ、活性プローブ、および準備プローブを通じてコンテナのライフサイクルを管理します。NetScaler CPX は、既存の起動プローブと活性プローブに加えて、準備プローブをサポートするようになりました。このサポートにより、Kubernetes は NetScaler CPX が完全に動作可能であり、設定されている場合はライセンスチェックアウトが正常に完了した場合にのみ、トラフィックを NetScaler CPX にルーティングします。
これらのプローブを使用することで、アプリケーションの可用性を向上させ、障害が発生したインスタンスや応答しないインスタンスが迅速に再作成されるようにすることができます。
利点の一部を以下に示します。
-
強化されたトラフィック管理: NetScaler CPX がリクエストを処理する準備ができたときにのみトラフィックを受信するようにします。
-
運用上の信頼性: 異常なコンテナを自動的に再起動して、障害から回復します。
-
ライセンス検証:
LAS_CPX_BANDWIDTHパラメータを使用する場合、ライセンスチェックアウトが成功するまで準備状態を遅延させます。 -
正確な初期化: コンテナの起動からアクティブなヘルス監視への移行を調整します。
注:
準備プローブを使用するには、NetScaler CPX バージョン
14.1-72.x 以降が必要です。プローブのメカニズムに関する詳細については、公式の Kubernetes ドキュメントを参照してください。
NetScaler CPX の Kubernetes プローブを構成する
NetScaler CPX のプローブを構成するには、Kubernetes デプロイ YAML ファイルでプローブパラメータを定義します。
CLI を使用してプローブを構成する
デプロイ YAML ファイルを編集して、Kubernetes が NetScaler CPX コンテナの状態を検証するために使用する特定の
exec コマンドを含めます。
起動プローブの構成: Kubernetes が初期化プロセスの完了を待機するように、次のスニペットを追加します。NetScaler CPX は、{{/tmp/cpx_started}} ファイルを作成することで、起動が成功したことを通知します。活性チェックが開始される前に初期化が完了するように、このパスを監視するように起動プローブを構成します。
startupProbe:
exec:
command:
- ls
- /tmp/cpx_started
initialDelaySeconds: 30
periodSeconds: 5
failureThreshold: 20
successThreshold: 1
timeoutSeconds: 1
レディネスプローブを構成する:ポッドがトラフィックを受け入れる準備ができたタイミングを定義するために、次のスニペットを追加します。CPXは、トラフィックを処理する準備ができたときに
/tmp/cpx_readyファイルを作成します。LAS_CPX_BANDWIDTHパラメータを構成した場合、CPXはライセンスチェックアウトが成功した後にこのファイルを作成します。それ以外の場合は、起動プロセスが完了した後に表示されます。Kubernetesは、レディネスプローブのためにこのファイルを使用して、ポッドにトラフィックをルーティングするタイミングを決定します。
readinessProbe:
exec:
command:
- /bin/ls
- /tmp/cpx_ready
failureThreshold: 15
initialDelaySeconds: 60
periodSeconds: 30
successThreshold: 1
timeoutSeconds: 1
ライブネスプローブを構成する:実行中にコンテナの健全性を継続的に監視するために、次のスニペットを追加します。実行中にCPXの健全性を監視するために、デプロイメントYAMLでライブネスプローブを定義します。プローブが失敗した場合、Kubernetesはコンテナを再起動して、異常な状態から回復させます。このメカニズムは、応答しないCPXインスタンスを自動的に再作成することで、アプリケーションの可用性を保証します。
livenessProbe:
exec:
command:
- /bin/ping
- -c 1
- 192.0.0.1
initialDelaySeconds: 10
periodSeconds: 5
failureThreshold: 3
successThreshold: 1
timeoutSeconds: 1