NetScaler CPXの高可用性の設定
ミッションクリティカルおよびビジネスクリティカルなアプリケーションがインストールされたシステムは、単一障害点が発生することなく継続的に利用可能である必要があります。高可用性を備えたシステムは、ユーザーに提供するサービスを中断することなく、アプリケーションの継続的な可用性を保証します。NetScaler CPXは、2つのNetScalerインスタンスの高可用性導入をサポートします。これにより、予期しないダウンタイムからサービスを保護し、障害発生時の事業継続性を確保できます。高可用性を構成したら、ユーザーへのサービスを中断することなくNetScaler CPXソフトウェアをアップグレードすることもできます。
注: 内部ユーザーアカウントが無効になっている場合、NetScaler CPXの高可用性機能はサポートされません。
トポロジー1: NetScaler CPXインスタンスをブリッジネットワークモードの単一Docker ホストにデプロイします
このトポロジーでは、ブリッジネットワークモードの同じDocker ホストに2つのNetScaler CPXノードが作成されます。両方のノードは同じブリッジネットワーク上にあり、ノードは互いに直接到達可能です。
次の図は、このトポロジを説明しています。
この例では、CPX-1(NSIP: 172.17.0.3)とCPX-2(NSIP: 172.17.0.4)の2つのNetScaler CPXインスタンスが同じDocker ホスト上に作成されます。高可用性をサポートするには、もう一方のノードのNSIPを使用して、両方のNetScaler CPXインスタンスで高可用性ノードを構成する必要があります。
ブリッジモードの単一Dockerホスト上のNetScaler CPXインスタンスで高可用性サポートを構成するには、次の手順を実行します。
-
Docker ホストにアクセスし、NetScaler CPXインスタンスのSSHプロンプトにログオンします。詳しくは、「 コマンドラインインターフェイスを使用したNetScaler CPXインスタンスの構成」を参照してください。
-
次のコマンドを使用して、CPX-1インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add ha node 1 172.17.0.4 [-inc enabled]’
-
次のコマンドを使用して、CPX-2インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add ha node 1 172.17.0.3 [-inc enabled]’
注: ブリッジネットワークモードのNetScaler CPXノードを再起動すると、NetScaler CPXに割り当てられたIPアドレスは、ホスト上のDockerバージョンによって変わることがあります。NetScaler CPXの再起動後にいずれかのノードのNSIPが変更された場合、構成を保存しても既存の高可用性構成は機能しません。その場合は、NetScaler CPXノードで高可用性を再度構成する必要があります。
トポロジー2: ブリッジネットワークモードを使用してNetScaler CPXを異なるDocker ホストにデプロイします
このトポロジーでは、2つのNetScaler CPXインスタンスが、互いにアクセス可能な2つの異なるDockerホストにブリッジモードでデプロイされます。この展開では、NetScaler CPXはホストのIPアドレスを認識している必要があります。HOST環境変数は、NetScaler CPXをプロビジョニングするときにNetScaler CPXにホストのIPアドレスを認識させるために使用できます 。
NetScaler CPXノードのポートマッピングを設定する必要があります。NetScaler CPXノードの作成時にdocker runコマンドの-pオプションを使用して 、必要なポートのポートマッピングを有効にできます。
次のポートをマッピングする必要があります:
- UDP 3003
- TCP 3008
- TCP 8873
次の図は、2つのNetScaler CPXインスタンスを2つの異なるDockerホストにブリッジモードで展開するトポロジを示しています。
この図では、青い直線は2つのホスト間のCPX-HAトラフィックのフローを表しています。
注: Docker ホストでは、高可用性ペアを形成できるNetScaler CPXは1つだけです。同じホスト上の他のNetScaler CPXは、別のホスト上の別のNetScaler CPXと高可用性ペアを形成することはできません。
NetScalerインスタンスを異なるDockerホストにブリッジモードでデプロイし、サンプルトポロジーを使用して高可用性サポートを構成するには、次の手順を実行します。
この例では、HOST1のIPアドレスは10.10.10.10/24
として構成され、HOST2のIPアドレス
は10.10.10.20/24
として構成されています。
-
次のコマンドを使用して、必要なポートマッピングを含むNetScaler CPXをホスト1にデプロイします。
Docker run -dt --privileged=true -e EULA=yes --ulimit core=-1 -p 8873:8873 -p 3003:3003/udp -p 3008:3008 -e Host=10.10.10.10 cpx:latest
-
ホスト2のIPアドレスで同じコマンドを使用して、ホスト2にNetScaler CPXをデプロイします。
docker run -dt --privileged=true -e EULA=yes --ulimit core=-1 -p 8873:8873 -p 3003:3003/udp -p 3008:3008 -e HOST=10.10.10.20 cpx:latest
-
次のコマンドを使用して、CPX-1インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add ha node 1 10.10.10.20 -inc enabled’
-
次のコマンドを使用して、CPX-2インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add ha node 1 10.10.10.10 -inc enabled’
注: この展開では、高可用性ノードのNSIPアドレスではなく、高可用性ノードのホストIPアドレスを使用する必要があります。
トポロジー3: 専用インターフェースを使用せずに、ホストネットワークモードで異なるDocker ホストにNetScaler CPXを導入
このトポロジーでは、2つのNetScaler CPXインスタンスが、専用インターフェースのないホストモードで2つの異なるDocker ホストにデプロイされます。ホストは相互に到達可能である必要があります。 この展開では、NetScaler CPXはホストのIPアドレスを認識している必要があります。NetScaler CPXのプロビジョニング中にHOST環境変数を使用して、 ホストのIPアドレスを認識させることができます 。
NetScaler CPXノードのポートマッピングを設定する必要があります。NetScaler CPXノードの作成時にdocker runコマンドの-pオプションを使用して 、必要なポートのポートマッピングを有効にできます。
次の図は、このトポロジについて説明しています。
この図では、青い直線は2つのホスト間のCPX-HAトラフィックのフローを表しています。
注: Docker ホストでは、ホストモードのNetScaler CPXを1つしかデプロイできません。
次の手順を実行して、NetScaler CPXインスタンスを展開し、サンプルトポロジーを使用して高可用性サポートを構成します。
-
次のコマンドを使用して、NetScaler CPXを必要なポートマッピングでホスト1に展開します。
docker run -dt --privileged=true -e EULA=yes --ulimit core=-1 --net=host -e NS_NETMODE=HOST -e HOST=10.10.10.10 cpx:latest
-
次のコマンドを使用して、ホスト2のIPアドレスを使用してNetScaler CPXをホスト2にデプロイします。
docker run -dt --privileged=true -e EULA=yes --ulimit core=-1 --net=host -e NS_NETMODE=HOST -e HOST=10.10.10.20 cpx:latest
-
次のコマンドを使用して、CPX-1インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add ha node 1 10.10.10.20 -inc enabled
-
次のコマンドを使用して、CPX-2インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add ha node 1 10.10.10.10 -inc enabled’
トポロジ4:ホストネットワークモードと専用のインターフェイスを使用してCPXを異なるDockerホストに展開
このトポロジーでは、2つのNetScaler CPXインスタンスがホストネットワークモードで異なるDocker ホストにデプロイされます。ホストには複数のインターフェイスが必要です。 CPX_NW_DEV環境変数を使用してNetScaler CPXの専用インターフェイスを指定できます。
異なるDocker ホストにデプロイされたNetScaler CPXは、専用インターフェースを使用してこのデータネットワーク上で相互にアクセスできる必要があります。
この構成により、高可用性ノードは、ポート3003、3008、および8873で直接通信することにより、ハートビートメッセージを交換し、構成ファイルを同期できます。ホストにNAT規則は必要ありません。ホストモードで作成されたNetScaler CPXのデフォルトのNSIPは、両方のノードで同じです。そのため、NS_IPとNS_GATEWAY情報も指定する必要があります。
この例では、2つのホストモードのNetScaler CPXが2つの異なるホスト上に作成されます。NetScaler CPXインスタンスは両方のホストのeth1インターフェイスを所有し 、 eth1インターフェイスは同じネットワークに接続されます 。
次の図は、このトポロジについて説明しています。この図の青い矢印は、eth1インターフェイスに接続されたネットワーク上のCPX-HAトラフィックのフローを表しています。
注: Docker ホストでは、ホストモードのNetScaler CPXを1つしかデプロイできません。
次の手順を実行して、NetScaler CPXインスタンスを展開し、サンプルトポロジーを使用して高可用性サポートを構成します。
-
次のコマンドを使用して、NetScaler CPXをホスト1でホストモードで展開します。
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_NW_DEV=eth1 -e NS_IP='12.12.12.2' -e NS_GATEWAY='12.12.12.9' -e EULA=yes --ulimit core=-1 cpx:latest
-
次のコマンドを使用して、NetScaler CPXをホスト2にホストモードでデプロイします。
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_NW_DEV=eth1 -e NS_IP='12.12.12.3' -e NS_GATEWAY='12.12.12.10' -e EULA=yes --ulimit core=-1 cpx:latest
注:ハートビートメッセージを交換したり 、構成ファイルを同期したりするには、両方のNetScaler CPXノードがもう一方のNetScaler CPXノードに到達するように静的ルートを構成する必要があります。
-
次のコマンドを使用して、CPX-1インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add ha node 1 12.12.12.3 [-inc enabled]’
-
次のコマンドを使用して、CPX-2インスタンスに高可用性ノードを構成します。
cli_script.sh ‘add high availability node 1 12.12.12.2 [-inc enabled]’