フロントエンド IP リソースの作成
IP 転送を無効にして Google Cloud ロードバランサーを使用する場合 ( Google Cloud – 内部ロードバランサーの使用) の「IP転送を無効にする」セクションを参照)、ロードバランサーフロントエンドに関連付けられた IP アドレスは、各バックエンドサーバーのローカルネットワークインターフェースにネットワークマスク /32(255.255.255.255)を使用して追加する必要があります。
これらの構成では、ロードバランサーのフロントエンド IP アドレスは、クラウドエージェントプロセスによってネットワークインターフェースに自動的に 追加されることはありません 。代わりに、各バックエンドサーバーのゲストオペレーティングシステム内に手動で追加する必要があります。これを実現する最も簡単な方法は、ロードバランサーの各フロントエンド IP アドレスに LifeKeeper IP リソースを作成し、次のセクションで作成する LB Health Check リソースの依存関係として追加することです。
IP リソースの作成 の手順に従って、次のパラメーターを使用して、ロードバランサーの各フロントエンドIPアドレスにIPリソースを作成および拡張します。
Create Resource ウィザード | |
---|---|
Switchback Type | intelligent |
Server | node-a |
IP Resource | <Frontend IP Address> |
Netmask | 255.255.255.255 |
Network Interface | <Network Interface> |
IP Resource Tag | <Resource Tag> |
Pre-Extend ウィザード | |
Target Server | node-b |
Switchback Type | intelligent |
Template Priority | 1 |
Target Priority | 10 |
Extend comm/ip Resource Hierarchy ウィザード | |
IP Resource | <Frontend IP Address> |
Netmask | 255.255.255.255 |
Network Interface | <Network Interface> |
IP Resource Tag | <Resource Tag> |
ロードバランサーのフロントエンド IP アドレスごとに IP リソースが作成されたため、ロードバランサーのヘルスチェックプローブに応答する LB Health Check リソースを作成できます。
LB Health Check リソースの作成
この例では、TCP ポート 54321 で Listen するサーバー node-a 上にサンプルの LB Health Check リソースを作成します。
- LifeKeeper GUIで、
をクリックして Create Resource ウィザードを開きます。 「LB Health Check Kit」を選択します。
- Create Resource ウィザードに次の値を入力し、プロンプトが表示されたら [Create] をクリックします。
アイコンは、デフォルトのオプションが選択されていることを示します。
Switchback Type | Intelligent |
Server | node-a |
Reply daemon Port | 54321 |
Reply daemon message | 空欄のままにします |
LB Health Check Resource Tag | ilb-test-54321 |
リソースが作成され、正常にサービスが開始されたら、 [Next>] をクリックして Pre-Extend ウィザード に進みます。
- Pre-Extend ウィザード に次の値を入力します。
アイコンは、デフォルトのオプションが選択されていることを示します。
Target Server | node-b |
Switchback Type | Intelligent |
Template Priority | 1 |
Target Priority | 10 |
事前拡張チェックに合格したら、 [Next>] をクリックして、 Extend Resource Hierarchy ウィザードに進みます。
- Extend Resource Hierarchy ウィザードに次の値を入力し、プロンプトが表示されたら [Extend] をクリックします。
アイコンは、デフォルトのオプションが選択されていることを示します。
LB Health Check Resource Tag | ilb-test-54321 |
リソースが正常に拡張されたら、 [Finish] をクリックします。
- LifeKeeper GUI に戻ると、新しく作成された ilb-test-54321 リソースが node-a でアクティブ、node-b でスタンバイであることがわかります。この状態では、ポート 54321 で TCP ヘルスチェックを実行する TCP ロードバランサーは、node-a を正常、node-b を異常として扱い、すべてのロードバランサートラフィックを node-a にルーティングします。このリソースは、保護されたアプリケーションとともにリソース階層に配置されると、ロードバランサーのトラフィックが常に、アプリケーションが現在実行されているサーバーにルーティングされるようにします。
LB Health Check リソースの依存関係としてフロントエンド IP リソースを追加する
IP 転送を無効にして Google Cloud ロードバランサーを使用する場合 ( Google Cloud – 内部ロードバランサーの使用 IP アドレスを保護する IP リソース(ネットワークマスク 255.255.255.255 を使用)は、LB Health Check リソースの依存関係として追加する必要があります。上記の「フロントエンドIPリソースの作成」セクションで作成したIPリソースごとに、次の手順を実行します。
- ilb-test-54321 リソースを右クリックし、ドロップダウンメニューから [Create Dependency…] を選択します。
- 子リソースタグ に、ロードバランサーのフロントエンドIPアドレスを保護するリソースを指定します。
- [Next>] をクリックして続行し、 [Create Dependency] をクリックして依存関係を作成します。
IP リソースが依存関係として追加されると、階層は次のようになります
LB Health Check リソースのスイッチオーバーとフェイルオーバーをテストする
このセクションでは、node-a と node-b をバックエンドターゲットとして使用し、次のプロパティを持つ内部ロードバランサーを作成していると想定します。
- フロントエンド内部 IP: 10.20.0.10
- ポート 54321 での TCP ヘルスチェック
また、前のセクションで作成した ilb-test-54321 LB Health Check リソースは、現在 node-a でアクティブになっているとします。
便宜上、各サーバーのホスト名を返すだけの一時的な Apache Web サーバーをセットアップします。 node-aとnode-bの両方 で次のコマンドを実行します。SLES サーバーにインストールする場合は、コマンドを適宜調整してください(例:zypper install を使用)。
# yum install -y httpd # systemctl start httpd # echo $(hostname) > /var/www/html/index.html
続行する前に、node-a および node-b の TCP ポート 80 でトラフィックが許可されていることを確認してください。
次に、 ilb-test-54321 LB Health Checkリソースのスイッチオーバーおよびフェイルオーバー機能をテストします。
- ilb-test-54321 リソースが node-a でアクティブで node-b でスタンバイの場合、各サーバーで次のコマンドの出力を確認します。
[root@node-a ~]# curl http://10.20.0.10 node-a [root@node-b ~]# curl http://10.20.0.10 node-a
- node-a で以下のコマンドを実行します。
[root@node-a ~]# while true; do curl http://10.20.0.10; sleep 1; done
そして、 ilb-test-54321 リソースの node-b へのスイッチオーバーを開始します。スイッチオーバーが正常に完了したら、Ctrl-C(SIGINT)を使用して、node-a で実行中のコマンドを終了させます。
コマンドの出力は次のようになります。
…
node-a
node-a
node-a
[switchover occurs]
node-b
node-b
node-b
…
特に、ロードバランサーは、node-b へのルーティングを開始する前に、node-a へのトラフィックのルーティングを完全に停止する必要があります。スイッチオーバーポイント付近の出力が次のようになっている場合:
…
node-a
[switchover occurs]
node-b
node-a
node-b
node-a
node-b
node-a
node-b
node-b
node-b
…
ヘルスチェックのプロパティを編集して、バックエンドインスタンスが異常と判定されてロードバランサープールから削除される前に、ヘルスチェックスローブ間の時間を短くしたり、ヘルスチェックスローブの失敗の最小回数を減らしたりする必要がある場合があります。詳しくは、「ロードバランサーのヘルスチェックパラメーターのチューニング」のセクションを参照してください。
- node-b で ilb-test-54321 リソースがアクティブになっている状態で、node-a で次のコマンドを実行します。
[root@node-a ~]# while true; do curl http://10.20.0.10; sleep 1; done
node-b を強制的に再起動して、 ilb-test-54321 リソースの node-a へのフェイルオーバーを開始します。
[root@node-b ~]# echo b > /proc/sysrq-trigger
フェイルオーバーが正常に終了したら,Ctrl-C(SIGINT)で node-a 上の実行中のコマンドを終了させます。
node-a でのコマンドの出力は以下のようなものになります。
…
node-b
node-b
node-b
[failover occurs]
node-a
node-a
node-a
…
この時点で、LB Health Check リソースの動作の基本的な検証は完了です。必要に応じて追加のテストを実行し、スイッチオーバーやフェイルオーバー時の LB Health Check リソースと保護対象のアプリケーション間の相互作用を検証します。LB Health Check リソースの機能テストが終了したら、node-a と node-b の両方で次のコマンドを実行して、一時的な Apache Web サーバーを削除することができます。
# systemctl stop httpd # rm -f /var/www/html/index.html # yum remove -y httpd
ロードバランサーヘルスチェックパラメーターのチューニング
「ロードバランサーヘルスチェックパラメーターのチューニング 」をご覧ください。
このトピックへフィードバック