© 1999-2017 Citrix Systems, Inc. All rights reserved. p.1https://docs.citrix.com
NetScaler CPXについて
アーキテクチャとトラフィックフロー
CPXのライセンス
NetScaler CPXのインストール
NetScaler CPXの構成
NetScaler CPXインスタンスのアップグレードまたはダウングレード
NetScaler CPXインスタンスでのワイルドカード仮想サーバーの使用
ネットワークへの直接アクセスが有効なNetScaler CPXの展開
East-Westトラフィックフローを可能にするためのNetScaler CPXのプロキシとしての展開
単一ホストネットワークでのNetScaler CPXの展開
マルチホストネットワークでのNetScaler CPXの展開
MesosおよびMarathon環境でのNetScaler CPXの展開
NetScaler MASを使用したNetScaler CPXインスタンスとMesos、Marathon、InfoBlox、およびNuageの統合
Kubernetes環境でのNetScaler CPXの展開
NetScaler CPX 11.1
Dec 15, 2016
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.2https://docs.citrix.com
NetScaler CPXについて
Dec 15, 2016
Citrix NetScaler CPXは、コンテナーベースのアプリケーションデリバリーコントローラーで、Dockerホストでプロビジョニ
ングできます。 NetScaler CPXを使用することにより、Dockerエンジン機能を利用し、NetScalerの負荷分散機能とトラ
フィック管理機能を、コンテナーベースのアプリケーション向けに活用できます。 1つまたは複数のNetScaler CPXインスタ
ンスを、スタンドアロンインスタンスとしてDockerホストで展開できます。
NetScaler CPXインスタンスの最大スループットは1Gbpsです。
このドキュメントは、ユーザーがDockerとその機能を理解していることを前提としています。 Dockerについて詳しくは、
Dockerのドキュメント(https://docs.docker.com)を参照してください。
サポートされる機能
NetScaler CPXでは、次の機能がサポートされます。
アプリケーションの可用性
L4の負荷分散およびL7のコンテンツスイッチ
SSLオフロード
IPv6プロトコル変換
アプリケーションのセキュリティ
L7の書き換えおよびレスポンダー
簡単な管理機能
Webログ
AppFlow
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.3https://docs.citrix.com
アーキテクチャとトラフィックフロー
Dec 15, 2016
NetScaler CPXインスタンスをDockerホストにプロビジョニングすると、Dockerエンジンによって仮想インターフェイス
eth0がCPXインスタンスに作成されます。 このeth0インターフェイスは、docker0ブリッジで仮想インターフェイス
(veth*)に直接接続されます。 また、Dockerエンジンによって、ネットワーク172.17.0.0/16のNetScaler CPXインスタン
スにIPアドレスが割り当てられます。
CPXインスタンスのデフォルトゲートウェイは、docker0ブリッジのIPアドレスです。これは、NetScaler CPXインスタンス
とのすべての通信が、Dockerネットワークを介して行われることを意味します。 docker0ブリッジからのすべての受信トラ
フィックが、NetScaler CPXインスタンスのeth0インターフェイスで受信され、NetScaler CPXパケットエンジンによって処
理されます。
次の図は、Dockerホスト上のNetScaler CPXインスタンスのアーキテクチャを示しています。
単一IPアドレスがNetScaler CPXで機能するしくみ
通常のNetScaler MPXまたはVPXアプライアンスでは、少なくとも以下に示す3つのIPアドレスが機能している必要がありま
す。
NetScaler IP(NSIP)アドレスと呼ばれる管理IPアドレス
サーバーファームとやり取りするためのサブネットIP(SNIP)アドレス
クライアント要求を受け付ける仮想サーバーIP(VIP)アドレス
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.4https://docs.citrix.com
NetScaler CPXインスタンスは、管理とデータトラフィック用に使用される、単一IPアドレスで動作します。
プロビジョニング中は、Dockerエンジンによって、1つのプライベートIPアドレス(単一IPアドレス)のみがNetScaler CPX
インスタンスに割り当てられます。 NetScalerインスタンスの3つのIP機能が1つのIPアドレス上で多重化されます。 この単
一IPアドレスは、異なるポート番号を使用して、NSIP、SNIP、およびVIPとして機能します。
次の図は、単一IPアドレスを使用してNSIP、SNIP、およびVIPの機能を実行する方法を示しています。
NetScaler CPXインスタンスからの要求のトラフィックフロー
Dockerでは、NetScaler CPXインスタンスからのトラフィックがdocker0のIPアドレスに転送されるよう、IPの一覧とNAT規
則が暗黙的に構成されます。
次の図は、NetScaler CPXインスタンスからのping要求が、どのようにして宛先に到達するかを示しています。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.5https://docs.citrix.com
この例のping要求は、ソースIPアドレスをNetScaler CPX IPアドレス(172.17.0.4)として、eth0インターフェイスのパケッ
トエンジンによって送信されます。 次に、Dockerホストが実行するネットワークアドレス変換(NAT)によって、ホストIP
アドレス(192.68.x.x)がソースIPアドレスとして追加され、要求が宛先(216.58.x.x)に送信されます。 ターゲットIPアド
レスからの応答は、逆の順序で同じパスをたどります。 Dockerホストが応答に対してNATを実行し、eth0インターフェイ
スのNetScaler CPXインスタンスに応答を転送します。
外部ネットワークからの要求のトラフィックフロー
NetScaler CPXのプロビジョニング中に外部通信を可能にするには、Dockerで80や22などの特定のポートや、その他の任意
のポートが公開されるようにパラメーターを設定する必要があります。 プロビジョニング中に公開されるように設定されて
いるポートがない場合は、DockerホストにNAT規則を構成して、これらのポートを使用可能にする必要があります。
Dockerホストは、インターネットからのクライアント要求を受信し、次にポートアドレス変換(PAT)を実行して、パブ
リックIPアドレスおよびポートをNetScaler CPXインスタンスの単一IPアドレスとポートにマップし、トラフィックをインス
タンスに転送します。
次の図は、Dockerホストがポートアドレス変換を実行し、トラフィックをNetScaler CPXの単一IPアドレスおよびポートに
転送する方法を示しています。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.6https://docs.citrix.com
この例で、DockerホストのIPアドレスは192.68.x.xで、NetScaler CPXインスタンスの単一IPアドレスは172.17.0.4です。
NetScaler CPXインスタンスのSSHポート22は、Dockerホストのポート1100にマップされます。 クライアントのSSH要求
は、IPアドレス192.68.x.xのポート1100で受信されます。 Dockerホストがポートアドレス変換を実行して、このアドレスと
ポートをポート22の単一IPアドレス172.17.0.4にマップし、クライアント要求を転送します。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.7https://docs.citrix.com
CPXのライセンス
Dec 15, 2016
CPXインスタンスのライセンスを有効化すると、NetScaler CPXのパフォーマンスを強化できます。 NetScaler MASを使用し
てCPXライセンスをプールし、それをライセンスサーバーとして使用します。 MASでライセンスをインストールするには、
Citrixから購入したライセンスファイルをGUIからアップロードします。 CPXインスタンスにライセンスを割り当てるには、
構成ジョブやCPXのNitroを使用できます。
次の表は、ライセンスされたCPXと未ライセンスのCPX(CPX Express)の相違点を示しています。
未ライセンスの未ライセンスのCPX ライセンスされたライセンスされたCPX
スループットスループット 20Mbps 1000Mbps
SSL接続接続 250 1500
CPXライセンスファイルをライセンスファイルをNetScaler MASでインストールするにはでインストールするには
1. Webブラウザーに、NetScaler Management and Analytics SystemのIPアドレスを入力します
(「http://192.168.100.1」など)。
2. [[User Name]]ボックスと[[Password]]ボックスに管理者資格情報を入力します。
3. [[Configuration]]タブで、[[ Infrastructure]]>[[Licenses]]>[[Settings]]の順に選択します。
4. [Details]ペインで[[License Files]]、[[Upload license files f rom a local computer]]の順に選択します。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.8https://docs.citrix.com
5. [[Browse]]をクリックして、ライセンスの割り当てに使用するライセンスファイル(.lic)を選択します。 [完了][完了]をク
リックします。
6. [License Settings]から、いつでもNetScaler Management and Analytics Systemにライセンスを追加できます。
確認確認
NetScaler MASにインストールされたライセンスを確認するには、[[ Infrastructure]]>[[Licenses]]>[[CPX Licenses]]の順に選択します。
MAS構成ジョブを使用した、NetScaler CPXインスタンスのライセンス有効化
NetScaler MASでジョブを構成してNetScaler CPXインスタンスのライセンスを有効化できます。
ジョブを使用してジョブを使用してNetScaler CPXにライセンスを割り当てるにはにライセンスを割り当てるには
1. 管理者資格情報を使用して、NetScaler MASにログオンします。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.9https://docs.citrix.com
2. [[ Infrastructure]]>[[Configuration Jobs]]の順に選択し、[[Create Job]]をクリックします。
3. 必要な値を指定して構成ソースを選択したら、次の図のようにコマンドを入力します。
注意NetScaler MASのライセンスサーバーポート番号は、デフォルトでは27000です。
4. 構成を実行するNetScaler CPXインスタンスを選択し、[[Next]]をクリックします。
5. 実行設定を指定して[[Finish]]をクリックすると、NetScaler CPXインスタンスでコマンドが実行されます。 構成を保存
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.10https://docs.citrix.com
して後で実行する場合は、[[Save and Exit]]をクリックします。
ジョブを使用してジョブを使用してNetScaler CPXのライセンスを削除するにはのライセンスを削除するには
1. 管理者資格情報を使用して、NetScaler MASにログオンします。
2. [[ Infrastructure]]>[[Configuration Jobs]]の順に選択し、[[Create Job]]をクリックします。
3. 必要な値を指定して構成ソースを選択したら、次の図のようにコマンドを入力します。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.11https://docs.citrix.com
4. 構成を実行するNetScaler CPXインスタンスを選択し、[[Next]]をクリックします。
5. 実行設定を指定して[[Finish]]をクリックすると、NetScaler CPXインスタンスでコマンドが実行されます。 構成を保存
して後で実行する場合は、[[Save and Exit]]をクリックします。
Nitro APIを使用した、NetScaler CPXインスタンスのライセンス有効化
NetScaler Nitro APIを使用してNetScaler CPXインスタンスのライセンスを有効化できます。
NetScaler CPXインスタンスにライセンスサーバーを追加するにはインスタンスにライセンスサーバーを追加するには
1. http://<netscaler-ip-address>/nitro/v1/config/nslicenseserverにアクセスします。
2. HTTPメソッドを[[POST]]に設定します。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.12https://docs.citrix.com
3. 次のように要求ヘッダーを追加します。
Cookie:NITRO_AUTH_TOKEN=<tokenvalue>
Content-Type:applicat ion/json
4. 次のように要求ペイロードを入力します。
{"nslicenseserver":{
"licenseserverip":<String_value>,
"servername":<String_value>,
"port":<Double_value>
}}
5. 次のような応答が返されます。
HTTP Status Code on Success: 201 Created
HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). Theresponse payload provides details of the error
NetScaler CPXインスタンスのキャパシティを設定するにはインスタンスのキャパシティを設定するには
1. http://<netscaler-ip-address>/nitro/v1/config/nscapacityにアクセスします。
2. HTTPメソッドを[[PUT]]に設定します。
3. 次のように要求ヘッダーを追加します。
-command コピー
-command コピー
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.13https://docs.citrix.com
Cookie:NITRO_AUTH_TOKEN=<tokenvalue>
Content-Type:applicat ion/json
4. 次のように要求ペイロードを入力します。
{"nscapacity":{
"bandwidth":<Double_value>,
"edit ion":<String_value>,
"unit":<String_value>
}}
5. 次のような応答が返されます。
HTTP Status Code on Success: 200 OK
HTTP Status Code on Failure: 4xx <string> (for general HTTP errors) or 5xx <string> (for NetScaler-specific errors). Theresponse payload provides details of the error
NetScaler CPXインスタンスのライセンス有効化について詳しくは、NetScalerアプライアンスのダウンロードセクションか
らダウンロードできる、Nitro APIのドキュメントを参照してください。
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.14https://docs.citrix.com
Dockerイメージファイルを使用した、DockerホストでのNetScaler CPXのインストール
Dec 15, 2016
NetScaler CPXは、Dockerイメージファイルの形式で提供されます。 NetScaler CPXイメージをDockerイメージファイルか
らロードし、docker runコマンドまたはDocker Composeツールを使用してNetScaler CPXインスタンスを展開します。
NetScaler CPXインスタンスのインストールを開始する前に、「前提条件」のセクションを確認します。
このドキュメントは、次のセクションで構成されています。
前提条件
Dockerイメージファイルを使用したNetScaler CPXイメージのロード
docker runコマンドを使用したNetScaler CPXインスタンスの展開
Docker Composeを使用したNetScaler CPXインスタンスの展開
前提条件
以下の点について確認してください。
Dockerホストシステムに次のものが含まれていること。
1 CPU
2GBのRAM
Dockerホストシステムで、次のいずれかが実行されていること。
Linux Ubuntuバージョン14.04以降
Mac OS X
Dockerバージョン1.12がLinuxホストシステムにインストールされている。
LinuxでのDockerのインストールについて詳しくは、https://docs.docker.com/engine/installation/ubuntulinux/を参照
してください。
Mac OS XでのDockerのインストールについて詳しくは、https://docs.docker.com/engine/installation/mac/を参照し
てください。
Dockerホストからインターネットに接続できる。
Dockerイメージファイルを使用したNetScaler CPXイメージのロード
NetScaler CPXのDockerイメージファイルをhttp://downloadns.citrix.com.edgesuite.net/12132/cpx-11.1-48.10.gzからダウン
ロードし、NetScaler CPXのDockerイメージをロードします。そのためには、Dockerイメージファイルを保存したディレク
トリに移動して、次のコマンドを実行します。
docker load -i cpx-11.1-48.10.gz
NetScaler CPX Dockerイメージのインストール後に次のコマンドを使用すると、イメージの詳細を表示できます。
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.15https://docs.citrix.com
docker images
次に例を示します。
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
cpx 11.1-48.10 2e97aadf918b 43 hours ago 605.5 MB
この例の出力にある、次のフィールドに注意します。
REPOSITORY: イメージが格納されている名前空間を指定します。
TAG: インストールされているNetScaler CPXイメージのバージョンを示します。
IMAGE ID: Dockerホストに含まれるイメージの一意のIDを示します。
docker runコマンドを使用したNetScaler CPXインスタンスの展開
ホスト上でNetScaler CPXイメージをロードしたら、docker runコマンドを使用してNetScaler CPXインスタンスを展開しま
す。外部通信を可能にするには、HTTPポート80、SSHポート22、およびSNMPポート161を開く必要があります。
docker run -dt -p <port number> --ulimit core=-1 --privileged=true –e <REPOSITORY>:<TAG>
docker run -dt -p 22 -p 80 -p 161/udp --ulimit core=-1 --privileged=true cpx:11.1-48.10
docker psコマンドを使用すると、システムで実行されているイメージと、標準ポートにマップされたポートを表示できます。
-command コピー
例 コピー
-command コピー
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.16https://docs.citrix.com
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6fe01203e7b9 cpx:11.1-48.10 "/bin/sh -c 'bash -C " 7 seconds ago Up 5 seconds 443/tcp, 0.0.0.0:32769->22/tcp, 0.0.0.0:32768->80/tcp, 0.0.0.0:32768->161/udp lonely_knuth
Docker Composeを使用したNetScaler CPXインスタンスの展開
Docker Composeツールを使用して、単一または複数のNetScaler CPXインスタンスをプロビジョニングできます。
Composeを使用してNetScaler CPXインスタンスをプロビジョニングするには、最初にComposeファイルを作成して、
NetScaler CPXイメージ、NetScaler CPXインスタンス用に開くポート、およびNetScaler CPXインスタンスの特権を指定す
る必要があります。
複数の複数のNetScaler CPXインスタンスをプロビジョニングするにはインスタンスをプロビジョニングするには
1. Composeファイルを作成します。 Composeファイルは、一般的に次のような形式に従います。
<service-name>:
image: <repository>:<tag>
ports:
- 22
- 80
- 161/udp
- 36001-36010
tty: true
privileged: true
各オプションの意味は次のとおりです。
<service-name>は、プロビジョニングするサービスの名前です。image:<repository>:<tag>は、NetScaler CPXイメージのリポジトリとバージョンを示します。
privileged: trueは、NetScaler CPXインスタンスのすべてのroot特権を提供します。
例 コピー
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.17https://docs.citrix.com
cpxlb:
image: cpx:11.1-48.10
ports:
- 22
- 80
- 161/udp
- 36001-36010
tty: true
privileged: true
注意単一のNetScaler CPXインスタンスをプロビジョニングする場合は、次の行をcomposeファイルに追加する必要があります。
container_name:<name_of_container>
2. 複数のNetScaler CPXインスタンスをプロビジョニングするための、次のコマンドを実行します。
docker-compose -f <compose_file_name> scale <service-name>=<number of instances> up –d
docker-compose -f docker-compose.yml scale cpxlb=3 up –d
注意
サンプル:Composeファイル コピー
-command コピー
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.18https://docs.citrix.com
単一のNetScaler CPXインスタンスをプロビジョニングする場合は、次のコマンドを実行します。
docker-compose -f <compose_file_name> up –d
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.19https://docs.citrix.com
DockerホストでのNetScaler CPXのインストール
Dec 15, 2016
NetScaler CPXは、DockerイメージファイルおよびDockerfileの形式で提供されます。 NetScaler CPXイメージをDockerイ
メージファイルからロードするか、NetScaler CPXイメージファイルをDockerfileからビルドし、Linux Shell、Docker
Composeツール、またはNetScaler Management and Analytics System(MAS)を使用してNetScaler CPXインスタンスを展
開する必要があります。
NetScaler CPXインスタンスのインストールを開始する前に、「前提条件」のセクションを確認します。
このドキュメントは、次のセクションで構成されています。
前提条件
NetScaler CPXイメージファイルの取得
NetScaler CPXインスタンスの展開
前提条件
以下が割り当てられていることを確認してください。
1 CPU
2GBのRAM
Linux Ubuntuバージョン14.04以降。
DockerがLinuxホストシステムにインストールされている。 Dockerをインストールするには、Linux Shellプロンプトで次
のコマンドを実行します。
curl – ssl https://get.docker.com/ | shLinuxでのDockerのインストールについて詳しくは、次のページを参照してくださ
い。https://docs.docker.com/engine/installation/ubuntulinux/
Dockerホストからインターネットに接続できる。
NetScaler MASを使用してNetScaler CPXをインストールしている場合は、Linux Dockerホストで、DockerのリモートAPI
が有効になっていることを確認します。
DockerのリモートAPIを有効にするには、https://docs.docker.com/engine/articles/configuring/#ubuntuを参照してく
ださい。
たとえば、Ubuntu 14.04では、次の手順でリモートAPIを有効にできます。
1. /etc/default/dockerファイルを編集して、–H tcp://<Host_IP_Address>:<port> -Hunix://var/run/docker.sockをDOCKER_OPTS変数に追加します。
2. 変更を保存して、次のコマンドを実行してDockerを再起動します。
sudo restart docker systemdを実行してDockerホストでリモートAPIを有効にするには、http://www.campalus.com/enable-remote-tcp-
connections-to-docker-host-running-ubuntu-15-04/を参照してください。
DockerホストにホストにNetScaler CPXをインストールするにはをインストールするには
DockerホストにNetScaler CPXをインストールするには、次のタスクを実行します。
タスクタスク 参照先ドキュメント参照先ドキュメント
NetScaler CPXイメージをDockerイメージファイルからロードするか、NetScaler CPXイメージ
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.20https://docs.citrix.com
1. NetScaler CPXイ
メージを取得しま
す。
ファイルをDockerfileからビルドする必要があります。
Dockerイメージファイルを使用してNetScaler CPXイメージをロードするには、「Dockerイ
メージファイルを使用したNetScaler CPXイメージのロード」を参照してください。
Dockerfileを使用してNetScaler CPXイメージをビルドするには、「Dockerfileを使用した
NetScaler CPXイメージのビルド」を参照してください。
2. NetScaler CPXイ
ンスタンスを展開し
ます。
NetScaler CPXインスタンスの展開には、Linux Shell、Docker Composeツール、または
NetScaler MASを使用できます。
Linux Shellを使用してNetScaler CPXインスタンスを展開するには、「Linux Shellを使用した
NetScaler CPXインスタンスの展開」を参照してください。
Docker Composeツールを使用してNetScaler CPXインスタンスを展開するには、「Docker
Composeを使用したNetScaler CPXインスタンスの展開」を参照してください。
NetScaler MASを使用してNetScaler CPXインスタンスを展開するには、「NetScaler
Management and Analytics Systemを使用したNetScaler CPXインスタンスの展開」を参照し
てください。
NetScaler CPXイメージファイルの取得
NetScaler CPXイメージをDockerイメージファイルからロードするか、NetScaler CPXイメージファイルをDockerfileからビ
ルドする必要があります。
Dockerイメージファイルを使用したNetScaler CPXイメージのロード
NetScaler CPXのDockerイメージファイルをhttp://downloadns.citrix.com.edgesuite.net/12132/cpx-11.1-48.10.gzからダウン
ロードし、NetScaler CPXのDockerイメージをロードします。そのためには、Dockerイメージファイルを保存したディレク
トリに移動して、次のコマンドを実行します。
docker load -i cpx-11.1-48.10.gz
NetScaler CPX Dockerイメージのインストール後に次のコマンドを使用すると、イメージの詳細を表示できます。
docker images
次に例を示します。
-command コピー
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.21https://docs.citrix.com
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
cpx 11.1-48.10 2e97aadf918b 43 hours ago 605.5 MB
この例の出力にある、次のフィールドに注意します。
REPOSITORY: イメージが格納されている名前空間を指定します。
TAG: インストールされているNetScaler CPXイメージのバージョンを示します。
IMAGE ID: Dockerホストに含まれるイメージの一意のIDを示します。
Dockerfileを使用したNetScaler CPX Imageのビルド
Citrix代理店からNetScaler CPX Dockerfileを入手し、Linux Ubuntuシステムにコピーします。
Dockerfileを使用してを使用してNetScaler CPXイメージをビルドするにはイメージをビルドするには
1. NetScaler CPX Dockerfileの内容を抽出します。 これを行うには、イメージファイルを保存したディレクトリに移動し
て、次のコマンドを実行します。
tar –xvzf <image_file_name>
root@ubuntu:~# cd /var/cpx-build
root@ubuntu:/var/cpx-build# ls
cpx.tar.gz
root@ubuntu:/var/cpx-build# tar –xvzf cpx.tar.gz
2. NetScaler CPX Dockerイメージを作成します。 イメージファイルを抽出したディレクトリに移動して、次のコマンドを実
行します。
例 コピー
-command コピー
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.22https://docs.citrix.com
make
root@ubuntu:/var/cpx-build# cd cpx
root@ubuntu:/var/cpx-build/cpx# ls
Dockerfile Makefile netscaler.tar.gz
root@ubuntu:/var/cpx-build/cpx# make
3. NetScaler CPX Dockerイメージの作成後に次のコマンドを実行すると、イメージ詳細を表示できます。
docker images
root@ubuntu:~# docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
cpx 11.1-48.10 2e97aadf918b 43 hours ago 605.5 MB
この例の出力にある、次のフィールドに注意します。
REPOSITORY: イメージが格納されている名前空間を指定します。
TAG: インストールされているNetScaler CPXイメージのバージョンを示します。
IMAGE ID: Dockerホストに含まれるイメージの一意のIDを示します。
NetScaler CPXインスタンスの展開
NetScaler CPXイメージを入手したら、Linux Shell、Docker Composeツール、またはNetScaler Management and Analytics
-command コピー
例 コピー
-command コピー
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.23https://docs.citrix.com
System(MAS)を使用して、NetScaler CPXインスタンスを展開できます。
Linux Shellを使用したNetScaler CPXインスタンスの展開
Linux Shellを使用して、NetScaler CPXイメージを保存したディレクトリに移動し、次に、docker runコマンドを使用して
NetScaler CPXインスタンスを展開します。外部通信を可能にするには、HTTPポート80、SSHポート22、およびSNMPポー
ト161を開く必要があります。
docker run -dt -p <port number> --ulimit core=-1 --privileged=true –e <REPOSITORY>:<TAG>
docker run -dt -p 22 -p 80 -p 161/udp --ulimit core=-1 --privileged=true -e EULA=yes cpx:11.1-48.10
docker psコマンドを使用すると、システムで実行されているイメージと、標準ポートにマップされたポートを表示できます。
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
6fe01203e7b9 cpx:11.1-48.10 "/bin/sh -c 'bash -C " 7 seconds ago Up 5 seconds 443/tcp, 0.0.0.0:32769->22/tcp, 0.0.0.0:32768->80/tcp, 0.0.0.0:32768->161/udp lonely_knuth
Docker Composeを使用したNetScaler CPXインスタンスの展開
Docker Composeツールを使用して、単一または複数のNetScaler CPXインスタンスをプロビジョニングできます。
Composeを使用してNetScaler CPXインスタンスをプロビジョニングするには、最初にComposeファイルを作成して、
NetScaler CPXイメージ、NetScaler CPXインスタンス用に開くポート、およびNetScaler CPXインスタンスの特権を指定す
る必要があります。
複数の複数のNetScaler CPXインスタンスをプロビジョニングするにはインスタンスをプロビジョニングするには
1. Composeファイルを作成します。 Composeファイルは、一般的に次のような形式に従います。
-command コピー
例 コピー
例 コピー
Composeファイル コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.24https://docs.citrix.com
<service-name>:
image: <repository>:<tag>
ports:
- 22
- 80
- 161/udp
- 36001-36010
tty: true
privileged: true
各オプションの意味は次のとおりです。
<service-name>は、プロビジョニングするサービスの名前です。image:<repository>:<tag>は、NetScaler CPXイメージのリポジトリとバージョンを示します。
privileged: trueは、NetScaler CPXインスタンスのすべてのroot特権を提供します。
サンプル:Composeファイル コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.25https://docs.citrix.com
cpxlb:
image: cpx:11.1-48.10
ports:
- 22
- 80
- 161/udp
- 36001-36010
tty: true
privileged: true
注意単一のNetScaler CPXインスタンスをプロビジョニングする場合は、次の行をComposeファイルに追加する必要があります。
container_name:<name_of_container>
2. 複数のNetScaler CPXインスタンスをプロビジョニングするための、次のコマンドを実行します。
docker-compose -f <compose_file_name> scale <service-name>=<number of instances> up –d
-command コピー
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.26https://docs.citrix.com
docker-compose -f docker-compose.yml scale cpxlb=3 up –d
注意単一のNetScaler CPXインスタンスをプロビジョニングする場合は、次のコマンドを実行します。
docker-compose -f <compose_file_name> up –d
NetScaler Management and Analytics Systemを使用したNetScaler CPXインスタンスのインストール
NetScaler CPXのインストールを開始する前に、NetScaler MASサーバーをCitrix XenServerにインストールする必要がありま
す。 NetScaler MASのイメージファイルをローカルシステムにダウンロードして、インストールを開始します。
NetScaler Management and Analytics Systemのインストール
1. イメージファイルをXenServerにインポートし、[Console]タブから、次の図に示すように初期ネットワーク構成オプ
ションを構成します。
2. 必要なIPアドレスを指定したら、展開の種類としてNetScaler MASサーバーを選択します。 オプションを選択しないと、
デフォルトで、サーバーとして展開されます。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.27https://docs.citrix.com
サーバーインストールの完了後に、ブラウザーのアドレスバーにNetScaler MASサーバーのIPアドレスを入力すると、グラ
フィカルユーザーインターフェイス(GUI)にアクセスできます。 サーバーにログオンするためのデフォルトの管理者資格
情報はnsroot/nsrootです。
NetScaler CPXインスタンスのインストール
NetScaler CPXイメージファイルをシステムにダウンロードしたことを確認します。 NetScaler CPXインスタンスをプロビ
ジョニングするときに、このファイルはNetScaler MASサーバーにアップロードされます。 また、このイメージファイルを
NetScaler MASサーバーの/var/mps/docker_nscpx_imagesディレクトリに手動でアップロードすることもできます。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.28https://docs.citrix.com
NetScaler MASを使用してを使用してDockerホストにホストにNetScaler CPXインスタンスをインストールするにはインスタンスをインストールするには
1. 管理者資格情報を使用して、NetScaler MASサーバーGUIにログオンします。 デフォルトの管理者資格情報は、
nsroot/nsrootです。
2. [[ Infrastructure]]>[[ Instances]]>[[NetScaler CPX]]の順に選択し、次に[[Add Docker Host]]をクリックします。
3. [[Add Docker Host]]ページで、Linux DockerホストのIPアドレス、Dockerホストのルートユーザー資格情報、およびリ
モートAPIポート(4243)を指定して、[[Continue]]をクリックします。
4. [[Add NetScaler CPX]]でイメージファイルを参照して選択します。 次に、外部通信を可能にするために公開されている
ポート範囲の開始ポート番号を指定します。 最後に、このインスタンスに割り当てるポート数を指定します。 これらのポー
トは、標準ポート80、22、および161に追加されます。
次の図は、Dockerホストでプロビジョニングされている、NetScaler CPXインスタンスの詳細を示しています。 この図に含
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.29https://docs.citrix.com
まれるIPアドレスは、Dockerエンジンによって各インスタンスに明示的に割り当てられた単一のIPアドレスです。 このほか
に、各インスタンスに割り当てられたポート範囲と、NetScaler CPXインスタンスのSSH(22)、HTTP(80)、および
SNMP(161)の各ポートにマップされたポートも表示されています。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.30https://docs.citrix.com
NetScaler CPXの構成
Dec 15, 2016
NetScaler CPXインスタンスを構成するには、Linux DockerホストからCLIプロンプトにアクセスするか、NetScaler Nitro
APIを使用できます。
このドキュメントは、次のセクションで構成されています。
コマンドラインインターフェイスを使用したNetScaler CPXインスタンスの構成
Nitro APIを使用したNetScaler CPXインスタンスの構成
ジョブを使用したNetScaler CPXインスタンスの構成
NetScaler CPXインスタンスのログストリーム配信の構成
コマンドラインインターフェイスを使用したNetScaler CPXインスタンスの構成
Dockerホストにアクセスし、次の図に示すように、インスタンスのSSHプロンプトにログオンします。 NetScaler CPXイン
スタンスへのログオンに使用する、デフォルトの管理者資格情報はroot/linuxです。
次のコマンドを入力して、インスタンスのコマンドラインプロンプトでCLIコマンドを実行します。cli_script .sh "
<command>"
例例:
インスタンスのプロンプトからログアウトするには、「log out」と入力します。
Nitro APIを使用したNetScaler CPXインスタンスの構成
NetScaler Nitro APIを使用してNetScaler CPXインスタンスを構成できます。
Nitro APIを使用してを使用してNetScaler CPXインスタンスを構成するには(インスタンスを構成するには(Webブラウザーで次のように入力)ブラウザーで次のように入力)
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.31https://docs.citrix.com
#http://<host_IP_address>:<port>/nitro/v1/config/<resource-type>
Nitro APIを使用して統計情報を取得するには(を使用して統計情報を取得するには(Webブラウザーで次のように入力)ブラウザーで次のように入力)
#http://<host_IP_address>:<port>/nitro/v1/stat/<resource-type>
Nitro APIの使用について詳しくは、「REST Webサービス(REST Web Services)」を参照してください。 NetScaler CPXの
場合は、「netscaler-ip-address」の記述があるところでは<CPX IP address:port>を使用します。
ジョブを使用したNetScaler CPXインスタンスの構成
NetScaler MASで作成したジョブを実行して、NetScaler CPXインスタンスを構成できます。 構成テンプレートの構成を使
用する、ほかのデバイスで利用可能な構成を抽出する、テキストファイルに保存された構成を使用するなどの方法がありま
す。 また、別のインスタンスで構成ユーティリティを使用して行われた構成を記録することもできます。 ジョブの実行後、
NetScaler MASには、NetScaler CPXインスタンスで使用する対応するCLIコマンドが表示されます。 構成を選択したら、そ
の構成をロードし、変数値を指定してジョブを実行するNetScaler CPXインスタンスを選択する必要があります。
ジョブを使用してジョブを使用してNetScaler CPXインスタンスを構成するにはインスタンスを構成するには
1. 管理者資格情報を使用して、NetScaler MASにログオンします。
2. [[ Infrastructure]]>[[Configuration Jobs]]の順に選択し、[[Create Job]]をクリックします。
3. 必要な値を指定して、構成ソースを選択します。 実行するコマンドを入力することもできます。
4. 構成を実行するNetScaler CPXインスタンスを選択し、[[Next]]をクリックします。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.32https://docs.citrix.com
5. 実行設定を指定して[Finish]をクリックすると、NetScaler CPXインスタンスでコマンドが実行されます。 構成を保存し
て後で実行する場合は、[[Save and Exit]]をクリックします。
NetScaler CPXインスタンスのログストリーム配信の構成
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.33https://docs.citrix.com
NetScaler CPXインスタンスのログストリーム配信を構成して、アプリケーションパフォーマンスの監視と分析に必要な、
Webページのパフォーマンスデータ、フローとユーザーセッションレベルの情報、およびデータベース情報を収集できま
す。 これらのデータレコードはNetScaler MASに送信され、ここから全アプリケーションのリアルタイムレポートと履歴レ
ポートを表示できます。
NetScaler CPXインスタンスでログストリーム配信を構成するには、最初に、NetScaler CPXインスタンスでAppFlow機能と
ulfdデーモンを有効にする必要があります。 ulfdデーモンを有効にするときに、リアルタイムレポートと履歴レポートを監
視するNetScaler MASのIPアドレスを指定する必要があります。 次に、AppFlowコレクター、アクション、およびポリシー
を構成し、AppFlowポリシーをグローバルにバインドする必要があります。
ulfdデーモンからNetScaler MASに送信されるフローレコードは、すべて単一のログ形式に統一されています。
ログストリーム配信の構成には、NetScaler CPXインスタンスのコマンドラインインターフェイスまたはNetScaler MASの
ジョブ機能のいずれかを使用できます。
レコードを監視できるようにするには、NetScaler CPXインスタンスをNetScaler MASに追加する必要があります。
NetScaler CPXインスタンスのNetScaler MASへの追加について詳しくは、「NetScaler Management and Analytics System
を使用したNetScaler CPXインスタンスのインストール」を参照してください。
NetScaler CPXインスタンスのログストリーム配信を構成するにはインスタンスのログストリーム配信を構成するには
1. 次のコマンドを実行して、AppFlow機能を有効にします。
enable ns feature AppFlow
2. 次のコマンドを実行して、ulfdデーモンを有効にします。
set ns param -ulfd ENABLED -loggerip <NUMS_IP_Address>
3. 次のコマンドを実行して、AppFlowコレクター、アクション、およびポリシーを構成し、そのポリシーをグローバルにバ
インドします。
Code コピー
-command コピー
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.34https://docs.citrix.com
add appflow collector <name> -IPAddress <ipaddress>
set appflow param -templateRefresh 3600 -httpUrl ENABLED -httpCookie ENABLED -httpReferer ENABLED -httpMethod ENABLED -httpHost ENABLED -httpUserAgent ENABLED -httpContentType ENABLED -httpAuthorizat ion ENABLED -httpVia ENABLED -httpXForwardedFor ENABLED -httpLocation ENABLED -httpSetCookie ENABLED -httpSetCookie2 ENABLED -connectionChaining ENABLED -httpDomain Enabled
add appflow action <name> --collectors <string> ... [-clientSideMeasurements (Enabled|Disabled) ]
add appflow policy <name> true <action>
bind appflow global <policyName> <priority> [<gotoPriorityExpression [-type <type>]
注意ダミーのIPアドレスを使用してAppFlowコレクターを構成する必要があります。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.35https://docs.citrix.com
NetScaler CPXインスタンスのアップグレードまたはダウングレード
Dec 15, 2016
NetScaler CPXイメージファイルには、スクリプトファイルcpxupgradeが付属しています。このスクリプトファイルを使用すると、NetScalerインスタンスを新しいバージョンにアップグレードしたり、以前のバージョンにダウングレードしたりで
きます。 「DockerホストでのNetScaler CPXのインストール」で説明した方法で、REPOSITORY:TAGを使用してNetScaler
CPXインスタンスを展開した場合は、このスクリプトによってNetScaler CPXインスタンスの現在のバージョンが自動的に識
別され、NetScaler CPXイメージファイルのバージョンにアップグレードするかダウングレードするかが決定されます。
アップグレードまたはダウングレードのプロセスでは、NetScalerインスタンスがアップグレードまたはダウングレードされ
るときに、次のものがスクリプトによってバックアップおよびリストアされます。
ログ
コア
デバイス証明書
Ulimitパラメーター
異なるポートのマッピング
注注:NetScaler CPXインスタンスのプロビジョニング中に、
ホストポートを指定した場合は、アップグレード後にそのポートが保持されます。
ホストポートがDockerコンテナーによって定義されていた場合は、アップグレード後に、ホストポートは改めてラン
ダムに生成され、Dockerコンテナーによって割り当てられます。
マウントポイント(ある場合)
環境変数(ある場合)
NetScaler構成(以前のバージョンを含む)
ネットワークモード(ブリッジ/なし/ホスト)
前提条件
Citrix代理店からNetScaler CPX 11.1イメージファイルを入手し、Linux Ubuntuシステムにコピーしたことを確認します。
NetScalerインスタンスをアップグレードまたはダウングレードするにはインスタンスをアップグレードまたはダウングレードするには
1. 次のコマンドを実行して、既存のNetScaler CPX Dockerイメージの詳細を表示します。
docker images
-command コピー
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.36https://docs.citrix.com
REPOSITORY TAG IMAGE ID CREATED SIZE
cpx 11.1.44.4 51909962a1 30 hours ago 577.9 MB
この例の出力にある、次のフィールドに注意します。
- REPOSITORY: イメージが格納されている名前空間を指定します。
- TAG: インストールされているNetScaler CPXイメージのバージョンを示します。
- IMAGE ID: Dockerホストに含まれるイメージの一意のIDを示します。
2. NetScaler CPXイメージファイルの内容を抽出します。 これを行うには、イメージファイルを保存したディレクトリに移
動して、次のコマンドを実行します。
tar –xvzf <image_file_name>
3. イメージファイルを抽出したディレクトリに移動して、次のコマンドを実行します。
./cpxupgrade <CPX_instance> <REPOSITORY>:<TAG>
-command コピー
-command コピー
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.37https://docs.citrix.com
root@ubuntu:/var/cpx-build/cpx# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
cpx 11.1.44.4 255190996 30 hours ago 577.9 MB
root@ubuntu:/var/cpx-build/cpx # docker ps | grep testcpx fb8c68d96fae cpx:11.1.40.1 "/bin/sh -c 'bash -C " About a minute ago Up About a minute 80/tcp, 0.0.0.0:3322->22/tcp, 0.0.0.0:3161->161/udp, 0.0.0.0:3443->443/tcp testcpx
root@ubuntu:/var/cpx-build/cpx#./cpxupgrade testcpx cpx:11.1.44.4 Upgrading testcpx to cpx:11.1.44.4 Current cpx version is 11.1.40.1 Upgrade is needed from cpx:11.1.40.1 to cpx:11.1.44.4
………………………..
………………………….
###################### Report ################################
CPX[testcpx]is upgraded and ready for use. CPX new id is fb8c68d96fae39670a10ccb7b28d19b481e60468d5ff10d01cbe189110bb6573
For most cases, new CPX id can be referred by fb8c68d96fae
###############################################################
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.38https://docs.citrix.com
NetScaler CPXインスタンスでのワイルドカード仮想サーバーの使用
Dec 15, 2016
NetScalerインスタンスのプロビジョニング時に、Dockerエンジンによって、1つのプライベートIPアドレス(単一IPアドレ
ス)のみがNetScaler CPXインスタンスに割り当てられます。 NetScalerインスタンスの3つのIP機能が1つのIPアドレス上で
多重化されます。 この単一IPアドレスは、異なるポート番号を使用して、NSIP、SNIP、およびVIPとして機能します。
Dockerエンジンによって割り当てられる単一IPアドレスは動的で、この単一IPアドレスまたは127.0.0.1 IPアドレスを使用し
て負荷分散(LB)またはコンテンツスイッチ(CS)の仮想サーバーを追加できます。 127.0.0.1を使用して作成される仮想
サーバーは、ワイルドカード仮想サーバーと呼ばれます。 デフォルトでは、ワイルドカード仮想サーバーの作成時に、ワイ
ルドカード仮想サーバーに割り当てられたIPアドレス127.0.0.1が、DockerエンジンによってNetScaler CPXインスタンスに
割り当てられたNSIPに置き換えられます。
高可用性のNetScaler CPX展開では、NetScaler CPXインスタンスの1つにワイルドカード仮想サーバーを追加し、そのイン
スタンスのns.confファイルを、展開の別のNetScaler CPXインスタンスにコピーできます。これにより、展開内のすべての
NetScaler CPXインスタンスで同じNetScaler構成が使用されるので、DockerエンジンがNetScalerインスタンスに割り当て
た単一IPアドレスを識別し、その単一IPアドレスに基づいて、展開内のすべてのNetScaler CPXインスタンスにLBまたはCS
の仮想サーバーを作成する必要がなくなります。
注意事項注意事項
ワイルドカード仮想サーバーに割り当てるポート番号が、展開内の他の仮想サーバーで使用されていないことを確認しま
す。
*(アスタリスク)文字は、ワイルドカード仮想サーバーではサポートされません。
負荷分散のワイルドカード仮想サーバーを作成するには、コマンドプロンプトで次のコマンドを入力します。
add lb vserver <name> <serviceType> 127.0.0.1 <port>
add lb vserver test lbvserver HTTP 127.0.0.1 30000
コンテンツスイッチのワイルドカード仮想サーバーを作成するには、コマンドプロンプトで次のコマンドを入力します。
-command コピー
例 コピー
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.39https://docs.citrix.com
add cs vserver <name> <serviceType> 127.0.0.1 <port>
add cs vserver testcsvserver HTTP 127.0.0.1 30000
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.40https://docs.citrix.com
East-Westトラフィックフローを可能にするためのNetScaler CPXのプロキシとしての展開
Dec 15, 2016
この展開では、NetScaler CPXインスタンスは、複数のホスト上にあるアプリケーションコンテナー間の通信を可能にする
ためのプロキシとして機能します。 マルチホストでアプリケーションと一緒にプロビジョニングされたNetScaler CPXイン
スタンスが、通信の最短パスを提供します。
次の図は、NetScaler CPXインスタンスを介した2つのアプリケーション間のトラフィックフローを示します。
この図は、アプリケーションCとアプリケーションB間のトラフィックフローと、アプリケーションAとアプリケーションB間
のトラフィックフローを示しています。 いずれかのホスト上のアプリケーションCがBに要求を送信した場合、アプリケー
ションCと同じホスト上にあるNetScaler CPXコンテナーが、この要求を最初に受信します。 次に、NetScaler CPXコンテ
ナーは、アプリケーションBと同じホスト上のNetScaler CPXコンテナーにトラフィックを渡し、そのトラフィックがアプリ
ケーションBに転送されます。 アプリケーションAがアプリケーションBに要求を送信する場合も、同様のパスになります。
この例では、グローバルVIPを介したインターネットからアプリケーションへのトラフィックを許可するため、NetScaler
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.41https://docs.citrix.com
MPXも展開されています。 NetScaler MPXからのトラフィックをNetScaler CPXコンテナーが受信し、そこからアプリケー
ションコンテナーにトラフィックが分散されます。
次の図は、このトポロジと、通信を可能にするために設定が必要な構成を示しています。
次の表は、この構成例のNetScaler CPXインスタンスに構成されている、IPアドレスとポートの一覧です。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.42https://docs.citrix.com
このシナリオ例を構成するには、3つのDockerホストすべてでNetScaler CPXコンテナーを作成する間に、Linux Shellプロン
プトで次のコマンドを実行します。
docker run -dt -p 22 -p 80 -p 161/udp -p 30000-30002: 30000-30002 --ulimit core=-1 --privileged=truecpx:6.2
NetScaler MASのジョブ機能を使用するか、Nitro APIを使用して、次のコマンドを実行します。
Dockerホスト1のNetScaler CPXインスタンスで実行:
構成例:すべてのDockerホストで実行 コピー
構成例:Dockerホスト1で実行 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.43https://docs.citrix.com
add lb vserver VIP-A1 HTTP 172.17.0.2 30000
add service svc-A1 10.102.29.100 HTTP 80
bind lb vserver VIP-A1 svc-A1
add lb vserver VIP-B1 HTTP 172.17.0.2 30001
add service svc-B1 10.102.29.100 HTTP 90
bind lb vserver VIP-B1 svc-B1
add lb vserver VIP-C1 HTTP 172.17.0.2 30002
add service svc-VIP-C2 10.102.29.105 HTTP 30002
add service svc-VIP-C3 10.102.29.110 HTTP 30002
bind lb vserver VIP-C1 svc-VIP-C2
bind lb vserver VIP-C1 svc-VIP-C3
Dockerホスト2のNetScaler CPXインスタンスで実行:
構成例:Dockerホスト2で実行 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.44https://docs.citrix.com
add lb vserver VIP-A2 HTTP 172.17.0.3 30000
add service svc-A2 10.102.29.105 HTTP 80
bind lb vserver VIP-A2 svc-A2
add lb vserver VIP-B2 HTTP 172.17.0.3 30001
add service svc-VIP-B1 10.102.29.100 HTTP 30001
bind lb vserver VIP-B2 svc-VIP-B1
add lb vserver VIP-C2 HTTP 172.17.0.3 30002
add service svc-C2 10.102.29.105 HTTP 70
bind lb vserver VIP-C2 svc-C2
Dockerホスト3のNetScaler CPXインスタンスで実行:
構成例:Dockerホスト3で実行 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.45https://docs.citrix.com
add lb vserver VIP-A3 HTTP 172.17.0.4 30000
add service svc-VIP-A1 10.102.29.100 HTTP 30000
add service svc-VIP-A2 10.102.29.105 HTTP 30000
bind lb vserver VIP-A3 svc-VIP-A1
bind lb vserver VIP-A3 svc-VIP-A2
add lb vserver VIP-B3 HTTP 172.17.0.4 30001
add service svc-VIP-B1 10.102.29.100 HTTP 30001
bind lb vserver VIP-B3 svc-VIP-B1
add lb vserver VIP-C3 HTTP 172.17.0.4 30002
add service svc-C3 10.102.29.110 HTTP 70
bind lb vserver VIP-C3 svc-C3
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.46https://docs.citrix.com
単一ホストネットワークでのNetScaler CPXの展開
Dec 15, 2016
単一ホストネットワークでは、NetScaler CPXインスタンスは、同一ホストにある複数のアプリケーションコンテナー間の
プロキシとして機能します。 NetScaler CPXインスタンスのこの機能により、コンテナーベースのアプリケーションのス
ケーラビリティとセキュリティが強化されます。 このほかにも、パフォーマンスの最適化や、利用統計情報の理解を深める
ためにも役立ちます。
単一ホストネットワークでは、クライアント、サーバー、およびNetScaler CPXインスタンスが、同じDockerホストのコン
テナーとして展開されます。 コンテナーはすべてdocker0ブリッジで接続されます。
この環境で、NetScaler CPXインスタンスは、同一のDockerホストでコンテナーとしてプロビジョニングされているアプリ
ケーションのプロキシとして機能します。
次の図は、単一ホストトポロジを示しています。
この例では、Webアプリケーションコンテナー(172.17.0.2)がクライアントで、DB1(172.17.0.10)とDB2(172.17.0.11)
の2つのデータベースコンテナーがサーバーです。 プロキシとして機能するNetScaler CPXコンテナー(172.17.0.4)が、ク
ライアントとサーバーの間に配置されています。
WebアプリケーションがNetScaler CPXを介してデータベースコンテナーと通信できるようにするには、最初に、NetScaler
CPXコンテナーで、2台のサーバーを表す2つのサービスを構成する必要があります。 次に、NetScaler CPXのIPアドレスと
標準以外のHTTPポート(81など)を使用して仮想サーバーを構成します。標準以外のポートを使用するのは、NetScaler
CPXで、標準HTTPポート80がNitroとの通信用に予約されているためです。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.47https://docs.citrix.com
このトポロジでは、クライアントとサーバーが同じネットワークにあるため、NAT規則を構成する必要はありません。
このシナリオを構成するには、NetScaler MASのジョブ機能を使用するか、Nitro APIを使用して、次のコマンドを実行しま
す。
add service db1 HTTP 172.17.0.10 80
add service db2 HTTP 172.17.0.11 80
add lb vserver cpx-vip HTTP 172.17.0.4 81
bind lb vserver cpx-vip db1
bind lb vserver cpx-vip db2
サンプルコマンド:単一ホストトポロジ コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.48https://docs.citrix.com
マルチホストネットワークでのNetScaler CPXの展開
Dec 15, 2016
データセンター内の実稼働環境では、マルチホストネットワークに展開したNetScaler CPXインスタンスを構成して、負荷
分散機能を使用できます。 さらに、機能や分析データを監視することもできます。
マルチホストネットワークでは、NetScaler CPXインスタンス、バックエンドサーバー、およびクライアントは、別々のホ
ストに展開されます。 マルチホストのトポロジを実稼働環境で使用することで、NetScaler CPXインスタンスが一連のコン
テナーベースのアプリケーション、サーバー、さらには物理サーバーの負荷を分散します。
ここでは、次の3つのマルチホストトポロジについて説明します。
トポロジ1:NetScaler CPXとサーバーが同一ホスト、クライアントが別のネットワークにある場合
トポロジ2:NetScaler CPXと物理サーバー/クライアントが別々に配置されている場合
トポロジ3:NetScaler CPXとサーバーが別々のホストでプロビジョニングされている場合
トポロジ1:NetScaler CPXとバックエンドサーバーが同一ホスト、クライアントが別のネットワークにある場合
このトポロジでは、NetScaler CPXインスタンスとデータベースサーバーは同じDockerホストでプロビジョニングされます
が、クライアントトラフィックはネットワークの別の場所から発信されます。 このトポロジを実稼働環境で使用して、
NetScaler CPXインスタンスが一連のコンテナーベースのアプリケーションやサーバーの負荷を分散するようにできます。
次の図は、このトポロジを示しています。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.49https://docs.citrix.com
この例では、NetScaler CPXインスタンス(172.17.0.4)と2台のサーバー(DB1(172.17.0.10)およびDB2(172.17.0.11))
は、IPアドレス10.102.29.100の同じDockerホストでプロビジョニングされています。 クライアントは、ネットワークの他の
場所にあります。
インターネットからのクライアント要求は、NetScaler CPXインスタンスに構成されているVIPで受信されます。そこから、
要求が2台のサーバーに分散されます。
このトポロジを構成するには、次の2つの方法があります。
追加IPアドレスとVIPの標準ポートの使用
1. NetScaler CPX IPアドレスの代わりに追加のIPアドレスを使用して、VIPをNetScaler CPXコンテナーに構成します。 これ
により、クライアント要求の受信に、コンテナーの標準ポート80を使用できるようになります。
2. Dockerホストに追加のIPアドレスを構成します。
3. Dockerホストの追加IPアドレスで受信したすべてのトラフィックをVIPの追加IPアドレスに転送する、NAT規則を構成し
ます。
4. 2台のサーバーをNetScaler CPXインスタンスのサービスとして構成します。
5. 最後に、これらのサービスをVIPにバインドします。
この構成例では、10.x.x.xネットワークはパブリックネットワークを表していることに注意してください。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.50https://docs.citrix.com
このシナリオ例を構成するには、NetScaler MASのジョブ機能かNitro APIを使用して、次のコマンドを実行します。
add service s1 172.17.0.10 HTTP 80
add service s2 172.17.0.11 HTTP 80
add lb vserver cpx-vip HTTP 172.17.4.100 80
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
Linux Shellプロンプトで次のコマンドを実行して、Dockerホストの追加のパブリックIPアドレスとNAT規則を構成します。
ip addr add 10.102.29.103/24 dev eth0
iptables -t nat -A PREROUTING -p ip -d 10.102.29.103 -j DNAT --to-destination 172.17.4.100
VIP用のNetScaler CPX IPアドレスの使用とポートマッピングの構成
1. VIPと2つのサービスをNetScaler CPXインスタンスに構成します。 このVIPでは、標準以外のポート(81)を使用しま
す。
2. サービスをVIPにバインドします。
3. Dockerホストのポート50000で受信したすべてのトラフィックを、VIPとポート81に転送するNAT規則を構成します。
このシナリオ例を構成するには、3つのDockerホストすべてでNetScaler CPXコンテナーを作成する間に、Linux Shellプロン
プトで次のコマンドを実行します。
docker run -dt -p 22 -p 80 -p 161/udp -p 50000:81 --ulimit core=-1 --privileged=true cpx:6.2
NetScaler CPXインスタンスがプロビジョニングされたら、NetScaler MASのジョブ機能かNitro APIを使用して、次のコマン
構成例:追加IPアドレスとVIPの標準ポートの使用 コピー
構成例:追加IPアドレスとVIPの標準ポートの使用 コピー
構成例:NetScaler CPX IPアドレスとポートマッピングの使用 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.51https://docs.citrix.com
ドを実行します。
add service s1 172.17.0.10 http 80
add service s2 172.17.0.11 http 80
add lb vserver cpx-vip HTTP 172.17.0.4 81
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
注意NetScaler CPXインスタンスのプロビジョニング中にポートマッピングを構成しなかった場合は、Linux Shellプロンプトで次のコマ
ンドを実行してNAT規則を構成します。
iptables -t nat -A PREROUTING -p tcp -m addrtype --dst-type LOCAL -m tcp --dport 50000 -j DNAT --to-destination
172.17.0.4:81
トポロジ2:NetScaler CPXと物理サーバー/クライアントが別々に配置されている場合
このトポロジでは、NetScaler CPXインスタンスのみがDockerホストでプロビジョニングされます。 クライアントとサー
バーはコンテナーベースではなく、ネットワークの別の場所にあります。
この環境では、物理サーバーのトラフィックを負荷分散するように、NetScaler CPXインスタンスを構成できます。
次の図は、このトポロジを示しています。
構成例:NetScaler CPX IPアドレスとポートマッピングの使用 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.52https://docs.citrix.com
この例では、プロキシとして機能するNetScaler CPXコンテナー(172.17.0.4)が、クライアントと物理サーバーの間に配置
されます。 DB1(10.102.29.105)とDB2(10.102.29.110)の2台のサーバーは、ネットワーク上のDockerホスト以外の場所
にあります。 インターネットからのクライアント要求は、NetScaler CPXインスタンスで受信されます。そこから、要求が2
台のサーバーに分散されます。
NetScaler CPXを介したこのクライアントとサーバー間の通信を可能にするには、最初に、NetScaler CPXコンテナーの作成
中にポートマッピングを構成する必要があります。 次に、NetScaler CPXコンテナーに、2台のサーバーを表す2つのサービ
スを構成します。 最後に、NetScaler CPX IPアドレスと、マッピングされた非標準HTTPポート8080を使用して、仮想サー
バーを構成します。
この構成例では、10.x.x.xネットワークはパブリックネットワークを表していることに注意してください。
このシナリオ例を構成するには、NetScaler CPXコンテナーを作成する間に、Linux Shellプロンプトで次のコマンドを実行し
ます。
構成例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.53https://docs.citrix.com
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
次に、NetScaler MASのジョブ機能を使用するか、Nitro APIを使用して、次のコマンドを実行します。
add service s1 HTTP 10.102.29.105 80
add service s2 HTTP 10.102.29.110 80
add lb vserver cpx-vip HTTP 172.17.0.4 8080
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
トポロジ3:NetScaler CPXとサーバーが別々のホストでプロビジョニングされている場合
このトポロジでは、NetScaler CPXインスタンスとデータベースサーバーは別々のDockerホストでプロビジョニングされ、
クライアントトラフィックはインターネットから発信されます。 このトポロジを実稼働環境で使用して、NetScaler CPXイ
ンスタンスが一連のコンテナーベースのアプリケーションやサーバーの負荷を分散するようにできます。
次の図は、このトポロジを示しています。
構成例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.54https://docs.citrix.com
この例で、NetScaler CPXインスタンスと1台のサーバー(DB1)は、IPアドレス10.102.29.100の同じDockerホストでプロビ
ジョニングされています。 その他4台のサーバー(DB2、DB3、DB4、およびDB5)は、2つの異なるDockerホスト
(10.102.29.105および10.102.29.110)でプロビジョニングされています。
インターネットからのクライアント要求はNetScaler CPXインスタンスで受信され、そこから、要求が5台のサーバーに分散
されます。 この通信を有効にするには、次のように構成する必要があります。
1. NetScaler CPXコンテナーの作成中にポートマッピングを設定します。 この例では、トラフィックをコンテナーのポート
8080からホストのポート8080に転送する必要があります。 クライアント要求がホストのポート8080に到達すると、CPX
コンテナーのポート8080にマッピングされます。
2. 5台のサーバーをNetScaler CPXインスタンスのサービスとして構成します。 これらのサービスを設定するには、該当す
るDockerホストのIPアドレスとマッピングされたポートの組み合わせを使用する必要があります。
3. クライアント要求を受け取るNetScaler CPXインスタンスのVIPを構成します。 このVIPは、NetScaler CPXのIPアドレス
と、ホストのポート8080にマッピングされたポート8080で表します。
4. 最後に、これらのサービスをVIPにバインドします。
この構成例では、10.x.x.xネットワークはパブリックネットワークを表していることに注意してください。
このシナリオ例を構成するには、NetScaler CPXコンテナーを作成する間に、Linux Shellプロンプトで次のコマンドを実行し
ます。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.55https://docs.citrix.com
docker run -dt -p 22 -p 80 -p 161/udp -p 8080:8080 --ulimit core=-1 --privileged=true cpx:6.2
NetScaler MASのジョブ機能を使用するか、Nitro APIを使用して、次のコマンドを実行します。
add service s1 10.102.29.100 HTTP 8081
add service s2 10.102.29.105 HTTP 8081
add service s3 10.102.29.105 HTTP 8082
add service s4 10.102.29.110 HTTP 8081
add service s5 10.102.29.110 HTTP 8082
add lb vserver cpx-vip HTTP 172.17.0.2 8080
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
bind lb vserver cpx-vip s3
bind lb vserver cpx-vip s4
bind lb vserver cpx-vip s5
構成例 コピー
構成例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.56https://docs.citrix.com
ネットワークへの直接アクセスが有効なNetScaler CPXの展開
Dec 15, 2016
ネットワークに直接アクセスできるように、NetScaler CPXインスタンスを構成できます。 このシナリオでは、受信トラ
フィックはNetScaler CPX VIPで直接受信されます。
この通信を有効にするには、まず、docker0ブリッジにパブリックIPアドレスを構成する必要があります。 次に、ネット
ワークポートeth0からパブリックIPアドレスを削除し、ネットワークポートをdocker0ブリッジにバインドします。
2つのサービスを追加して負荷分散を構成し、次にネットワークパブリックIPアドレスを、NetScaler CPXインスタンスの
VIPとして構成します。 クライアント要求は、VIPで直接受信されます。
この構成例では、10.x.x.xネットワークはパブリックネットワークを表していることに注意してください。
このシナリオを構成するには、Linux Shellプロンプトで次のコマンドを実行します。
ip addr add 10.102.29.100/24 dev docker0; \
ip addr del 10.102.29.100/24 dev eth0; \
brctl addif docker0 eth0; \
ip route del default; \
ip route add default via 10.102.29.1 dev docker0
NetScaler MASのジョブ機能を使用するか、Nitro APIを使用して、次のコマンドを実行します。
構成例 コピー
構成例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.57https://docs.citrix.com
add service s1 172.17.0.8 http 80
add service s2 172.17.0.9 http 80
add lb vserver cpx-vip HTTP 10.102.29.102 80
bind lb vserver cpx-vip s1
bind lb vserver cpx-vip s2
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.58https://docs.citrix.com
MesosおよびMarathon環境でのNetScaler CPXの展開
Dec 15, 2016
この展開では、MesosおよびMarathon環境を使用して、アプリケーションの起動や、スケールアップまたはスケールダウ
ンを行えます。 Mesosでは、分散アプリケーションまたはフレームワーク間のリソース分離およびリソース共有ができま
す。 Marathonは、アプリケーションの起動や、スケールアップまたはスケールダウンを行えるアプリケーションオーケス
トレーションフレームワークです。 MesosおよびMarathonについて詳しく
は、https://docs.mesosphere.com/gettingstarted/overview/を参照してください。
MesosおよびMarathon環境でNetScaler CPXを展開するには、次のタスクを完了する必要があります。
1. MesosおよびMarathonのマスター-スレーブクラスターをセットアップします。 各アプリケーションとNetScaler CPXイ
ンスタンスをUbuntuホスト上に構成し、これらのホストをMesosスレーブとして構成する必要があります。 1つの
UbuntuホストをMesosマスターとして構成し、Mesosマスター上にMarathonをインストールする必要があります。 詳し
くは、https://open.mesosphere.com/getting-started/install/を参照してください。
2. アプリケーションとNetScaler CPXインスタンスのイメージを、すべてのMesosスレーブに保存する必要があります。
3. その後、Marathon CLIまたはMarathon GUIを使用して、アプリケーションとNetScaler CPXインスタンスを起動できま
す。 Marathonでは、NetScaler CPXインスタンスはアプリケーションとして起動されることに注意してください。
Marathonでのアプリケーション実行について詳しくは、https://mesosphere.github.io/marathon/docs/application-
basics.htmlを参照してください。
次の図は、MesosおよびMarathon環境でのNetScaler CPXの展開を示しています。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.59https://docs.citrix.com
この例のUH1は、Mesosマスターとして構成されているUbuntuホストです。 UbuntuホストのUH2、UH3、およびUH4は
Mesosスレーブとして構成されています。 MarathonはMesosマスターにインストールされています。 App1とApp2は、
NetScaler CPXで負荷分散を行うアプリケーションです。 アプリケーションを起動するために、Mesosマスターは、Mesos
スレーブとその他のリソースをアプリケーションに割り当てます。次に、割り当てられたMesosスレーブ上でMarathonが
アプリケーションを起動します。 この例のCPX、App1、およびApp2は、それぞれUbuntuホストUH2、UH3、およびUH4で
起動されます。
Marathon CLIまたはMarathon GUIを使用して、アプリケーションとNetScaler CPXインスタンスを起動できます。
Marathon CLIを使用した、アプリケーションとNetScaler CPXの起動
アプリケーションまたはNetScaler CPXインスタンスを起動するには、JSONスクリプトを作成する必要があります。 JSONス
クリプトには、ID、インスタンス数、コンテナーの種類、アプリケーションイメージファイル名、ポートマッピング、ネッ
トワーク、ラベル、およびヘルスチェックの仕様などの詳細を含める必要があります。 JSONスクリプトを作成したら、
Mesosマスターで実行してアプリケーションとNetScaler CPXインスタンスを起動する必要があります。
アプリケーションとアプリケーションとNetScaler CPXインスタンスを起動するにはインスタンスを起動するには
1. 起動するアプリケーションとNetScaler CPXインスタンスそれぞれにJSONスクリプトを作成します。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.60https://docs.citrix.com
たとえば、アプリケーションを起動するには、次のサンプルスクリプトのようなJSONスクリプトを作成します。
{
"id": "web-backend",
"cpus": 0.1,
"mem": 100.0,
"instances": 2,
"container": {
"type": "DOCKER",
"docker": {
"image": "nginx_backend:latest",
"forcePullImage": false,
"network": "BRIDGE",
"portMappings": [
{ "containerPort": 80, "hostPort": 0, "servicePort": 20002, "protocol": "tcp" }
]
}
},
"labels": {
"NETSCALER_GROUP":"BACKEND"
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.61https://docs.citrix.com
},
"healthChecks": [
{
"protocol": "HTTP",
"port Index": 0,
"path": "/",
"gracePeriodSeconds": 5,
"intervalSeconds": 20,
"maxConsecutiveFailures": 3
}
]
}
注意アプリケーションの場合は、ラベルをNETSCALER_CPXに設定しないようにします。 アプリケーションのラベルパラメーターを
NETSCALER_CPXに設定すると、そのアプリケーションをNetScaler CPXインスタンスで構成できなくなります。
たとえば、NetScaler CPXインスタンスを起動するには、次のサンプルスクリプトにあるようにJSONスクリプトを作成し
ます。
{
"id": "cpx",
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.62https://docs.citrix.com
"cpus": 0.25,
"mem": 512,
"instances": 2,
"container": {
"type": "DOCKER",
"docker": {
"image": "cpx:10.5-53.535",
"network": "HOST",
"privileged": true,
"parameters": [
{ "key": "tty", "value": "true" },
{ "key": "env", "value": "NS_NETMODE=HOST" },
{ "key": "env", "value": "NETSCALER_GROUP=BACKEND" },
{ "key": "env", "value": "marathon_url=http://10.102.103.222:8080" }
]
}
},
"labels": {
"NETSCALER_AS_APP": "true"
}
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.63https://docs.citrix.com
}
注意MesosおよびMarathon環境では、ホストネットワークモードでのNetScaler CPXインスタンスの実行のみがサポートされます。 こ
のため、JSONスクリプトで、ネットワークパラメーターの値をHOSTに設定する必要があります。
2. Mesosマスターで次のコマンドを実行して、JSONスクリプトを実行します。
curl -X POST http://<Marathon_IP_Address>:<Marathon port>/v2/apps -d @<JSON_Script_Name>.json -H "Content-type: applicat ion/json"
または、次のdocker runコマンドでもNetScaler CPXインスタンスを起動できます。
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" --ulimit core=-1 -e marathon_url=“http://<Marathon_IP_Address>:<Marathon port>" cpx:7
Marathonで認証が必要な場合は、次のdocker runコマンドを使用できます。
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" --ulimit core=-1 marathon_url=“http://<Marathon_IP_Address>:<Marathon port>" –e marathon_user=abcd –e marathon_password=secret cpx:7
Marathon GUIを使用した、アプリケーションとNetScaler CPXの起動
Marathon GUIにアクセスするには、ブラウザーでMarathon IPアドレスとポートを入力します。 デフォルトでは、
Marathonポートは8080です。
-command コピー
-command コピー
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.64https://docs.citrix.com
アプリケーションとアプリケーションとNetScaler CPXインスタンスを起動するにはインスタンスを起動するには
1. Marathon GUIにログオンします。
2. [[Applications]]タブの左上ペインで、[[Create]]をクリックします。
3. [[New Application]]画面の[[Docker container settings]]、[[Environment variables]]、[[Labels]]、[[Healthchecks]]、および[[Optional settings]]の各セクションでパラメーターを指定します。
注意MesosおよびMarathon環境では、ホストネットワークモードでのNetScaler CPXインスタンスの実行のみがサポートされます。 こ
のため、NetScaler CPXインスタンスを起動する場合は、[Docker container settings]セクションの[Network]一覧で、[Host]
を選択します。
4. [[+ Create]]をクリックします。
5. 起動したアプリケーションが[[Applications]]に表示されます。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.65https://docs.citrix.com
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.66https://docs.citrix.com
NetScaler MASを使用したNetScaler CPXインスタンスとMesos、Marathon、InfoBlox、およびNuageの統合
Dec 15, 2016
ネットワーク管理者は、Marathonスケジューラを使用してMesosクラスターのアプリケーションを展開し、複数の
NetScaler CPXインスタンスをプロビジョニングして、アプリケーションへのトラフィックを負荷分散できます。 Nuage
VSPソリューションを使用して、展開に含まれる各アプリケーションとNetScaler CPXインスタンスへのネットワーク接続を
提供し、また、InfoBloxソリューションを使用して展開内にDNSサービスをセットアップできます。
NetScaler MASを使用すると、NetScaler CPXインスタンスおよびアプリケーションを管理および監視し、可視性を得ること
ができます。
この展開に対して、次のタスクを行います。
1. MesosおよびMarathonのマスター-スレーブクラスターをセットアップします。 各アプリケーションとNetScaler CPXイ
ンスタンスをUbuntuホスト上に構成し、これらのホストをMesosスレーブとして構成する必要があります。 1つの
UbuntuホストをMesosマスターとして構成し、Mesosマスター上にMarathonをインストールする必要があります。 詳し
くは、https://open.mesosphere.com/getting-started/install/を参照してください。
2. アプリケーションとNetScaler CPXインスタンスのイメージを、すべてのMesosスレーブに保存する必要があります。
3. その後、Marathon CLIまたはMarathon GUIを使用して、アプリケーションとNetScaler CPXインスタンスを起動できま
す。 Marathonでは、NetScaler CPXインスタンスはアプリケーションとして起動されることに注意してください。
Marathonでのアプリケーション実行について詳しくは、https://mesosphere.github.io/marathon/docs/application-
basics.htmlを参照してください。
4. Nuage VSPソリューションのVIPサブネットをセットアップします。 このVIPサブネットは、将来のMesosアプリケー
ションすべてのVIPニーズに対応できる大きさにする必要があります。 MesosアプリケーションがこのVIPサブネットを
使用することがないようにし、Nuageエンドポイント(vport)を作成しないようにします。
5. DNS解決のために、InfoBloxソリューションにDNSサーバーをセットアップします。
6. アプリケーション、Marathonスケジューラ、Nuage、およびInfoBloxの詳細をNetScaler MASに登録します。
7. NetScaler CPXインスタンスをNetScaler MASに追加します。
注意事項注意事項
1. NetScaler CPXのIPアドレス(管理IPアドレス)は、Mesosクラスター内で完全にルーティングできる必要があります。
2. MesosスレーブでNetScaler CPXインスタンスをプロビジョニングするときに、次の詳細を指定する必要があります。
NetScaler MASのホスト名またはIPアドレス
NetScaler MAS管理者のユーザー名とパスワード
DNS解決のために、NetScaler CPXインスタンスに構成するDNSサーバー名
3. アプリケーションとNuageサブネットは、1対1でマップされている必要があります。
4. NetScaler CPXは、Mesosスレーブ上で実行されているNuage Dockerモニターを使用してネットワークに接続されている
必要があります。
5. 関連付けられているサブネットには、Marathonアプリケーションタスク(アプリケーションのVIPアドレスのIP:portメン
バー)のみが存在する必要があります。
6. Marathonアプリケーションポートが、Marathonラベルのいずれかに指定されている必要があります。
Marathon GUIを使用した、アプリケーションとNetScaler CPXの起動
Marathon GUIにアクセスするには、ブラウザーでMarathon IPアドレスとポートを入力します。 デフォルトでは、
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.67https://docs.citrix.com
Marathonポートは8080です。
アプリケーションとアプリケーションとNetScaler CPXインスタンスを起動するにはインスタンスを起動するには
1. Marathon GUIにログオンします。
2. [[Applications]]タブの左上ペインで、[[Create]]をクリックします。
3. [[New Application]]画面の[[Docker container settings]]、[[Environment variables]]、[[Labels]]、[[Healthchecks]]、および[[Optional settings]]の各セクションでパラメーターを指定します。
注意MesosおよびMarathon環境では、ホストネットワークモードでのNetScaler CPXインスタンスの実行のみがサポートされます。 こ
のため、NetScaler CPXインスタンスを起動する場合は、[[Docker container settings]]セクションの[[Network]]一覧
で、[[Host]]を選択します。
4. [[+ Create]]をクリックします。
5. 起動したアプリケーションが[[Applications]]に表示されます。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.68https://docs.citrix.com
アプリケーション、Marathonスケジューラ、Nuage、およびInfoBloxの詳細のNetScaler MASへの登録
NetScaler CPXインスタンスを正常に展開するには、アプリケーション、Marathonスケジューラ、NuageおよびInfoBloxソリューションの詳細をNetScalerMASに登録する必要があります。
NetScaler CPXインスタンスがNetScaler MASに接続できるように、ネットワークを構成する必要があります。 NetScaler CPXコンテナーが起動し、Nuage環境から管理IPアドレスを取得すると、セキュリティで保護された接続を使用してNetScaler MASへの登録要求が送信されます。
登録プロセスの一環として、NetScaler MASでは、NetScaler CPXインスタンスに関する情報と、Nitro REST APIを使用した構成用に、IPアドレスまたはアクセス可能なポートの情報を取得します。 その後、NetScaler MASはヘルスの監視を開始します。
NetScaler MASに詳細を登録するには
1. NetScaler MASにログオンします。2. [[Orchestration]]>[[Container Orchestration]]>[[Mesos Conf iguration]]の順に選択して、次に[[Add]]をクリックします。3. [[Application Settings]]で、次のパラメーターを設定します。
[[App Default Domain Suf f ix]]: アプリケーションのDNS名の作成に使用するドメインサフィックス(InfoBloxで構成)。[[VIP Subnet Name]]: アプリケーションのVIPを割り当てるためにNetScaler MASで使用される、Nuageサブネットの名前。 このサブネットは、Nuageシステムに先に作成しておき、後からNetScaler MASに登録する必要があります。
4. [[Marathon Scheduler Details]]で、Marathon URL、ユーザー名およびパスワードを指定します。5. [[Nuage Details]]で、VSD URL、ユーザー名、パスワード、およびVSDエンタープライズIDを指定します。6. [[ InfoBlox]]で、InfoBlox URL、ユーザー名およびパスワードを指定します。7. /etc/resolv.confファイルに、InfoBlox DNS IPアドレスとドメイン検索パスを追加します。 注:注:NetScaler Management and Analytics Systemを再起動するときに、InfoBlox DNS IPアドレスとドメイン検索パスを/etc/resolv.confファイルに保持するには、/mpsconf ig/svm.confファイルで次の内容を更新します。/mps/changenameserver.sh <DNS IP address1> <DNS IP address2>echo "search <domain name>" >> /etc/resolv.conf
8. NetScaler CPXインスタンスをJSONスクリプトファイルを使用して起動します。 次に、JSONスクリプトのサンプルファイルを示します。注:注: JSONスクリプトファイルに、次の行を含めるようにします。"cmd" : "cd /var/netscaler/bins/ ; sed -i 's/# Creating NSPPE startup conf, Read By PE/# Creating NSPPE startup conf, Read By PE\\necho\"$NSIP $HOSTNAME\" >> \\\/etc\\\/hosts/' ./docker_startup.sh ; bash -C ./docker_startup.sh ; bash",
JSONスクリプトの例:スクリプトの例:
curl -X POST http://10.xx.xx.62:8080/v2/apps -d @cpx_nuage_custom_etchostcorrection.json -H "Content-type: application/json"
{
"id": "cpx-host3",
例 コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.69https://docs.citrix.com
"cpus": 1,
"mem": 1024,
"instances": 2,
"cmd" : "cd /var/netscaler/bins/ ; sed -i 's/# Creating NSPPE startup conf, Read By PE/# Creating NSPPE startup conf, Read By PE\\necho \"$NSIP $HOSTNAME\" >> \\\/etc\\\/hosts/' ./docker_startup.sh ; bash -C ./docker_startup.sh ; bash",
"constraints": [["hostname", "UNIQUE"]],
"container": {
"type": "DOCKER",
"docker": {
"image": “cpx:11.1.40.3",
"network": "NONE",
"privileged": true,
"parameters": [
{ "key": "tty", "value": "true" }
]
}
},
"env": {
"NUAGE-ENTERPRISE": "<nuage_enterprise>",
"NUAGE-DOMAIN" : "<nuage_domain>",
"NUAGE-ZONE":"<nuage_zone>",
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.70https://docs.citrix.com
"NUAGE-NETWORK":"<nuage_network>",
"NUAGE-USER":"<nuage_user>",
"NS_MGMT_SERVER":"<NMAS_server_IP>"
},
"labels": {
"NETSCALER_AS_APP": "true"
}
}
各オプションの意味は次のとおりです。
<nuage_enterprise>は、Nuageエンタープライズの名前です。
<nuage_domain>は、Nuageドメインの名前です。
<nuage_zone>は、Nuageゾーンの名前です。
<nuage_network>は、Nuageネットワークの詳細です。
<nuage_user>は、Nuage管理ユーザー名です。
<NMAS_server_IP>は、NetScaler MASサーバーのIPアドレスです。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.71https://docs.citrix.com
Kubernetes環境でのNetScaler CPXの展開
Dec 15, 2016
NetScaler CPXをKubernetes展開に統合して、クラスター環境内のコンテナー化されたアプリケーションを負荷分散できま
す。 Kubernetesについて詳しくは、http://kubernetes.io/docs/を参照してください。
Kubernetes環境で、NetScaler CPXはミニオンのkube-proxyを置き換え、ポッド内のコンテナーの負荷を分散します。
Kubernetesサポートの開始時には、NetScaler CPXは、特権が付与されたホストモードでNetScaler IPアドレス192.168.0.1で
起動します。 また、ホスト上の構成とiptableをクリアし、サービスとエンドポイントの現在の状態をKubernetesに照会し、
Kubernetesフレームワークの次のイベントストリームでイベントをリッスンします。
サービスチャネルサービスチャネル: NetScaler CPXはこのチャネルの情報を使用して、必要な仮想サーバー数を判断します。 また、各
サービスの仮想サーバーを作成し、それぞれに仮想IPアドレス(192.168.0.2)を割り当てます。 これらの仮想サーバー
は、エフェメラルポート番号(20000〜30000の範囲から選択される)に基づいて区別されます。 また、NetScaler CPX
は、iptable規則を作成して、クラスターIPアドレス宛てのトラフィックをさまざまな仮想IPアドレスにリダイレクトしま
す。
エンドポイントチャネルエンドポイントチャネル: NetScaler CPXはこのチャネルの情報を使用して、アプリケーションインスタンスを負荷分
散するために、仮想IPアドレスにバインドされたサービスグループ上のサービスグループメンバーを構成します。
NetScaler CPXでは、サービス用に作成されたNetScaler構成は保存されません。
注意サービスに割り当てるIPアドレスの範囲は、NetScaler IPアドレスと後続の3つのIPアドレスと競合しないようにする必要がありま
す。
次の図は、NetScaler CPXがKubernetes環境とどのように連携するかを示します。
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.72https://docs.citrix.com
NetScaler CPXのインスタンスのインストールを開始する前に、次の準備ができていることを確認します。
DockerがLinuxホストシステムにインストールされている。
Dockerをインストールするには、Linux Shellプロンプトで次のコマンドを実行します。
curl – ssl https://get.docker.com/ | shLinuxでのDockerのインストールについて詳しくは、https://docs.docker.com/engine/installation/ubuntulinux/を参照し
てください。
Dockerホストからインターネットに接続できる。
ルートユーザーとしてログインしている。
Kubernetes環境が、すべてのクラスターノードが構成された状態にセットアップされている。
NetScaler CPX Dockerイメージを、Kubernetes環境のすべてのノードに追加する。
注意NetScaler CPXインスタンスはkube-proxyと一緒に使用できますが、NetScaler CPXの起動は、kube-proxyの起動後にのみ行いま
す。また、kube-proxyが再起動されていないことを確認する必要があります。
NetScaler CPXインスタンスを、KubernetesがセットアップされたDockerホストにインストールするには、次のコマンドを
実行します。
-command コピー
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.73https://docs.citrix.com
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e kubernetes_url=“http://10.102.103.222:8080/api" cpx:latest
注意192.168.1.0/24ネットワークをNetScaler CPX向けに予約できない場合は、空いている他のサブネットを使用できます。 そのサブ
ネットの最初のIPアドレスを、NetScaler IP(NSIP)として割り当てます。 たとえば、サブネットに10.20.30.0/24を使用する場合
は、次のコマンドを実行します。
docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e NS_IP=10.20.30.41 -e kubernetes_url="http://10.217.212.185:8080/api" cpx:latest
-command コピー
Top Related