88
© 1999-2017 Citrix Systems, Inc. All rights reserved. p.1 https://docs.citrix.com NetScaler CPXについて アーキテクチャとトラフィックフロー NetScaler CPXのライセンス DockerでのNetScaler CPXインスタンスの展開 NetScaler Management and Analytics SystemへのNetScaler CPXインスタンス の追加 NetScaler CPXの構成 NetScaler CPXインスタンスのアップグレード NetScaler CPXインスタンスでのワイルドカード仮想サーバーの使用 East-Westトラフィックフローを可能にするためのNetScaler CPXのプロキシ としての展開 単一ホストネットワークでのNetScaler CPXの展開 マルチホストネットワークでのNetScaler CPXの展開 ネットワークへの直接アクセスが有効なNetScaler CPXの展開 MesosおよびMarathon環境でのNetScaler CPXの展開 NetScaler MASを使用したNetScaler CPXインスタンスとMesosMarathonInfoBlox、およびNuage の統合 Kubernetes環境でのNetScaler CPXの展開 NetScaler CPX 12.0 Feb 02, 2017

NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

Page 1: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.1https://docs.citrix.com

NetScaler CPXについて

アーキテクチャとトラフィックフロー

NetScaler CPXのライセンス

DockerでのNetScaler CPXインスタンスの展開

NetScaler Management and Analytics SystemへのNetScaler CPXインスタンスの追加

NetScaler CPXの構成

NetScaler CPXインスタンスのアップグレード

NetScaler CPXインスタンスでのワイルドカード仮想サーバーの使用

East-Westトラフィックフローを可能にするためのNetScaler CPXのプロキシとしての展開

単一ホストネットワークでのNetScaler CPXの展開

マルチホストネットワークでのNetScaler CPXの展開

ネットワークへの直接アクセスが有効なNetScaler CPXの展開

MesosおよびMarathon環境でのNetScaler CPXの展開

NetScaler MASを使用したNetScaler CPXインスタンスとMesos、Marathon、InfoBlox、およびNuageの統合

Kubernetes環境でのNetScaler CPXの展開

NetScaler CPX 12.0

Feb 02, 2017

Page 2: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.2https://docs.citrix.com

NetScaler CPXについて

May 13, 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

Page 3: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.3https://docs.citrix.com

アーキテクチャとトラフィックフロー

May 13, 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)アドレス

NetScaler CPXインスタンスは、管理とデータトラフィック用に使用される、単一IPアドレスで動作します。

Page 4: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.4https://docs.citrix.com

プロビジョニング中は、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要求が、どのようにして宛先に到達するかを示しています。

Page 5: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 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アドレスおよびポートに転送する方法を示しています。

Page 6: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 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にマップし、クライアント要求を転送します。

Page 7: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.7https://docs.citrix.com

NetScaler CPXのライセンス

Jul 18 , 2017

CPXインスタンスのライセンスを有効化すると、NetScaler CPXのパフォーマンスを強化できます。NetScaler MASを使用してCPXライセンスをプールし、それをライセンスサーバーとして使用します。MASでライセンスをインストールするには、GUIからライセンスファイルをアップロードするか、またはCitrixから購入したライセンスアクセスコード(LAC)を使用します。CPXインスタンスにライセンスを割り当てるには、構成ジョブやCPXのNitroを使用できます。複数のvCPUコアを使用してNetScaler CPXをプロビジョニングしている場合は、各コアはライセンスプールからCPXライセンスを割り当てられます。たとえば、4つのvCPUコアを使用してNetScaler CPXをプロビジョニングしている場合は、NetScaler CPXインスタンスに4つのライセンスが割り当てられます。

CPXライセンスファイルをライセンスファイルをNetScaler MASでインストールするにはでインストールするには

1. WebブラウザーにNetScaler Management and Analytics SystemのIPアドレスを入力します(たとえば、「http://192.168.100.1」のように入力します)。

2.[[User Name]]と[[Password]]に管理者の資格情報を入力します。

3.[[Networks]]>[[Licenses]]の順に選択します。

4. [details]ペインで[[License Files]]に移動し、次のいずれかのオプションを選択します。

Upload license f iles f rom a local computer - ライセンスが既にローカルコンピューターに存在する場合は、[[Browse]]をクリックし、ライセンスの割り当てに使用するライセンスファイル(.lic)を選択します。[完了][完了]をクリックします。Use License Activation Code - 購入したライセンスのアクティブ化コードを、Citrixからメールで受け取ります。テキストボックスにアクティブ化コードを入力し、[[Get Licenses]]をクリックします。

注意このオプションを選択する場合は、NetScaler Management and Analytics Systemがインターネットに接続されているか、またはプロ

キシサーバーが使用可能でなければなりません。

Page 8: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.8https://docs.citrix.com

5.[[Browse]]をクリックして、ライセンスの割り当てに使用するライセンスファイル(.lic)を選択します。[完了][完了]をクリックします。

[License Settings]から、いつでもNetScaler Management and Analytics Systemにライセンスを追加できます。

確認確認

NetScaler MASにインストールされたライセンスを確認するには、[[Networks]]>[[Licenses]]>[[CPX Licenses]]の順に選択します。

Page 9: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.9https://docs.citrix.com

MAS構成ジョブを使用した、NetScaler CPXインスタンスのライセンス有効化

NetScaler MASでジョブを構成してNetScaler CPXインスタンスのライセンスを有効化できます。

ジョブを使用してジョブを使用してNetScaler CPXにライセンスを割り当てるにはにライセンスを割り当てるには

1. 管理者資格情報を使用して、NetScaler MASにログオンします。

2.[[Networks]]>[[Configuration Jobs]]の順に選択し、[[Create Job]]をクリックします。

3. 必要な値を指定して構成ソースを選択したら、次の図のようにコマンドを入力します。

注意NetScaler MASのライセンスサーバーポート番号は、デフォルトでは27000です。

Page 10: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.10https://docs.citrix.com

4. 構成を実行するNetScaler CPXインスタンスを選択し、[[Next]]をクリックします。

5. 実行設定を指定して[[Finish]]をクリックすると、NetScaler CPXインスタンスでコマンドが実行されます。構成を保存して後で実行する場合は、[[Save and Exit]をクリックします。]をクリックします。

Page 11: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.11https://docs.citrix.com

ジョブを使用してジョブを使用してNetScaler CPXのライセンスを削除するにはのライセンスを削除するには

1. 管理者資格情報を使用して、NetScaler MASにログオンします。

2.[[Networks]]>[[Configuration Jobs]]の順に選択し、[[Create Job]]をクリックします。

3. 必要な値を指定して構成ソースを選択したら、次の図のようにコマンドを入力します。

Page 12: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.12https://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:///nitro/v1/config/nslicenseserver」に移動します。

2. HTTPメソッドを[[POST]]に設定します。

3. 次のように要求ヘッダーを追加します。

Cookie:NITRO_AUTH_TOKEN=<tokenvalue>

Content-Type:application/json

4. 次のように要求ペイロードを入力します。

-command コピー

-command コピー

Page 13: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.13https://docs.citrix.com

{"nslicenseserver":{

"licenseserverip":<String_value>,

"servername":<String_value>,

"port":<Double_value>

}}

5. 次のような応答が返されます。

HTTP Status Code on Success: 201 Created

HTTP Status Code on Failure: 4xx <文字列> (一般的なHTTPエラー)または5xx <文字列> (NetScaler特有のエラー)。応答ペイロードにエラーの詳細が表示されます。

NetScaler CPXインスタンスのキャパシティを設定するにはインスタンスのキャパシティを設定するには

1. 「http:///nitro/v1/config/nscapacity」に移動します。

2. HTTPメソッドを[[PUT]]に設定します。

3. 次のように要求ヘッダーを追加します。

Cookie:NITRO_AUTH_TOKEN=<tokenvalue>

Content-Type:application/json

4. 次のように要求ペイロードを入力します。

-command コピー

-command コピー

Page 14: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.14https://docs.citrix.com

{"nscapacity":{

"platform":<String_value>

}}

5. 次のような応答が返されます。

HTTP Status Code on Success: 200 OK

HTTP Status Code on Failure: 4xx <文字列> (一般的なHTTPエラー)または5xx <文字列> (NetScaler特有のエラー)。応答ペイロードにエラーの詳細が表示されます。

NetScaler CPXインスタンスのライセンス有効化について詳しくは、NetScalerアプライアンスの「ダウンロードダウンロード」セクションからダウンロードできる、NITRO APIのドキュメントを参照してください。

Page 15: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.15https://docs.citrix.com

DockerでのNetScaler CPXインスタンスの展開

Aug 30 , 2017

NetScaler CPXインスタンスは、Docker StoreでDockerイメージファイルの形式で提供されます。インスタンスを展開するには、NetScaler CPXイメージをDocker Storeからダウンロードし、docker runコマンドまたはDocker Composeツールを使用してインスタンスを展開します。

NetScaler CPXインスタンスの展開を開始する前に、「前提条件」のセクションを確認します。

このドキュメントは、次のセクションで構成されています。

前提条件Docker StoreからのNetScaler CPXイメージのダウンロードdocker runコマンドを使用したNetScaler CPXインスタンスの展開Docker Composeを使用したNetScaler CPXインスタンスの展開

前提条件

以下の点について確認してください。

Dockerホストシステムが少なくとも次のものを備えていること:1 CPU

2 GB RAM

メモ:メモ:NetScaler CPXのパフォーマンスを向上するために、NetScaler CPXインスタンスを起動する処理エンジンの数を定義できます。処理エンジンを追加するごとに、Dockerホストにエンジンと同じ数のvCPUとGBのメモリが備えられていることを確認してください。たとえば、4つの処理エンジンを追加する場合は、Dockerホストは4つのvCPUと4GBのメモリを備えている必要があります。

DockerホストシステムがLinux Ubuntuのバージョン14.04以降を実行している。Dockerバージョン1.12がLinuxホストシステムにインストールされている。LinuxでのDockerのインストールについて詳しくは、https://docs.docker.com/engine/installation/ubuntulinux/を参照してください。Dockerホストからインターネットに接続できる。

Docker StoreからのNetScaler CPXイメージのダウンロード

Docker Storeから最新のNetScaler CPX Dockerイメージファイルをダウンロードし、NetScaler CPX Dockerイメージをロードします。そのためには、Dockerホストで次のコマンドを実行します。

docker pull store/citrix/netscalercpx:12.0-53.xx

コマンド コピー

Page 16: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.16https://docs.citrix.com

NetScaler CPX Dockerイメージのダウンロード後に次のコマンドを使用すると、イメージの詳細を表示できます。

docker images

次に例を示します。

root@ubuntu:~# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

cpx 12.0-53.xx 2e97aadf918b 43 hours ago 414 MB

この例の出力にある、次のフィールドに注意します。

REPOSITORY:イメージが格納されている名前空間を指定します。TAG:インストールされているNetScaler CPXイメージのバージョンを示します。IMAGE ID:Dockerホストに含まれるイメージの一意のIDを示します。

docker runコマンドを使用したNetScaler CPXインスタンスの展開

ホストにロードしたNetScaler CPX Dockerイメージを使用して、ホスト上でDockerコンテナにNetScaler CPXインスタンスをインストールできます。docker runコマンドを使用して、デフォルトのNetScaler CPX構成でNetScaler CPXインスタンスをインストールします。

Important「https://www.citrix.com/products/netscaler-adc/cpx-express.html」からNetScaler CPX Expressをダウンロードした場合は、

「https://www.citrix.com/products/netscaler-adc/cpx-express.html」のエンドユーザーライセンス契約書(EULA)を読み、NetScaler

CPXインスタンスを展開する際にEULAに同意してください。

次のdocker runコマンドを使用して、DockerコンテナにNetScaler CPXインスタンスをインストールします。

コマンド コピー

例 コピー

-command コピー

Page 17: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.17https://docs.citrix.com

docker run -dt -P --privileged=true –net=host –e NS_NETMODE=”HOST” -e CPX_CORES=<number of cores> --name <container_name> --ulimit core=-1 -e CPX_NW_DEV='<INTERFACES>' -e CPX_CONFIG=’{“YIELD”:”NO”}’ -e LS_IP=<LS_IP_ADDRESS> -e LS_PORT=<LS_PORT> e PLATFORM=CP1000 -v <host_dir>:/cpx <REPOSITORY>:<TAG>

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_NW_DEV='eth1 eth2' -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"No"}' -e LS_IP=10.102.38.134 -e PLATFORM=CP1000 -v /var/cpx:/cpx --name cpx_host cpx:12.0-51.xx

この例では、NetScaler CPX Dockerイメージに基づいて、「mycpx」という名前のコンテナを作成します。

-Pパラメーターは必ず指定する必要があります。これによりDockerは、コンテナ内でNetScaler CPX Dockerイメージによって公開されるポート(ポート80、22、443、161/UDP)を、ユーザー定義範囲からランダムに選択されたDockerホスト上のポートにマッピングします。これは競合を防ぐためです。あとで同じDockerホストに複数のNetScaler CPXコンテナを作成する場合。ポートマッピングは動的であり、コンテナが起動または再起動するごとに設定されます。ポートは次のように使用されます。

80はHTTP用443はHTTPs用22はSSH用161/UDPはSNMP用。

静的なポートマッピングを行う場合は、-pパラメーターを使用して手動でポートを設定します。

--privileged=trueオプションは、特権モードでコンテナを実行するために使用されます。複数のコアでNetScaler CPXを実行している場合、システムのすべての特権をNetScaler CPXに付与する必要があります。1つのコアでNetScaler CPXを実行する場合はこのオプションではなく、完全なネットワーク特権でNetScaler CPXコンテナを実行できるようにする--cap-add=NET_ADMINオプションを使用する必要があります。

--net=hostは標準的なdocker runコマンドのオプションで、コンテナがホストネットワークスタックで実行され、すべてのネットワークデバイスへのアクセス権を持つよう指定します。

注意ブリッジまたはネットワークのない状態でNetScaler CPXを実行する場合、このオプションは使用しません。

-e NS_NETMODE="HOST"は、NetScaler CPXをホストモードで起動するよう指定するNetScaler CPX専用の環境変数です。

例 コピー

Page 18: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.18https://docs.citrix.com

NetScaler CPXをホストモードで起動すると4つの既定のiptable規則がホストマシン上に構成され、NetScaler CPXに管理アクセスを行うために使用されます。この場合は次のポートを使用します。

9995はHTTP用9996はHTTPS用9997はSSH用9998はSNMP用

異なるポートを指定する場合は、次の環境変数を使用できます。

-e NS_HTTP_PORT=

-e NS_HTTPS_PORT=

-e NS_SSH_PORT=

-e NS_SNMP_PORT=

注意ブリッジまたはネットワークのない状態でNetScaler CPXを実行している場合、この環境変数は使用しません。

-e CPX_CORESオプションは、NetScaler CPX専用の環境変数です。このオプションを使用して、NetScaler CPXコンテナを起動する処理エンジンの数を定義することで、NetScaler CPXインスタンスのパフォーマンスを改善できます。

注意処理エンジンを追加するごとに、Dockerホストにエンジンと同じ数のvCPUとGBのメモリが備えられていることを確認してください。

たとえば、4つの処理エンジンを追加する場合は、Dockerホストは4つのvCPUと4GBのメモリを備えている必要があります。

-e EULA = yesはNetScaler CPX専用の必須の環境変数であり、「https://www.citrix.com/products/netscaler-adc/cpx-

express.html」のエンドユーザーライセンス契約書(EULA)を読んで同意する必要があります。

-e PLATFORM=CP1000パラメーターは、NetScaler CPXライセンスの種類を指定します。

ホストネットワークでDockerを実行している場合、-e CPX_NW_DEV環境変数を使用して、NetScaler CPXコンテナに専用ネットワークインターフェイスを割り当てることができます。ネットワークインターフェイスはスペースで区切って定義する必要があります。定義したネットワークインターフェイスは、NetScaler CPXコンテナをアンインストールするまでNetScaler

CPXコンテナによって保持されます。NetScaler CPXコンテナがプロビジョニングされる際に、割り当てられたすべてのネットワークインターフェイスがNetScalerネットワーク名前空間に追加されます。

注意ブリッジまたはネットワークのない状態でNetScaler CPXを実行しており、コンテナに別のネットワーク接続を構成したり既存のネッ

トワークを削除したりするなどしてDockerまたはコンテナネットワークを変更する場合は、更新したネットワークを使用するために

必ずNetScaler CPXコンテナを再起動してください。

例 コピー

Page 19: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.19https://docs.citrix.com

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e EULA=yes -e CPX_NW_DEV='eth1 eth2' -e CPX_CORES=5 -e PLATFORM=CP1000 --name cpx_host cpx:12.0-53.x

-e CPX_CONFIGはNetScaler CPXコンテナのスループットパフォーマンスを制御できる、NetScaler CPX専用の環境変数です。NetScaler CPXが処理すべき受信トラフィックをまったく受け取らないときは、このアイドル時間中にCPUが解放されてスループットパフォーマンスが低下します。このような場合は、CPX_CONFIG環境変数を使用して、NetScaler CPXコンテナのスループットパフォーマンスを制御できます。CPX_CONFIG環境変数には、JSON形式で次のような値を入れる必要があります。

NetScaler CPXコンテナでアイドル時にCPUを解放する場合は、「{"YIELD” : “Yes”}」と定義します。スループットパフォーマンスを上げるためにNetScaler CPXコンテナでアイドル時にCPUを解放しない場合は、「{“YIELD” :“No”}」と定義します。

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e EULA=yes -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"No"}' -e PLATFORM=CP1000 --name cpx_host cpx:12.0-51.x

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e EULA=yes -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"Yes"}' -e PLATFORM=CP1000 --name cpx_host cpx:12.0-51.xx

–vパラメーターは、NetScaler CPXマウントディレクトリ/cpxのマウントポイントを指定するオプションパラメーターです。マウントポイントはホスト上のディレクトリであり、そこに/cpxディレクトリをマウントします。/cpxディレクトリには、ログ、構成ファイル、SSL証明書、コアダンプファイルが格納されます。この例では、マウントポイントは/var/cpxで、NetScaler CPXマウントディレクトリは/cpxです。

ライセンスを購入してある場合、または評価ライセンスを所有している場合は、そのライセンスをライセンスサーバーにアップロードして、docker runコマンドの-e LS_IP= -e LS_PORT=パラメーターを使用してライセンスサーバーの場所を指定でき

スループットパフォーマンスを上げる場合のサンプル: コピー

NetScaler CPXコンテナでアイドル時にCPUを解放しないように定義する場合のサンプル: コピー

Page 20: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.20https://docs.citrix.com

ます。この場合は、EULAを承認する必要はありません。

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e CPX_CORES=5 –e CPX_CONFIG='{"YIELD":"No"}' -e LS_IP=10.102.38.134 -e PLATFORM=CP1000 --name cpx_host cpx:12.0-51.xx

各オプションの意味は次のとおりです。

は、ライセンスサーバーのIPアドレスです。は、ライセンスサーバーのポートです。

docker psコマンドを使用すると、システムで実行されているイメージと、標準ポートにマップされたポートを表示できます。

Docker Composeを使用したNetScaler CPXインスタンスの展開

Docker Composeツールを使用して、単一または複数のNetScaler CPXインスタンスをプロビジョニングできます。Compose

を使用してNetScaler CPXインスタンスをプロビジョニングするには、最初にComposeファイルを作成して、NetScaler CPX

イメージ、NetScaler CPXインスタンス用に開くポート、およびNetScaler CPXインスタンスの特権を指定する必要があります。

ImportantDocker Composeツールをホストにインストールしていることを確認してください。

複数の複数のNetScaler CPXインスタンスをプロビジョニングするにはインスタンスをプロビジョニングするには

1. Composeファイルを作成します。Composeファイルは、一般的に次のような形式に従います。

<service-name>:

container_name:

image: <repository>:<tag>

ports:

例 コピー

コマンド コピー

Page 21: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.21https://docs.citrix.com

- 22

- 80

- 443

- 161/udp

- 35021-35030

tty: true

cap_add:

- NET_ADMIN

ulimits:

core: -1

volumes:

- <host_directory_path>:/cpx

environment:

- EULA=yes

- CPX_CORES=<number_processing_engine>

- CPX_CONFIG='{"YIELD":"Yes"}'

Page 22: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.22https://docs.citrix.com

各オプションの意味は次のとおりです。

は、プロビジョニングするサービスの名前です。image::は、NetScaler CPXイメージのリポジトリとバージョンを示します。privileged: trueは、NetScaler CPXインスタンスのすべてのroot特権を提供します。

cap_addは、NetScaler CPXインスタンスにネットワーク特権を提供します。は、NetScaler CPXインスタンスをマウントするDockerホストのディレクトリを指定します。は、NetScaler CPXインスタンスを起動する処理エンジンの数です。処理エンジンを追加するごとに、Dockerホストにエンジンと同じ数のvCPUとGBのメモリが備えられていることを確認してください。たとえば、4つの処理エンジンを追加する場合は、Dockerホストは4つのvCPUと4GBのメモリを備えている必要があります。

CPX_0:

container_name: CPX_0

image: cpx:12.0-53.xx

ports:

- 443

- 22

- 80

- 161/udp

- 35021-35030

tty: true

cap_add:

- NET_ADMIN

ulimits:

サンプル:Composeファイル コピー

Page 23: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.23https://docs.citrix.com

core: -1

volumes:

- /root/test:/cpx

environment:

- CPX_CORES=2

- EULA=yes

注意単一のNetScaler CPXインスタンスをプロビジョニングする場合は、次の行をcomposeファイルに追加する必要があります。

container_name:

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

注意単一のNetScaler CPXインスタンスをプロビジョニングする場合は、次のコマンドを実行します。

-command コピー

例 コピー

Page 24: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.24https://docs.citrix.com

docker-compose -fup –d

Page 25: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.25https://docs.citrix.com

NetScaler Management and Analytics SystemへのNetScaler CPXインスタンスの追加

Apr 28 , 2017

DockerホストにインストールされているNetScaler CPXインスタンスを管理および監視する場合は、NetScaler MASサーバーにそのインスタンスを追加する必要があります。

インスタンスは、NetScaler MASサーバーを初めて設定するときに追加することも、後で追加することもできます。

インスタンスを追加するには、各インスタンスのホスト名またはIPアドレス、またはIPアドレスの範囲を指定する必要があります。次に、NetScaler MASがインスタンスにアクセスする場合に使用するインスタンスプロファイルを指定する必要があります。

このインスタンスプロファイルには、NetScaler MASに追加するインスタンスのユーザー名とパスワードが含まれています。インスタンスの種類ごとにデフォルトのプロファイルが用意されています。たとえば、ns-root-profileは、NetScalerインスタンスのデフォルトプロファイルです。このプロファイルは、デフォルトのNetScaler管理者資格情報によって定義されます。インスタンスのデフォルトの管理者資格情報を変更した場合は、それらのインスタンスのカスタムのインスタンスプロファイルを定義できます。インスタンスが検出された後にインスタンスの資格情報を変更した場合は、インスタンスプロファイルを編集、または新規のプロファイルを作成してからインスタンスを再検出する必要があります。

前提条件

以下の点について確認してください。

Citrix XenServerにNetScaler MASサーバーがインストールされていること。詳しくは、「NetScaler MASのドキュメント」を参照してください。DockerホストにNetScaler CPXインスタンスがインストールされていること。

NetScaler CPXインスタンスをインスタンスをNetScaler MASに追加するには、以下の手順に従います。に追加するには、以下の手順に従います。

1. 1) WebブラウザーにNetScaler Management and Analytics SystemのIPアドレスを入力します(たとえば、「http://192.168.100.1」のように入力します)。

2.[[User Name]]と[[Password]]の各フィールドに管理者の資格情報を入力します。デフォルトの管理者の資格情報はnsrootとnsrootです。

Page 26: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.26https://docs.citrix.com

3.[[Infrastructure]]>[[Instances]]の順に選択します。[[Instances]]で、[[NetScaler CPX]]を選択して[[Add]]をクリックします。

4. 次のいずれかのオプションを選択します。

- Enter Device IP address - 各インスタンスのホスト名またはIPアドレス、またはIPアドレスの範囲を指定します。

- Import f rom file - ローカルシステムから、追加するすべてのインスタンスのIPアドレスを含むテキストファイルをアップロードします。

Page 27: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.27https://docs.citrix.com

5.[[Profile Name]]から、適切なインスタンスプロファイルを選択するか、[[+]]アイコンをクリックして新規プロファイルを作成します。

6. ホストの[[HTTP]]、[[HTTPS]]、[[SSH]]、[[SNMP]]ポートの詳細を指定します。ホストが発行するポートの範囲を、[[Start Port]]と[[Number of ports]]フィールドで指定することもできます。NetScaler CPX IPアドレスがNetScaler

MASサーバーから到達可能な場合は、[[Routable]]チェックボックスをオンにします。NetScaler CPX IPアドレスがホスト経由で到達可能な場合は、[[Routable]]チェックボックスをオフにして、ホストのIPアドレスを指定します。

7.[[OK]]をクリックして、NetScaler MASへのインスタンスの追加プロセスを開始します。

注意インスタンスを再検出する場合は、[[Infrastructure]]>[[Instances]]>[[NetScaler ]]の順に選択し、目的のインスタンスを選択

して、[[Action]]ボックスの一覧から[[Rediscover]]を選択します。

Page 28: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.28https://docs.citrix.com

NetScaler CPXの構成

Apr 28 , 2017

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 ""

例例:

インスタンスのプロンプトからログアウトするには、「log out」と入力します。

Nitro APIを使用したNetScaler CPXインスタンスの構成

NetScaler Nitro APIを使用してNetScaler CPXインスタンスを構成できます。

Nitro APIを使用してを使用してNetScaler CPXインスタンスを構成するには(インスタンスを構成するには(Webブラウザーで次のように入力)ブラウザーで次のように入力)

#http://:/nitro/v1/config/

Page 29: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.29https://docs.citrix.com

Nitro APIを使用して統計情報を取得するには(を使用して統計情報を取得するには(Webブラウザーで次のように入力)ブラウザーで次のように入力)

#http://:/nitro/v1/stat/

Nitro APIの使用について詳しくは、「REST Webサービス(REST Web Services)」を参照してください。NetScaler CPXの場合は、「netscaler-ip-address」の記述があるところではを使用します。

ジョブを使用した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]]をクリックします。

Page 30: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.30https://docs.citrix.com

5. 実行設定を指定して[Finish]をクリックすると、NetScaler CPXインスタンスでコマンドが実行されます。構成を保存して後で実行する場合は、[[Save and Exit]]をクリックします。

NetScaler CPXインスタンスのログストリーム配信の構成

NetScaler CPXインスタンスのログストリーム配信を構成して、アプリケーションパフォーマンスの監視と分析に必要な、Webページのパフォーマンスデータ、フローとユーザーセッションレベルの情報、およびデータベース情報を収集できます。これらのデータレコードはNetScaler MASに送信され、ここから全アプリケーションのリアルタイムレポートと履歴レポート

Page 31: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.31https://docs.citrix.com

を表示できます。

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 コピー

Page 32: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.32https://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 -httpAuthorization 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コレクターを構成する必要があります。

Page 33: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.33https://docs.citrix.com

NetScaler CPXインスタンスのアップグレード

Jun 30 , 2016

NetScaler CPXインスタンスをシャットダウンするとアップグレードできます。同じマウントポイントに最新のNetScaler

CPXをインストールしてから旧バージョンのインスタンスを削除します。マウントポイントは、ホストの/cpxディレクトリのマウント先となるディレクトリです。

たとえば、既存のNetScaler CPXインスタンスの/cpxディレクトリをホストの/var/cpxディレクトリにマウントした場合、マウントポイントは/var/cpxになり、 NetScaler CPXのマウントディレクトリは以下のように/cpx になります。

root@ubuntu:~# docker run -dt -e EULA=yes --name mycpx -v /var/cpx:/cpx --ulimit core=-1 cpx:11.1-48.xx

前提条件

以下の点について確認してください。

既存のNetScaler CPXインスタンスの/cpxディレクトリをマウントしたホストディレクトリの詳細。docker inspect <コンテナ名>コマンドでホストディレクトリの詳細情報を表示できます。<コンテナ名>はNetScaler CPXコンテナ名です。

このコマンドにより、ボリュームなどのコンテナの構成に関する詳細情報が出力されます。"Mounts"エントリの"Source"サブエントリに、そのホストのホストディレクトリの場所が表示されます。

「https://www.microloadbalancer.com/get-it-now」から最新のNetScaler CPX Dockerイメージファイルをダウンロードし、NetScaler CPX Dockerイメージをロードします。イメージをロードするには、Dockerイメージファイルを保存したディレクトリに移動してdocker load -i <イメージ名>コマンドを使用します。NetScaler CPXイメージがロードされたら、以下のdocker imagesコマンドを入力してイメージの情報を表示します。

例 コピー

-command コピー

Page 34: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.34https://docs.citrix.com

root@ubuntu:~# docker load -i cpx-12.0-41.10.gz

root@ubuntu:~# docker images

REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE

cpx 12.0-41.10 2e97aadf918b 43 hours ago 414.5 MB

NetScaler CPXインスタンスをアップグレードするには

1.docker stop <コンテナ名>コマンドで既存のNetScaler CPXインスタンスを停止します。<コンテナ名>はNetScaler CPXインスタンス名です。

root@ubuntu:~# docker stop mycpx

mycpx

2.docker runコマンドを使用して、ホストにロードしたNetScaler CPXイメージから最新のNetScaler CPXインスタンスを展開します。インスタンスは必ず既存のNetScaler CPXインスタンスで使用していたのと同じマウントポイント(例:/var/cpx:/cpx)に展開してください。

root@ubuntu:~# docker run -dt -P -e CPX_CORES=1 --name latestcpx --ulimit core=-1 -e EULA=yes -v /var/cpx:/cpx --cap-add=NET_ADMIN cpx:12.0-41.10

docker psコマンドを使用すれば、展開したNetScaler CPXインスタンスが最新バージョンかどうかを確認できます。

例: コピー

例 コピー

-command コピー

Page 35: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.35https://docs.citrix.com

root@ubuntu:~# docker ps

CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

ead12ec4e965 cpx:12.0-41.10 "/bin/sh -c 'bash -C " 5 seconds ago Up 5 seconds 22/tcp, 80/tcp, 443/tcp, 161/udp latestcpx

3. 正しいNetScaler CPXインスタンスを展開できたことを確認したら、docker rm <コンテナ名>コマンドで旧バージョンのインスタンスを削除します。

root@ubuntu:~# docker rm mycpx

mycpx

-command コピー

Page 36: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.36https://docs.citrix.com

NetScaler CPXインスタンスでのワイルドカード仮想サーバーの使用

Jun 30 , 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 testlbvserver HTTP 127.0.0.1 30000

コンテンツスイッチのワイルドカード仮想サーバーを作成するには、コマンドプロンプトで次のコマンドを入力します。

-command コピー

例 コピー

-command コピー

Page 37: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.37https://docs.citrix.com

add cs vserver <name> <serviceType> 127.0.0.1 <port>

add cs vserver testcsvserver HTTP 127.0.0.1 30000

例 コピー

Page 38: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.38https://docs.citrix.com

East-Westトラフィックフローを可能にするためのNetScaler CPXのプロキシとしての展開

May 13, 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

MPXも展開されています。NetScaler MPXからのトラフィックをNetScaler CPXコンテナが受信し、そこからアプリケーショ

Page 39: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.39https://docs.citrix.com

ンコンテナにトラフィックが分散されます。

次の図は、このトポロジと、通信を可能にするために設定が必要な構成を示しています。

次の表は、この構成例のNetScaler CPXインスタンスに構成されている、IPアドレスとポートの一覧です。

Page 40: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.40https://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で実行 コピー

Page 41: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.41https://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で実行 コピー

Page 42: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.42https://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で実行 コピー

Page 43: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.43https://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

Page 44: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.44https://docs.citrix.com

単一ホストネットワークでのNetScaler CPXの展開

May 13, 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との通信用に予約されているためです。

Page 45: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.45https://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

サンプルコマンド:単一ホストトポロジ コピー

Page 46: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.46https://docs.citrix.com

マルチホストネットワークでのNetScaler CPXの展開

May 13, 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インスタンスが一連のコンテナベースのアプリケーションやサーバーの負荷を分散するようにできます。

次の図は、このトポロジを示しています。

Page 47: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.47https://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ネットワークはパブリックネットワークを表していることに注意してください。

このシナリオ例を構成するには、NetScaler MASのジョブ機能またはNITRO APIを使用して、次のコマンドを実行します。

Page 48: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.48https://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.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アドレスとポートマッピングの使用 コピー

構成例:NetScaler CPX IPアドレスとポートマッピングの使用 コピー

Page 49: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.49https://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インスタンスを構成できます。

次の図は、このトポロジを示しています。

Page 50: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.50https://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プロンプトで次のコマンドを実行します。

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を使用して、次のコマンドを実行します。

構成例 コピー

構成例 コピー

Page 51: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.51https://docs.citrix.com

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インスタンスが一連のコンテナベースのアプリケーションやサーバーの負荷を分散するようにできます。

次の図は、このトポロジを示しています。

Page 52: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.52https://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シェルプロンプトで次のコマンドを実行します。

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を使用して、次のコマンドを実行します。

構成例 コピー

Page 53: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.53https://docs.citrix.com

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

構成例 コピー

Page 54: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.54https://docs.citrix.com

ネットワークへの直接アクセスが有効なNetScalerCPXの展開

May 13, 2016

ネットワークに直接アクセスできるように、NetScaler CPXインスタンスを構成できます。このシナリオでは、受信トラフィックはNetScaler CPX VIPで直接受信されます。

この通信を有効にするには、まず、docker0ブリッジにパブリックIPアドレスを構成する必要があります。次に、ネットワークポートeth0からパブリックIPアドレスを削除し、ネットワークポートをdocker0ブリッジにバインドします。

2つのサービスを追加して負荷分散を構成し、次にネットワークパブリックIPアドレスを、NetScaler CPXインスタンスのVIPとして構成します。クライアント要求は、VIPで直接受信されます。

この構成例では、10.x.x.xネットワークはパブリックネットワークを表していることに注意してください。

このシナリオを構成するには、Linuxシェルプロンプトで次のコマンドを実行します。

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を使用して、次のコマンドを実行します。

構成例 コピー

構成例 コピー

Page 55: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.55https://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

Page 56: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.56https://docs.citrix.com

MesosおよびMarathon環境でのNetScaler CPXの展開

Jun 30 , 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の展開を示しています。

Page 57: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.57https://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スクリプトを作成します。

Page 58: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.58https://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"

},

例 コピー

Page 59: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.59https://docs.citrix.com

},

"healthChecks": [

{

"protocol": "HTTP",

"portIndex": 0,

"path": "/",

"gracePeriodSeconds": 5,

"intervalSeconds": 20,

"maxConsecutiveFailures": 3

}

]

}

注意アプリケーションの場合は、ラベルをNETSCALER_CPXに設定しないようにします。アプリケーションのラベルパラメーターを

NETSCALER_CPXに設定すると、そのアプリケーションをNetScaler CPXインスタンスで構成できなくなります。

たとえば、NetScaler CPXインスタンスを起動するには、次のサンプルスクリプトのようなJSONスクリプトを作成します。

{

"id": "cpx",

"cpus": 0.25,

例 コピー

Page 60: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.60https://docs.citrix.com

"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"

}

Page 61: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.61https://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: application/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です。

アプリケーションとアプリケーションとNetScaler CPXインスタンスを起動するにはインスタンスを起動するには

1. Marathon GUIにログオンします。

-command コピー

-command コピー

-command コピー

Page 62: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.62https://docs.citrix.com

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]]に表示されます。

Page 63: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.63https://docs.citrix.com

Page 64: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.64https://docs.citrix.com

NetScaler MASを使用したNetScaler CPXインスタンスとMesos、Marathon、InfoBlox、およびNuageの統合

Jun 30 , 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アドレスとポートを入力します。デフォルトでは、Marathon

Page 65: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.65https://docs.citrix.com

ポートは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]]に表示されます。

Page 66: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.66https://docs.citrix.com

アプリケーション、Marathonスケジューラ、Nuage、およびInfoBloxの詳細のNetScaler MASへの登録

NetScaler CPXインスタンスを正常に展開するには、アプリケーション、Marathonスケジューラ、NuageおよびInfoBloxソリューションの詳細をNetScaler MASに登

録する必要があります。

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 Configuration]]の順に選択して、次に[[Add]]をクリックします。3. [[Application Settings]]で、次のパラメーターを設定します。

[[App Default Domain Suffix]]:アプリケーションの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ファイルに保持するには、/mpsconfig/svm.confファイルで次の内容を更新します:/mps/changenameserver.sh

echo "search " >> /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",

"cpus": 1,

例 コピー

Page 67: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.67https://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>",

"NUAGE-NETWORK":"<nuage_network>",

Page 68: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.68https://docs.citrix.com

"NUAGE-NETWORK":"<nuage_network>",

"NUAGE-USER":"<nuage_user>",

"NS_MGMT_SERVER":"<NMAS_server_IP>"

},

"labels": {

"NETSCALER_AS_APP": "true"

}

}

各オプションの意味は次のとおりです。

は、Nuageエンタープライズの名前です。は、Nuageドメインの名前です。は、Nuageゾーンの名前です。は、Nuageネットワークの詳細です。は、Nuage管理ユーザー名です。は、NetScaler MASサーバーのIPアドレスです。

Page 69: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.69https://docs.citrix.com

Kubernetes環境でのNetScaler CPXの展開

Jun 30 , 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環境とどのように連携するかを示します。

Page 70: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.70https://docs.citrix.com

NetScaler CPXのインスタンスのインストールを開始する前に、次の準備ができていることを確認します。

DockerがLinuxホストシステムにインストールされている。Dockerをインストールするには、Linuxシェルプロンプトで次のコマンドを実行します:

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ホストにインストールするには、次のコマンドを実行します。

docker run -dt --privileged=true --net=host -e NS_NETMODE="HOST" -e kubernetes_url=“http://10.102.103.222:8080/api" cpx:latest

-command コピー

Page 71: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.71https://docs.citrix.com

注意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 コピー

Page 72: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.72https://docs.citrix.com

Google Compute EngineでのNetScaler CPXプロキシの展開

Jun 30 , 2017

この展開ガイドでは、企業ネットワーク内で実行するNetScaler MASを使用して、Google CloudのGoogle Compute Engine(GCE)のDockerでNetScaler CPXを展開する方法について説明します。この展開では、GCEにインストールされたNetScaler CPXは2つのバックエンドサーバーで負荷分散し、NetScaler MASはライセンス管理と分析のソリューションを提供します。

NetScaler CPXは、レイヤー7機能、SSLオフロード、複数のプロトコル、NITRO APIをフルサポートするコンテナベースのプロキシです。NetScaler MASは、管理、ライセンス付与、分析のソリューションを提供します。NetScaler MASはライセンス管理サーバーとして、オンプレミスまたはクラウドで実行するNetScaler CPXインスタンスに使用権を付与します。

CPXとCPX Expressは同じイメージです。Docker App Store(リリース11または12)内のCPXイメージは、NetScaler MASによってライセンスを付与されてインストールされると完全なCPXインスタンスになります。ライセンスが付与されないと、CPXイメージは20Mbpsと250

SSL接続をサポートするCPX Expressインスタンスになります。

前提条件

NetScaler CPX専用の2GBのメモリと1vCPU

GCEから利用できるDockerオープンソースGCEにインターネット接続またはVPN接続している、オンプレミスで実行中のNetScaler MAS

注意NetScaler MASの展開方法について詳しくは、 「NetScaler MASの展開」を参照してください。

構成の手順

この展開を構成するには、以下の手順を実行する必要があります。

1. GCE VMにDockerをインストールする。

2. Dockerインスタンスと通信するリモートAPIを構成する。

3. NetScaler CPXイメージをインストールする。

4. CPXインスタンスを作成する。

5. NetScaler MASを使用してNetScaler CPXにライセンスを付与する。

6. NetScaler CPXで負荷分散サービスを構成し、その構成を確認する。

a) NGINX Webサーバーをインストールする。

b) CPXで負荷分散を構成し、両方のWebサービスに負荷が分散されていることを確認する。

手順1:GCE VMにDockerをインストールする

Page 73: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.73https://docs.citrix.com

GCEからLinux Ubuntu VMを作成します。次に、以下の例に示したコマンドを使用して、そのVMにDockerをインストールします。

$ sudo curl –ssl https://get .docker.com/ | sh% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0curl: (6) Could not resolve host: xn--ssl-1n0a

100 17409 100 17409 0 0 21510 0 --:--:-- --:--:-- --:--:-- 21492

apparmor is enabled in the kernel and apparmor utils were already installed

+ sudo -E sh -c apt-key add -

+ echo -----BEGIN PGP PUBLIC KEY BLOCK-----

Version: GnuPG v1

mQINBFWln24BEADrBl5p99uKh8+rpvqJ48u4eTtjeXAWbslJotmC/CakbNSqOb9o

ddfzRvGVeJVERt/Q/mlvEqgnyTQy+e6oEYN2Y2kqXceUhXagThnqCoxcEJ3+KM4R

mYdoe/BJ/J/6rHOjq7Omk24z2qB3RU1uAv57iY5VGw5p45uZB4C4pNNsBJXoCvPn

TGAs/7IrekFZDDgVraPx/hdiwopQ8NltSfZCyu/jPpWFK28TR8yfVlzYFwibj5WK

dHM7ZTqlA1tHIG+agyPf3Rae0jPMsHR6q+arXVwMccyOi+ULU0z8mHUJ3iEMIrpT

X+80KaN/ZjibfsBOCjcfiJSB/acn4nxQQgNZigna32velafhQivsNREFeJpzENiG

HOoyC6qVeOgKrRiKxzymj0FIMLru/iFF5pSWcBQB7PYlt8J0G80lAcPr6VCiN+4c

NKv03SdvA69dCOj79PuO9IIvQsJXsSq96HB+TeEmmL+xSdpGtGdCJHHM1fDeCqkZ

hT+RtBGQL2SEdWjxbF43oQopocT8cHvyX6Zaltn0svoGs+wX3Z/H6/8P5anog43U

65c0A+64Jj00rNDr8j31izhtQMRo892kGeQAaaxg4Pz6HnS7hRC+cOMHUU4HA7iM

zHrouAdYeTZeZEQOA7SxtCME9ZnGwe2grxPXh/U/80WJGkzLFNcTKdv+rwARAQAB

tDdEb2NrZXIgUmVsZWFzZSBUb29sIChyZWxlYXNlZG9ja2VyKSA8ZG9ja2VyQGRv

Y2tlci5jb20+iQIcBBABCgAGBQJWw7vdAAoJEFyzYeVS+w0QHysP/i37m4SyoOCV

cnybl18vzwBEcp4VCRbXvHvOXty1gccVIV8/aJqNKgBV97lY3vrpOyiIeB8ETQeg

srxFE7t/Gz0rsLObqfLEHdmn5iBJRkhLfCpzjeOnyB3Z0IJB6UogO/msQVYe5CXJ

l6uwr0AmoiCBLrVlDAktxVh9RWch0l0KZRX2FpHu8h+uM0/zySqIidlYfLa3y5oH

scU+nGU1i6ImwDTD3ysZC5jp9aVfvUmcESyAb4vvdcAHR+bXhA/RW8QHeeMFliWw

7Z2jYHyuHmDnWG2yUrnCqAJTrWV+OfKRIzzJFBs4e88ru5h2ZIXdRepw/+COYj34

LyzxR2cxr2u/xvxwXCkSMe7F4KZAphD+1ws61FhnUMi/PERMYfTFuvPrCkq4gyBj

t3fFpZ2NR/fKW87QOeVcn1ivXl9id3MMs9KXJsg7QasT7mCsee2VIFsxrkFQ2jNp

D+JAERRn9Fj4ArHL5TbwkkFbZZvSi6fr5h2GbCAXIGhIXKnjjorPY/YDX6X8AaHO

W1zblWy/CFr6VFl963jrjJgag0G6tNtBZLrclZgWhOQpeZZ5Lbvz2ZA5CqRrfAVc

wPNW1fObFIRtqV6vuVluFOPCMAAnOnqR02w9t17iVQjO3oVN0mbQi9vjuExXh1Yo

ScVetiO6LSmlQfVEVRTqHLMgXyR/EMo7iQIcBBABCgAGBQJXSWBlAAoJEFyzYeVS

+w0QeH0QAI6btAfYwYPuAjfRUy9qlnPhZ+xt1rnwsUzsbmo8K3XTNh+l/R08nu0d

sczw30Q1wju28fh1N8ay223+69f0+yICaXqR18AbGgFGKX7vo0gfEVaxdItUN3eH

NydGFzmeOKbAlrxIMECnSTG/TkFVYO9Ntlv9vSN2BupmTagTRErxLZKnVsWRzp+X

-----END PGP PUBLIC KEY BLOCK-----

OK

+ sudo -E sh -c mkdir -p /etc/apt/sources.list.d

+ dpkg --print-architecture

+ sudo -E sh -c echo deb \[arch=amd64\] https://apt.dockerproject.org/repo ubuntu-yakkety main > /etc/apt/sources.list.d/docker.list

+ sudo -E sh -c sleep 3; apt-get update; apt-get install -y -q docker-engine

Hit:1 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety InRelease

Get:2 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates InRelease [102 kB]

Get:3 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-backports InRelease [102 kB]

Get:4 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety/restricted Sources [5,376 B]

Get:5 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety/multiverse Sources [181 kB]

Get:6 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety/universe Sources [8,044 kB]

Get:7 http://archive.canonical.com/ubuntu yakkety InRelease [11.5 kB]

Page 74: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.74https://docs.citrix.com

Get:8 http://security.ubuntu.com/ubuntu yakkety-security InRelease [102 kB]

Get:9 https://apt.dockerproject.org/repo ubuntu-yakkety InRelease [47.3 kB]

Get:10 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety/main Sources [903 kB]

Get:11 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/restricted Sources [2,688 B]

Get:12 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/universe Sources [57.9 kB]

Get:13 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/multiverse Sources [3,172 B]

Get:14 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/main Sources [107 kB]

Get:15 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/main amd64 Packages [268 kB]

Get:16 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/main Translation-en [122 kB]

Get:17 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/universe amd64 Packages [164 kB]

Get:18 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/universe Translation-en [92.4 kB]

Get:19 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/multiverse amd64 Packages [4,840 B]

Get:20 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-updates/multiverse Translation-en [2,708 B]

Get:21 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-backports/universe Sources [2,468 B]

Get:22 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-backports/main Sources [2,480 B]

Get:23 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-backports/main amd64 Packages [3,500 B]

Get:24 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-backports/universe amd64 Packages [3,820 B]

Get:25 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety-backports/universe Translation-en [1,592 B]

Get:26 http://archive.canonical.com/ubuntu yakkety/partner amd64 Packages [2,480 B]

Get:27 http://security.ubuntu.com/ubuntu yakkety-security/main Sources [47.7 kB]

Get:28 https://apt.dockerproject.org/repo ubuntu-yakkety/main amd64 Packages [2,453 B]

Get:29 http://security.ubuntu.com/ubuntu yakkety-security/universe Sources [20.7 kB]

Get:30 http://security.ubuntu.com/ubuntu yakkety-security/multiverse Sources [1,140 B]

Get:31 http://security.ubuntu.com/ubuntu yakkety-security/restricted Sources [2,292 B]

Get:32 http://security.ubuntu.com/ubuntu yakkety-security/main amd64 Packages [150 kB]

Get:33 http://security.ubuntu.com/ubuntu yakkety-security/main Translation-en [68.0 kB]

Get:34 http://security.ubuntu.com/ubuntu yakkety-security/universe amd64 Packages [77.2 kB]

Get:35 http://security.ubuntu.com/ubuntu yakkety-security/universe Translation-en [47.3 kB]

Get:36 http://security.ubuntu.com/ubuntu yakkety-security/multiverse amd64 Packages [2,832 B]

Fetched 10.8 MB in 2s (4,206 kB/s)

Reading package lists... Done

Reading package lists...

Building dependency tree...

Reading state information...

The following additional packages will be installed:

aufs-tools cgroupfs-mount libltdl7

The following NEW packages will be installed:

aufs-tools cgroupfs-mount docker-engine libltdl7

0 upgraded, 4 newly installed, 0 to remove and 37 not upgraded.

Need to get 21.2 MB of archives.

After this operation, 111 MB of additional disk space will be used.

Get:1 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety/universe amd64 aufs-tools amd64 1:3.2+20130722-1.1ubuntu1 [92.9 kB]

Get:2 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety/universe amd64 cgroupfs-mount all 1.3 [5,778 B]

Get:3 http://us-west1.gce.archive.ubuntu.com/ubuntu yakkety/main amd64 libltdl7 amd64 2.4.6-1 [38.6 kB]

Get:4 https://apt.dockerproject.org/repo ubuntu-yakkety/main amd64 docker-engine amd64 17.05.0~ce-0~ubuntu-yakkety [21.1 MB]

Fetched 21.2 MB in 1s (19.8 MB/s)

Selecting previously unselected package aufs-tools.

(Reading database ... 63593 files and directories currently installed.)

Preparing to unpack .../aufs-tools_1%3a3.2+20130722-1.1ubuntu1_amd64.deb ...

Unpacking aufs-tools (1:3.2+20130722-1.1ubuntu1) ...

Selecting previously unselected package cgroupfs-mount.

Preparing to unpack .../cgroupfs-mount_1.3_all.deb ...

Page 75: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.75https://docs.citrix.com

Unpacking cgroupfs-mount (1.3) ...

Selecting previously unselected package libltdl7:amd64.

Preparing to unpack .../libltdl7_2.4.6-1_amd64.deb ...

Unpacking libltdl7:amd64 (2.4.6-1) ...

Selecting previously unselected package docker-engine.

Preparing to unpack .../docker-engine_17.05.0~ce-0~ubuntu-yakkety_amd64.deb ...

Unpacking docker-engine (17.05.0~ce-0~ubuntu-yakkety) ...

Setting up aufs-tools (1:3.2+20130722-1.1ubuntu1) ...

Processing triggers for ureadahead (0.100.0-19) ...

Setting up cgroupfs-mount (1.3) ...

Processing triggers for libc-bin (2.24-3ubuntu2) ...

Processing triggers for systemd (231-9ubuntu4) ...

Setting up libltdl7:amd64 (2.4.6-1) ...

Processing triggers for man-db (2.7.5-1) ...

Setting up docker-engine (17.05.0~ce-0~ubuntu-yakkety) ...

Created symlink /etc/systemd/system/multi-user.target.wants/docker.service → /lib/systemd/system/docker.service.

Created symlink /etc/systemd/system/sockets.target.wants/docker.socket → /lib/systemd/system/docker.socket.

Processing triggers for ureadahead (0.100.0-19) ...

Processing triggers for libc-bin (2.24-3ubuntu2) ...

Processing triggers for systemd (231-9ubuntu4) ...

+ sudo -E sh -c docker version

Client:

Version: 17.05.0-ce

API version: 1.29

Go version: go1.7.5

Git commit: 89658be

Built: Thu May 4 22:15:36 2017

OS/Arch: linux/amd64

Server:

Version: 17.05.0-ce

API version: 1.29 (minimum version 1.12)

Go version: go1.7.5

Git commit: 89658be

Built: Thu May 4 22:15:36 2017

OS/Arch: linux/amd64

Experimental: false

ルートユーザーではないユーザーがDockerを使用する場合は、以下のようなコマンドを使用してユーザーを「docker」グループに追加することを検討してください。

sudo usermod -aG docker albert_lee

この設定を有効にするには、一度ログアウトしてからログインし直す必要があります。

警告:ユーザーを「docker」グループに追加すると、そのユーザーにはDockerホストでルート権限を取得できるコンテナ実行権限が付与されます。

詳細については、「https://docs.docker.com/engine/security/security/#docker-daemon-attack-surface

」を参照してください。

$

$ sudo docker info

Page 76: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.76https://docs.citrix.com

Containers: 0

Running: 0

Paused: 0

Stopped: 0

Images: 0

Server Version: 17.05.0-ce

Storage Driver: aufs

Root Dir: /var/lib/docker/aufs

Backing Filesystem: extfs

Dirs: 0

Dirperm1 Supported: true

Logging Driver: json-file

Cgroup Driver: cgroupfs

Plugins:

Volume: local

Network: bridge host macvlan null overlay

Swarm: inactive

Runtimes: runc

Default Runtime: runc

Init Binary: docker-init

containerd version: 9048e5e50717ea4497b757314bad98ea3763c145

runc version: 9c2d8d184e5da67c95d601382adf14862e4f2228

init version: 949e6fa

Security Options:

apparmor

seccomp

Profile: default

Kernel Version: 4.8.0-51-generic

Operating System: Ubuntu 16.10

OSType: linux

Architecture: x86_64

CPUs: 1

Total Memory: 3.613GiB

Name: docker-7

ID: R5TW:VKXK:EKGR:GHWM:UNU4:LPJH:IQY5:X77G:NNRQ:HWBY:LIUD:4ELQ

Docker Root Dir: /var/lib/docker

Debug Mode (client): false

Debug Mode (server): false

Registry: https://index.docker.io/v1/

Experimental: false

Insecure Registries:

127.0.0.0/8

Live Restore Enabled: false

WARNING: No swap limit support

$

$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE

$

$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

Page 77: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.77https://docs.citrix.com

$

手順2:Dockerインスタンスと通信するリモートAPIを構成する

Dockerインスタンスと通信するAPI用に4243ポートを開放します。これはNetScaler MASがDockerインスタンスと通信するために必要です。

$

$ cd /etc/systemd/system$ sudo vi docker-tcp.socket$

$ cat docker-tcp.socket [Unit]

Description=Docker Socket for the API [Socket]ListenStream=4243BindIPv6Only=both Service=docker.service [Install]WantedBy=sockets.target $

$ sudo systemctl enable docker-tcp.socketCreated symlink /etc/systemd/system/sockets.target.wants/docker-tcp.socket → /etc/systemd/system/docker-tcp.socket.

$ sudo systemctl enable docker.socket$ sudo systemctl stop docker$ sudo systemctl start docker-tcp.socket$ sudo systemctl start docker$ sudo systemctl status docker● docker.service - Docker Application Container Engine

Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)

Active: active (running) since Wed 2017-05-31 12:52:17 UTC; 2s ago

Docs: https://docs.docker.com

Main PID: 4133 (dockerd)

Tasks: 16 (limit: 4915)

Memory: 30.1M

CPU: 184ms

CGroup: /system.slice/docker.service

├─4133 /usr/bin/dockerd -H fd://

└─4137 docker-containerd -l unix:///var/run/docker/libcontainerd/docker-containerd.sock --metrics-interval=0 --start-timeout 2m -

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.300890402Z" level=warning msg="Your kernel does not support

cgroup rt peri

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.301079754Z" level=warning msg="Your kernel does not support

cgroup rt runt

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.301681794Z" level=info msg="Loading containers: start."

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.417539064Z" level=info msg="Default bridge (docker0) is assigned

with an I

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.465011600Z" level=info msg="Loading containers: done."

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.484747909Z" level=info msg="Daemon has completed initialization"

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.485119478Z" level=info msg="Docker daemon" commit=89658be

Page 78: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.78https://docs.citrix.com

graphdriver=aufs

May 31 12:52:17 docker-7 systemd[1]: Started Docker Application Container Engine.

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.503832254Z" level=info msg="API listen on /var/run/docker.sock"

May 31 12:52:17 docker-7 dockerd[4133]: time="2017-05-31T12:52:17.504061522Z" level=info msg="API listen on [::]:4243"

$

(external)$ curl 104 .199.209.157:4243/version{"Version":"17.05.0-

ce","ApiVersion":"1.29","MinAPIVersion":"1.12","GitCommit":"89658be","GoVersion":"go1.7.5","Os":"linux","Arch":"amd64","KernelVersion":"4.8.0-

52-generic","BuildTime":"2017-05-04T22:15:36.071254972+00:00"}

(external)$

手順3:NetScaler CPXイメージをインストールする

Docker App StoreからNetScaler CPXイメージを取得します。CPX ExpressとCPXは同じイメージであることに注意してください。NetScaler

MASによってライセンスを付与されインストールされると、イメージはパフォーマンスが1Gbpsの完全なCPXインスタンスになります。ライセンスが付与されないと、イメージは20Mbpsと250 SSL接続をサポートするCPX Expressインスタンスになります。

$ sudo docker pull store/citrix/netscalercpx:12.0-41.1612.0-41.16: Pulling from store/citrix/netscalercpx

4e1f679e8ab4: Pull complete

a3ed95caeb02: Pull complete

2931a926d44b: Pull complete

362cd40c5745: Pull complete

d10118725a7a: Pull complete

1e570419a7e5: Pull complete

d19e06114233: Pull complete

d3230f008ffd: Pull complete

22bdb10a70ec: Pull complete

1a5183d7324d: Pull complete

241868d4ebff : Pull complete

3f963e7ae2fc: Pull complete

fd254cf1ea7c: Pull complete

33689c749176: Pull complete

59c27bad28f5: Pull complete

588f5003e10f: Pull complete

Digest: sha256:31a65cfa38833c747721c6fbc142faec6051e5f7b567d8b212d912b69b4f1ebe

Status: Downloaded newer image for store/citrix/netscalercpx:12.0-41.16

$

$ sudo docker imagesREPOSITORY TAG IMAGE ID CREATED SIZE

store/citrix/netscalercpx 12.0-41.16 6fa57c38803f 3 weeks ago 415MB

$

手順4:CPXインスタンスを作成する

DockerホストにCPXイメージをインストールします。以下の例に示すように、特定のサービス用にポートを開放してNetScaler MASのIPアドレスを指定します。

Page 79: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.79https://docs.citrix.com

bash-2.05b# CHOST=${1:-localhost}bash-2.05b# echo | openssl s_client -connect $CHOST:443 | openssl x509 -fingerprint -noout | cut -d'=' -f2depth=0 C = US, ST = California, L = San Jose, O = Citrix NetScaler, OU = Internal, CN = Test Only Cert

verify error:num=18:self signed certificate

verify return:1

depth=0 C = US, ST = California, L = San Jose, O = Citrix NetScaler, OU = Internal, CN = Test Only Cert

verify return:1

DONE

24:AA:8B:91:7B:72:5E:6E:C1:FD:86:FA:09:B6:42:49:FC:1E:86:A4

bash-2.05b#

$ sudo docker run -dt -p 50000:88 -p 5080:80 -p 5022:22 -p 5443:443 -p 5163:161/udp -e NS_HTTP_PORT=5080 -eNS_HTTPS_PORT=5443 -e NS_SSH_PORT=5022 -e NS_SNMP_PORT=5163 -e EULA=yes -e LS_IP=xx.xx.xx.xx -e PLATFORM=CP1000--privileged=true --ulimit core=-1 -e NS_MGMT_SERVER=xx.xx.xx.xx:xxxx -eNS_MGMT_FINGER_PRINT=24:AA:8B:91:7B:72:5E:6E:C1:FD:86:FA:09:B6:42:49:FC:1E:86:A4 --env NS_ROUTABLE=false --envHOST=104.199.209.157 store/citrix/netscalercpx:12.0-41.1644ca1c6c0907e17a10ffcb9ffe33cd3e9f71898d8812f816e714821870fa3538

$

$ sudo docker psCONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES

44ca1c6c0907 store/citrix/netscalercpx:12.0-41.16 "/bin/sh -c 'bash ..." 19 seconds ago Up 17 seconds 0.0.0.0:5022->22/tcp, 0.0.0.0:5080-

>80/tcp, 0.0.0.0:50000->88/tcp, 0.0.0.0:5163->161/udp, 0.0.0.0:5443->443/tcp gifted_perlman

$

$ ssh -p 5022 root@localhostroot@localhost's password:

Welcome to nsoslx 1.0 (GNU/Linux 4.8.0-52-generic x86_64)

* Documentation: https://www.citrix.com/

Last login: Mon Jun 5 18:58:51 2017 from xx.xx.xx.xx

root@44ca1c6c0907:~#

root@44ca1c6c0907:~#

root@44ca1c6c0907:~# cli_script .sh 'show ns ip'exec: show ns ip

Ipaddress Traffic Domain Type Mode Arp Icmp Vserver State

--------- -------------- ---- ---- --- ---- ------- ------

1) 172.17.0.2 0 NetScaler IP Active Enabled Enabled NA Enabled

2) 192.0.0.1 0 SNIP Active Enabled Enabled NA Enabled

Done

root@44ca1c6c0907:~# cli_script .sh 'show licenseserver'exec: show licenseserver

1) ServerName: xx.xx.xx.xxPort: 27000 Status: 1 Grace: 0 Gptimeleft: 0

Done

root@44ca1c6c0907:~# cli_script.sh 'show capacity'

exec: show capacity

Actualbandwidth: 1000 Platform: CP1000 Unit: Mbps Maxbandwidth: 3000 Minbandwidth: 20 Instancecount: 0

Done

root@44ca1c6c0907:~#

$ sudo iptables -t nat -L -nChain PREROUTING (policy ACCEPT)

target prot opt source destination

DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL

Page 80: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.80https://docs.citrix.com

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:443

MASQUERADE udp -- 172.17.0.2 172.17.0.2 udp dpt:161

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:88

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:80

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:22

Chain DOCKER (2 references)

target prot opt source destination

RETURN all -- 0.0.0.0/0 0.0.0.0/0

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5443 to:172.17.0.2:443

DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5163 to:172.17.0.2:161

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:50000 to:172.17.0.2:88

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5080 to:172.17.0.2:80

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5022 to:172.17.0.2:22

$

手順5:NetScaler MASを使用してNetScaler CPXにライセンスを付与する

NetScaler MASがオンプレミスで実行中であれば、CPXがMASと通信して情報を送信していることを確認できるはずです。以下の図は、CPXがNetScaler MASからライセンスを取得している様子を示しています。

Page 81: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.81https://docs.citrix.com

Page 82: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.82https://docs.citrix.com

手順6:NetScaler CPXで負荷分散サービスを構成し、その構成を確認する

はじめに、DockerホストにNGINX Webサーバーをインストールします。次に、NetScaler CPXで負荷分散を構成して2つのWebサーバーに負荷を分散し、その構成をテストします。

a) NGINX Webサーバーをインストールする

以下の例に示したコマンドを使用して、NGINX Webサーバーをインストールします。

$ sudo docker pull nginxUsing default tag: latest

latest: Pulling from library/nginx

Digest: sha256:41ad9967ea448d7c2b203c699b429abe1ed5af331cd92533900c6d77490e0268

Status: Image is up to date for nginx:latest

$ sudo docker run -d -p 81:80 nginx098a77974818f451c052ecd172080a7d45e446239479d9213cd4ea6a3678616f

$ sudo docker run -d -p 82:80 nginx

Page 83: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.83https://docs.citrix.com

bbdac2920bb4085f70b588292697813e5975389dd546c0512daf45079798db65

$ sudo iptables -t nat -L -nChain PREROUTING (policy ACCEPT)

target prot opt source destination

DOCKER all -- 0.0.0.0/0 0.0.0.0/0 ADDRTYPE match dst-type LOCAL

Chain INPUT (policy ACCEPT)

target prot opt source destination

Chain OUTPUT (policy ACCEPT)

target prot opt source destination

DOCKER all -- 0.0.0.0/0 !127.0.0.0/8 ADDRTYPE match dst-type LOCAL

Chain POSTROUTING (policy ACCEPT)

target prot opt source destination

MASQUERADE all -- 172.17.0.0/16 0.0.0.0/0

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:443

MASQUERADE udp -- 172.17.0.2 172.17.0.2 udp dpt:161

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:88

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:80

MASQUERADE tcp -- 172.17.0.2 172.17.0.2 tcp dpt:22

MASQUERADE tcp -- 172.17.0.3 172.17.0.3 tcp dpt:80

MASQUERADE tcp -- 172.17.0.4 172.17.0.4 tcp dpt:80

Chain DOCKER (2 references)

target prot opt source destination

RETURN all -- 0.0.0.0/0 0.0.0.0/0

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5443 to:172.17.0.2:443

DNAT udp -- 0.0.0.0/0 0.0.0.0/0 udp dpt:5163 to:172.17.0.2:161

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:50000 to:172.17.0.2:88

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5080 to:172.17.0.2:80

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:5022 to:172.17.0.2:22

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:81 to:172.17.0.3:80

DNAT tcp -- 0.0.0.0/0 0.0.0.0/0 tcp dpt:82 to:172.17.0.4:80

$

b) CPXで負荷分散を構成し、両方のWebサービスに負荷が分散されていることを確認する

$ ssh -p 5022 root@localhostroot@localhost's password:

Welcome to nsoslx 1.0 (GNU/Linux 4.8.0-52-generic x86_64)

* Documentation: https://www.citrix.com/

Last login: Mon Jun 5 18:58:54 2017 from 172.17.0.1

root@44ca1c6c0907:~#

root@44ca1c6c0907:~#

root@44ca1c6c0907:~#

root@44ca1c6c0907:~#

root@44ca1c6c0907:~# cli_script .sh "add service web1 172.17.0.3 HTTP 80"exec: add service web1 172.17.0.3 HTTP 80

Done

root@44ca1c6c0907:~# cli_script .sh "add service web2 172.17.0.4 HTTP 80"exec: add service web2 172.17.0.4 HTTP 80

Page 84: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.84https://docs.citrix.com

Done

root@44ca1c6c0907:~# cli_script .sh "add lb vserver cpx-vip HTTP 172.17.0.2 88" exec: add lb vserver cpx-vip HTTP 172.17.0.2 88

Done

root@44ca1c6c0907:~# cli_script .sh "bind lb vserver cpx-vip web1"exec: bind lb vserver cpx-vip web1

Done

root@44ca1c6c0907:~# cli_script .sh "bind lb vserver cpx-vip web2"exec: bind lb vserver cpx-vip web2

Done

root@44ca1c6c0907:~#

root@44ca1c6c0907:~# cli_script .sh 'show lb vserver cpx-vip'exec: show lb vserver cpx-vip

cpx-vip (172.17.0.2:88) - HTTP Type: ADDRESS

State: UP

Last state change was at Mon Jun 5 19:01:49 2017

Time since last state change: 0 days, 00:00:42.620

Effective State: UP

Client Idle T imeout: 180 sec

Down state flush: ENABLED

Disable Primary Vserver On Down : DISABLED

Appflow logging: ENABLED

Port Rewrite : DISABLED

No. of Bound Services : 2 (Total) 2 (Active)

Configured Method: LEASTCONNECTION

Current Method: Round Robin, Reason: A new service is bound BackupMethod: ROUNDROBIN

Mode: IP

Persistence: NONE

Vserver IP and Port insertion: OFF

Push: DISABLED Push VServer:

Push Multi Clients: NO

Push Label Rule: none

L2Conn: OFF

Skip Persistency: None

Listen Policy: NONE

IcmpResponse: PASSIVE

RHIstate: PASSIVE

New Service Startup Request Rate: 0 PER_SECOND, Increment Interval: 0

Mac mode Retain Vlan: DISABLED

DBS_LB: DISABLED

Process Local: DISABLED

Traffic Domain: 0

TROFS Persistence honored: ENABLED

Retain Connections on Cluster: NO

2) web1 (172.17.0.3: 80) - HTTP State: UP Weight: 1

3) web2 (172.17.0.4: 80) - HTTP State: UP Weight: 1

Done

root@44ca1c6c0907:~#

(external)$ curl 104 .199.209.157:50000

Page 85: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.85https://docs.citrix.com

Welcome to nginx!

If you see this page, the nginx web server is successfully installed and

working. Further configuration is required.

For online documentation and support please refer to

nginx.org.

Commercial support is available at

nginx.com.

Thank you for using nginx.

(external)$

(external)$ for i in {1..100} ; do curl http://104 .199.209.157:50000 -o /dev/null ; done

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1767 0 --:--:-- --:--:-- --:--:-- 1768

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1893 0 --:--:-- --:--:-- --:--:-- 1894

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1884 0 --:--:-- --:--:-- --:--:-- 1883

Page 86: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.86https://docs.citrix.com

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1917 0 --:--:-- --:--:-- --:--:-- 1924

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1877 0 --:--:-- --:--:-- --:--:-- 1883

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1852 0 --:--:-- --:--:-- --:--:-- 1848

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1860 0 --:--:-- --:--:-- --:--:-- 1865

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1887 0 --:--:-- --:--:-- --:--:-- 1888

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1802 0 --:--:-- --:--:-- --:--:-- 1800

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1902 0 --:--:-- --:--:-- --:--:-- 1906

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1843 0 --:--:-- --:--:-- --:--:-- 1848

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1862 0 --:--:-- --:--:-- --:--:-- 1860

% Total % Received % Xferd Average Speed Time Time Time Current

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1806 0 --:--:-- --:--:-- --:--:-- 1810

% Total % Received % Xferd Average Speed Time Time Time Current

Page 87: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.87https://docs.citrix.com

Dload Upload Total Spent Left Speed

100 612 100 612 0 0 1702 0 --:--:-- --:--:-- --:--:-- 1704

(external)$

root@44ca1c6c0907:~# cli_script .sh 'stat lb vserver cpx-vip'

exec: stat lb vserver cpx-vip

Virtual Server Summary

vsvrIP port Protocol State Health actSvcs

cpx-vip 172.17.0.2 88 HTTP UP 100 2

inactSvcs

cpx-vip 0

Virtual Server Statistics

Rate (/s) Total

Vserver hits 0 101

Requests 0 101

Responses 0 101

Request bytes 0 8585

Response bytes 0 85850

Total Packets rcvd 0 708

Total Packets sent 0 408

Current client connections -- 0

Current Client Est connections -- 0

Current server connections -- 0

Current Persistence Sessions -- 0

Requests in surge queue -- 0

Requests in vserver's surgeQ -- 0

Requests in service's surgeQs -- 0

Spill Over Threshold -- 0

Page 88: NetScaler CPX 12 - Citrix Docs · タンドアロンインスタンスとしてDockerホストで展開できます。 NetScaler CPXインスタンスの最大スループットは1Gbpsです。

© 1999-2017 Citrix Systems, Inc. All rights reserved. p.88https://docs.citrix.com

Spill Over Hits -- 0

Labeled Connection -- 0

Push Labeled Connection -- 0

Deferred Request 0 0

Invalid Request/Response -- 0

Invalid Request/Response Dropped -- 0

Vserver Down Backup Hits -- 0

Current Multipath TCP sessions -- 0

Current Multipath TCP subflows -- 0

Apdex for client response times. -- 1.00

Average client TTLB -- 0

web1 172.17.0.3 80 HTTP UP 51 0/s

web2 172.17.0.4 80 HTTP UP 50 0/s

Done

root@44ca1c6c0907:~#