デュアルティアまたはサービスメッシュライトトポロジの設定に関する詳細な手順
ソフトウェア要件
| Kubernetesディストリビューション | Kubernetesバージョン | コンテナネットワークインターフェース (CNI) | CPXバージョン | CICバージョン | NetScaler ADMバージョン | NetScalerエージェントバージョン |
|---|---|---|---|---|---|---|
| オープンソース | v1.16.3 | Flannel | 13.0–41.28 | 1.5.25 | 13.0–47.22 | 13.0–47.22 |
開始する前に
以下のシナリオを使用してサービスグラフを表示できます。
-
NetScaler ADMとKubernetesクラスターが同じネットワーク上にある場合 (例: NetScaler ADMとKubernetesクラスターがCitrix Hypervisor™でホストされている場合)。
-
NetScaler ADMとKubernetesクラスターが異なるネットワーク上にある場合。このシナリオでは、オンプレミスエージェントを設定し、Kubernetesクラスターがホストされているネットワークにエージェントを登録する必要があります。
NetScaler® ADMでサービスグラフを使用するには、以下を確認してください。
-
プロキシとしてNetScaler CPXを使用するKubernetesクラスター。詳細については、NetScaler Ingress Controllerを参照してください。
-
NetScaler ADMとNetScaler CPX間の通信を有効にするために、NetScaler ADMで静的ルートを設定済みであること。
-
GitHubリポジトリからサンプル展開ファイルをダウンロード済みであること。
-
NetScaler ADMへのCPXの登録を成功させるために、CPX YAMLファイルに必要なパラメータを追加済みであること。
-
NetScaler ADMにKubernetesクラスターを追加済みであること。
-
サンプルマイクロサービスアプリケーションを展開済みであること。
-
仮想サーバーをライセンスするために仮想サーバーの自動選択を有効済みであること。
-
NetScalerエージェントがHTTPトランザクションを取得できるように、Webトランザクション設定をすべてに変更済みであること。
-
NetScalerエージェントがTCPメトリックを取得できるように、Istream.confファイルを更新し、TCP設定をすべてに変更済みであること。
ソフトウェア要件
| Kubernetesディストリビューション | Kubernetesバージョン | コンテナネットワークインターフェース (CNI) | CPXバージョン | CICバージョン | NetScaler ADMバージョン | NetScalerエージェントバージョン |
|---|---|---|---|---|---|---|
| オープンソース | v1.16.3 | Flannel | 13.0–41.28 | 1.5.25 | 13.0–47.22 | 13.0–47.22 |
開始する前に
以下のシナリオを使用してサービスグラフを表示できます。
-
NetScaler ADMとKubernetesクラスターが同じネットワーク上にある場合 (例: NetScaler ADMとKubernetesクラスターがCitrix Hypervisorでホストされている場合)。
-
NetScaler ADMとKubernetesクラスターが異なるネットワーク上にある場合。このシナリオでは、オンプレミスエージェントを設定し、Kubernetesクラスターがホストされているネットワークにエージェントを登録する必要があります。
NetScaler ADMでサービスグラフを使用するには、以下を確認してください。
-
プロキシとしてNetScaler CPXを使用するKubernetesクラスター。詳細については、NetScaler Ingress Controllerを参照してください。
-
NetScaler ADMとNetScaler CPX間の通信を有効にするために、NetScaler ADMで静的ルートを設定済みであること。
-
GitHubリポジトリからサンプル展開ファイルをダウンロード済みであること。
-
NetScaler ADMへのCPXの登録を成功させるために、CPX YAMLファイルに必要なパラメータを追加済みであること。
-
NetScaler ADMにKubernetesクラスターを追加済みであること。
-
サンプルマイクロサービスアプリケーションを展開済みであること。
-
仮想サーバーをライセンスするために仮想サーバーの自動選択を有効済みであること。
-
NetScalerエージェントがHTTPトランザクションを取得できるように、Webトランザクション設定をすべてに変更済みであること。
-
NetScalerエージェントがTCPメトリックを取得できるように、Istream.confファイルを更新し、TCP設定をすべてに変更済みであること。
NetScaler ADMでの静的ルートの設定
Kubernetesクラスター内では、すべてのコンテナ化されたPodがオーバーレイネットワークを使用します。これらのプライベートIPアドレスを使用して直接通信を確立することはできません。NetScaler ADMからKubernetesクラスターへの通信を有効にするには、NetScaler ADMで静的ルーティングを設定する必要があります。
注: オンプレミスエージェントを使用している場合は、エージェントで静的ルートを設定してください。SSHクライアントを使用してNetScalerエージェントにログオンし、静的ルートを設定します。
Kubernetesクラスターに以下のIPアドレスがあるとします。
-
Kubernetesマスター – 101.xx.xx.112
-
Kubernetesワーカー 1 – 101.xx.xx.111
-
Kubernetesワーカー 2 – 101.xx.xx.110
Kubernetesマスターで、静的ルーティングを行うためのPodネットワークを識別するには、次のコマンドを実行します。
kubectl get nodes -o jsonpath="{range .items[*]}{'podNetwork: '}{.spec.podCIDR}{'\t'}{'gateway: '}{.status.addresses[0].address}{'\n'}{end}"
コマンド実行後の出力例を以下に示します。

-
SSHクライアントを使用してNetScaler ADMにログオンします。
-
コマンド
route add -net <public IP address range> <Kubernetes IP address>を使用して静的ルーティングを設定します。例:
route add -net 192.168.0.0/24 101.xx.xx.112route add -net 192.168.1.0/24 101.xx.xx.111route add -net 192.168.2.0/24 101.xx.xx.110 -
netstat -rnを使用して設定を確認します。
-
これらのルートコマンドを
/mpsconfig/svm.confファイルに追加します。-
NetScaler ADMで、次のコマンドを使用して svm.conf ファイルにアクセスします。
vim /mpsconfig/svm.conf -
svm.conf ファイルに静的ルートを追加します。
例:
route add -net 192.168.0.0/24 101.xx.xx.112。
-
GitHubからのサンプル展開ファイルのダウンロード
-
マスターノードで、コマンド git clone
https://github.com/citrix/citrix-k8s-ingress-controller.gitを使用してGitHubリポジトリをクローンします。 -
YAMLにアクセスするには:
cd citrix-k8s-ingress-controller/example/servicegraph-demo/
CPX YAMLファイルへのパラメータの追加
注: CPX 58.x以降を使用している場合、ADMエージェントに登録する際にnsroot以外のパスワードを使用する必要があります。セキュリティを確保するため、NetScalerエージェント61.x以降のリリースではパスワードの変更が必須です。NetScalerエージェントが61.x以降のバージョンにアップグレードされている場合は、CPX 58.x以降のビルドを使用していることを確認してください。
NetScaler ADMへのCPX登録を確実にするために、cpx.yaml ファイルに以下のパラメータを含める必要があります。
- name: "NS_MGMT_SERVER"
value: "xx.xx.xx.xx"
- name: "NS_MGMT_FINGER_PRINT"
value: "xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx"
- name: "NS_HTTP_PORT"
value: "9080"
- name: "NS_HTTPS_PORT"
value: 9443"
- name: "NS_MGMT_USER"
value: "nsroot"
- name: "NS_MGMT_PASS"
value: <your password>
- name: "LOGSTREAM_COLLECTOR_IP"
value: "xx.xx.xx.xx"
<!--NeedCopy-->
-
NS_MGMT_SERVER – NetScaler ADMのIPアドレスを示します。
注: ADMエージェントが使用されている場合、これはオンプレミスエージェントのIPアドレスを示します。
-
NS_MGMT_FINGER_PRINT – NetScaler ADMにおけるCPXの認証を示します。フィンガープリントを取得するには:
-
NetScaler ADMで、[設定] > [管理] に移動します。
-
[システム構成] で、[ADMフィンガープリントの表示] をクリックします。

注: オンプレミスエージェントを設定している場合は、[インフラストラクチャ] > [インスタンス] > [エージェント] に移動し、エージェントを選択して、[フィンガープリントの表示] をクリックします。

-
-
NS_HTTP_PORT – 通信用のHTTPポートを示します。
-
NS_HTTPS_PORT – 通信用のHTTPSポートを示します。
-
NS_MGMT_USER - ユーザー名を示します。
-
NS_MGMT_PASS - パスワードを示します。任意のパスワードを指定してください。
-
LOGSTREAM_COLLECTOR_IP – CPXからADMにログデータを転送するためにLogstreamプロトコルを有効にする必要があるNetScalerエージェントのIPアドレスを示します。
NetScaler ADMでのVPX、SDX、MPX、またはBLXインスタンスの追加
サービスグラフでティア1 ADCインスタンスの分析を取得するには、NetScaler ADMにVPX/SDX/MPX/BLXインスタンスを追加し、Web Insightを有効にする必要があります。
-
[インフラストラクチャ] > [インスタンス] > [NetScaler] に移動します。
-
インスタンスを追加するには、[追加] オプションをクリックします。詳細については、NetScaler ADMでのインスタンスの追加を参照してください。
-
インスタンスを追加した後、仮想サーバーを選択し、Web Insightを有効にします。詳細については、仮想サーバーでのライセンス管理と分析の有効化を参照してください。
NetScaler ADMでのKubernetesクラスターの追加
Kubernetesクラスターを追加するには:
-
管理者資格情報を使用してNetScaler ADMにログオンします。
-
[オーケストレーション] > [Kubernetes] > [クラスター] に移動します。 クラスターページが表示されます。
-
[追加] をクリックします。
-
[クラスターの追加] ページで、以下のパラメータを指定します。
-
名前 - 任意の名前を指定します。
-
APIサーバーURL - KubernetesマスターノードからAPIサーバーURLの詳細を取得できます。
-
Kubernetesマスターノードで、コマンド
kubectl cluster-infoを実行します。
-
「Kubernetes master is running at.」 に表示されるURLを入力します。
-
-
認証トークン - 認証トークンを指定します。認証トークンは、KubernetesクラスターとNetScaler ADM間の通信アクセスを検証するために必要です。認証トークンを生成するには:
Kubernetesマスターノードで:
-
以下のYAMLを使用してサービスアカウントを作成します。
apiVersion: v1 kind: ServiceAccount metadata: name: <name> namespace: <namespace> <!--NeedCopy--> -
kubectl create -f <yaml file>を実行します。サービスアカウントが作成されます。
-
kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name>を実行して、クラスターロールをサービスアカウントにバインドします。サービスアカウントはクラスター全体のアクセス権を持つようになります。
サービスアカウントの作成中にトークンが自動的に生成されます。
-
kubectl describe sa <name>を実行してトークンを表示します。 -
シークレット文字列を取得するには、
kubectl describe secret <token-name>を実行します。
-
-
リストからエージェントを選択します。
注: オンプレミスエージェントを使用している場合は、CPX YAMLに追加したのと同じエージェントを選択してください。
-
[作成] をクリックします。

-
サンプルマイクロサービスアプリケーションの展開
マスターノードで:
-
kubectl create -f namespace.yamlを実行して名前空間を作成します。 -
次のコマンドを使用して
hotdrinkマイクロサービス、イングレス、およびシークレットを展開します。kubectl create -f team_hotdrink.yaml -n sg-demokubectl create -f hotdrink-secret.yaml -n sg-demo
CPXの展開とADMへのCPXの登録
-
kubectl create -f rbac.yamlを実行してクラスターロールとクラスターバインディングを展開します。 -
kubectl create -f cpx.yaml -n sg-demoを実行してCPXを展開します。
展開後、CPXの登録は自動的に行われます。
ライセンス付与のための仮想サーバーの自動選択の有効化
注: 仮想サーバーライセンスが十分にあることを確認してください。詳細については、ライセンスを参照してください。
NetScaler ADMにKubernetesクラスターを追加した後、ライセンス付与のために仮想サーバーを自動選択するようにする必要があります。サービスグラフにデータを表示するには、仮想サーバーがライセンスされている必要があります。仮想サーバーを自動選択するには:
-
[設定] > [ライセンスと分析の構成] に移動します。
-
[仮想サーバーライセンスの概要] で、[仮想サーバーの自動選択] と [アドレス指定不可能な仮想サーバーの自動選択] を有効にします。

WebトランザクションとTCPトランザクション設定の有効化
Kubernetesクラスターを追加し、仮想サーバーの自動選択を有効にした後、Webトランザクション設定とTCPトランザクション設定をすべてに変更します。
-
[設定] > [分析設定] に移動します。
[分析設定] ページが表示されます。
-
[分析機能の有効化] をクリックします。
-
[Webトランザクション設定] で、[すべて] を選択します。
-
[TCPトランザクション設定] で、[すべて] を選択します。

-
[OK] をクリックします。
マイクロサービスへのトラフィックの送信
次に、NetScaler ADMにサービスグラフを表示させるために、マイクロサービスにトラフィックを送信する必要があります。
-
kubectl get svc -n sg-demoを実行して、NodePort経由でCPXを公開します。
-
etc/host ファイルを編集し、
hotdrink.beverages.comのドメインIPエントリを作成します。これで、
https://hotdrink.beverages.comを使用してマイクロサービスにアクセスできます。
この記事の概要
- ソフトウェア要件
- 開始する前に
- ソフトウェア要件
- 開始する前に
- NetScaler ADMでの静的ルートの設定
- GitHubからのサンプル展開ファイルのダウンロード
- CPX YAMLファイルへのパラメータの追加
- NetScaler ADMでのVPX、SDX、MPX、またはBLXインスタンスの追加
- NetScaler ADMでのKubernetesクラスターの追加
- サンプルマイクロサービスアプリケーションの展開
- CPXの展開とADMへのCPXの登録
- ライセンス付与のための仮想サーバーの自動選択の有効化
- WebトランザクションとTCPトランザクション設定の有効化
- マイクロサービスへのトラフィックの送信