Citrix ADC CPXの高可用性の構成
ミッションクリティカルおよびビジネスクリティカルなアプリケーションがインストールされたシステムは、単一障害点が発生することなく継続的に利用可能である必要があります。高可用性を備えたシステムは、ユーザーに提供するサービスを中断することなく、アプリケーションの継続的な可用性を保証します。Citrix ADC CPXは、2つのCitrix ADCインスタンスの高可用性展開をサポートし、計画外のダウンタイムからサービスを保護し、障害が発生した場合のビジネスの継続性を保証します。高可用性を構成すると、ユーザーへのサービスを中断することなく、Citrix ADC CPXソフトウェアをアップグレードすることもできます。
注: 内部ユーザーアカウントが無効になっている場合、Citrix ADC CPX機能の高可用性はサポートされません。
トポロジ1:ブリッジネットワークモードを使用してCitrix ADC CPXインスタンスを単一のDockerホストに展開
このトポロジでは、2つのCitrix ADC CPXノードが、ブリッジネットワークモードの同じDockerホスト上に作成されます。両方のノードは同じブリッジネットワーク上にあり、ノードは互いに直接到達可能です。
次の図は、このトポロジを説明しています。
この例では、2つのCitrix ADC CPXインスタンス、CPX-1(NSIP:172.17.0.3)とCPX-2(NSIP:172.17.0.4)が同じDockerホスト上に作成されています。高可用性をサポートするには、他のノードのNSIPを使用して、両方のCitrix ADC CPXインスタンスに高可用性ノードを構成する必要があります。
ブリッジモードの単一Dockerホスト上のCitrix ADC CPXインスタンスに高可用性サポートを構成するには、次の手順を実行します。
-
Dockerホストにアクセスし、Citrix ADC CPXインスタンスのSSHプロンプトにログオンします。詳しくは、「コマンドラインインターフェイスを使用したCitrix ADC 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]’
注: ブリッジネットワークモードのCitrix ADC CPXノードを再起動すると、ホスト上のDockerのバージョンによって、Citrix ADC CPXに割り当てられたIPアドレスが変わる場合があります。Citrix ADC CPXの再起動後にいずれかのノードのNSIPが変更された場合、既存の高可用性構成が保存されていても機能しません。その場合、Citrix ADC CPXノードで高可用性を再度構成する必要があります。
トポロジ2:ブリッジネットワークモードを使用してCitrix ADC CPXを異なるDockerホストに展開
このトポロジでは、2つのCitrix ADC CPXインスタンスが、相互に到達可能な2つの異なるDockerホストにブリッジモードで展開されます。この展開では、Citrix ADC CPXがホストのIPアドレスを認識している必要があります。HOST環境変数は、Citrix ADC CPXのプロビジョニング時に使用して、Citrix ADC CPXにホストのIPアドレスを認識させることができます。
Citrix ADC CPXノードのポートマッピングを設定する必要があります。Citrix ADC CPXノードの作成中にdocker runコマンドの-pオプションを使用して、必要なポートのポートマッピングを有効にすることができます。
次のポートをマッピングする必要があります:
- UDP 3003
- TCP 3008
- TCP 8873
次の図は、2つの異なるDockerホストにブリッジモードで2つのCitrix ADC CPXインスタンスを展開するトポロジの説明です。
この図では、青い直線は2つのホスト間のCPX-HAトラフィックのフローを表しています。
注: 1つのDockerホストには、1つのCitrix ADC CPXのみが高可用性ペアを形成できます。同じホスト上の他のCitrix ADC CPXは、別のホスト上の別のCitrix ADC CPXと高可用性ペアを形成できません。
次の手順を実行して、Citrix ADCインスタンスをブリッジモードでさまざまなDockerホストに展開し、サンプルトポロジを使用して高可用性サポートを構成します。
この例では、HOST1のIPアドレスは10.10.10.10/24
として構成され、HOST2のIPアドレス
は10.10.10.20/24
として構成されています。
-
次のコマンドを使用して、Citrix ADC CPXを必要なポートマッピングとともにHost1に展開します。
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
-
Host2のIPアドレスで同じコマンドを使用して、Citrix ADC CPXをHost2に展開します。
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:専用のインターフェイスを使用せず、ホストネットワークモードを使用してCitrix ADC CPXを異なるDockerホストに展開
このトポロジでは、2つのCitrix ADC CPXインスタンスが、専用インターフェイスを使用しないホストモードで、2つの異なるDockerホストに展開されます。ホストは相互に到達可能である必要があります。 この展開では、Citrix ADC CPXがホストのIPアドレスを認識している必要があります。HOST環境変数は、Citrix ADC CPXのプロビジョニング中に使用して、Citrix ADC CPXにホストのIPアドレスを認識させることができます。
Citrix ADC CPXノードのポートマッピングを設定する必要があります。Citrix ADC CPXノードの作成中にdocker runコマンドの-pオプションを使用して、必要なポートのポートマッピングを有効にすることができます。
次の図は、このトポロジについて説明しています。
この図では、青い直線は2つのホスト間のCPX-HAトラフィックのフローを表しています。
注: Dockerホストでは、ホストモードのCitrix ADC CPXを1つだけ展開できます。
次の手順を実行して、Citrix ADC CPXインスタンスを展開し、サンプルのトポロジを使用して高可用性サポートを構成します。
-
次のコマンドを使用して、Citrix ADC CPXを必要なポートマッピングとともにHost1に展開します。
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
-
次のコマンドを使用して、Citrix ADC CPXをHost2のIPアドレスとともにHost2に展開します。
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つのCitrix ADC CPXインスタンスがホストモードで、異なるDockerホストに展開されます。ホストには複数のインターフェイスが必要です。CPX_NW_DEV環境変数を使用して、Citrix ADC CPXの専用インターフェイスを指定できます。
CPX_NW_DEV環境変数を使用してCitrix ADC CPXの専用ネットワークインターフェイスを割り当てる方法について詳しくは、「docker runコマンドを使用したCitrix ADC CPXインスタンスの展開」を参照してください。
異なるDockerホストに展開されたCitrix ADC CPXは、専用インターフェイスを使用して、このデータネットワーク上で相互に到達可能である必要があります。
この構成により、高可用性ノードは、ポート3003、3008、および8873で直接通信することにより、ハートビートメッセージを交換し、構成ファイルを同期できます。ホストにNAT規則は必要ありません。ホストモードで作成されたCitrix ADC CPXのデフォルトのNSIPは、両方のノードで同じです。そのため、NS_IPとNS_GATEWAY情報も指定する必要があります。
この例では、2つのホストモードのCitrix ADC CPXが2つの異なるホスト上に作成されています。Citrix ADC CPXインスタンスは、両方のホストでeth1インターフェイスを所有し、eth1インターフェイスは同じネットワークに接続されています。
次の図は、このトポロジについて説明しています。この図の青い矢印は、eth1インターフェイスに接続されたネットワーク上のCPX-HAトラフィックのフローを表しています。
注: Dockerホストでは、ホストモードのCitrix ADC CPXを1つだけ展開できます。
次の手順を実行して、Citrix ADC CPXインスタンスを展開し、サンプルのトポロジを使用して高可用性サポートを構成します。
-
次のコマンドを使用して、ホストモードでCitrix ADC CPXをHost1に展開します。
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
-
次のコマンドを使用して、ホストモードでCitrix ADC CPXをHost2に展開します。
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
注: ハートビートメッセージの交換と構成ファイルの同期のために他のCitrix ADC CPXノードに到達するには、両方のCitrix ADC 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]’