6.7. Load-balancing サービスヘルスモニターの作成
負荷分散サービス (octavia) ヘルスモニターを使用して、ユーザーのサービスの中断を回避します。ヘルスモニターは、各バックエンドサーバーで定期的なヘルスチェックを実行し、障害が発生したサーバーを事前に検出し、Red Hat OpenStack Services on OpenShift (RHOSO) 環境のプールから一時的にサーバーを除外します。
前提条件
-
管理者がプロジェクトを作成し、管理者からクラウドにアクセスするための
clouds.yamlファイルが提供されている。 python-openstackclientパッケージがワークステーション上に存在する。$ dnf list installed python-openstackclient
手順
システムの
OS_CLOUD変数がクラウドに設定されていることを確認します。$ echo $OS_CLOUD my_cloud必要に応じて変数をリセットします。
$ export OS_CLOUD=my_other_cloud代わりに、
openstackコマンドを実行するたびに--os-cloud <cloud_name>オプションを追加してクラウド名を指定することもできます。サイトに適した引数値を使用して、
openstack loadbalancer healthmonitor createコマンドを実行します。すべてのヘルスモニタータイプには、次の設定可能な引数が必要です。
<pool>- 監視対象のバックエンドメンバーサーバーのプールの名前または ID。
--type-
ヘルスモニターのタイプ。
HTTP、HTTPS、PING、SCTP、TCP、TLS-HELLO、またはUDP-CONNECTのいずれか。 --delay- ヘルスチェックの間隔 (秒単位)。
--timeout-
指定したヘルスチェックが完了するまで待機する時間 (秒単位)。
timeoutは、常にdelayよりも小さくなければなりません。 --max-retries- バックエンドサーバーが停止しているとみなされるまでに失敗する必要のあるヘルスチェックの数。また、障害が発生したバックエンドサーバーが再度稼働中とみなされるために成功しなければならないヘルスチェックの数。
さらに、HTTP ヘルスモニタータイプには、デフォルトで設定されている次の引数も必要です。
--url-path-
バックエンドサーバーから取得される URL のパスの部分。デフォルトでは、これは
/です。 --http-method-
url_pathを取得するために使用される HTTP メソッド。デフォルトでは、これはGETだけです。 --expected-codes-
ヘルスチェックの成功を表す HTTP ステータスコードのリスト。デフォルトでは、これは
200です。 - 例
$ openstack loadbalancer healthmonitor create --name my-health-monitor --delay 10 --max-retries 4 --timeout 5 --type TCP lb-pool-1 --wait
検証
-
openstack loadbalancer healthmonitor listコマンドを実行し、ヘルスモニターが実行していることを確認します。