デュアルティアまたはサービスメッシュライトトポロジの設定に関する詳細な手順

ソフトウェア要件

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でサービスグラフを使用するには、以下を確認してください。

ソフトウェア要件

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

コマンド実行後の出力例を以下に示します。

Example command

  1. SSHクライアントを使用してNetScaler ADMにログオンします。

  2. コマンド route add -net <public IP address range> <Kubernetes IP address> を使用して静的ルーティングを設定します。

    例:

    route add -net 192.168.0.0/24 101.xx.xx.112

    route add -net 192.168.1.0/24 101.xx.xx.111

    route add -net 192.168.2.0/24 101.xx.xx.110

  3. netstat -rn を使用して設定を確認します。

    static routing

  4. これらのルートコマンドを /mpsconfig/svm.conf ファイルに追加します。

    1. NetScaler ADMで、次のコマンドを使用して svm.conf ファイルにアクセスします。

      vim /mpsconfig/svm.conf

    2. svm.conf ファイルに静的ルートを追加します。

      例: route add -net 192.168.0.0/24 101.xx.xx.112

GitHubからのサンプル展開ファイルのダウンロード

  1. マスターノードで、コマンド git clone https://github.com/citrix/citrix-k8s-ingress-controller.git を使用してGitHubリポジトリをクローンします。

  2. 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の認証を示します。フィンガープリントを取得するには:

    1. NetScaler ADMで、[設定] > [管理] に移動します。

    2. [システム構成] で、[ADMフィンガープリントの表示] をクリックします。

      Fingerprint

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

      Fingerprint agent

  • 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を有効にする必要があります。

  1. [インフラストラクチャ] > [インスタンス] > [NetScaler] に移動します。

  2. インスタンスを追加するには、[追加] オプションをクリックします。詳細については、NetScaler ADMでのインスタンスの追加を参照してください。

  3. インスタンスを追加した後、仮想サーバーを選択し、Web Insightを有効にします。詳細については、仮想サーバーでのライセンス管理と分析の有効化を参照してください。

NetScaler ADMでのKubernetesクラスターの追加

Kubernetesクラスターを追加するには:

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

  2. [オーケストレーション] > [Kubernetes] > [クラスター] に移動します。 クラスターページが表示されます。

  3. [追加] をクリックします。

  4. [クラスターの追加] ページで、以下のパラメータを指定します。

    1. 名前 - 任意の名前を指定します。

    2. APIサーバーURL - KubernetesマスターノードからAPIサーバーURLの詳細を取得できます。

      1. Kubernetesマスターノードで、コマンド kubectl cluster-info を実行します。

        API Server URL

      2. 「Kubernetes master is running at.」 に表示されるURLを入力します。

    3. 認証トークン - 認証トークンを指定します。認証トークンは、KubernetesクラスターとNetScaler ADM間の通信アクセスを検証するために必要です。認証トークンを生成するには:

      Kubernetesマスターノードで:

      1. 以下のYAMLを使用してサービスアカウントを作成します。

        apiVersion: v1
        kind: ServiceAccount
        metadata:
          name: <name>
          namespace: <namespace>
        <!--NeedCopy-->
        
      2. kubectl create -f <yaml file> を実行します。

        サービスアカウントが作成されます。

      3. kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name> を実行して、クラスターロールをサービスアカウントにバインドします。

        サービスアカウントはクラスター全体のアクセス権を持つようになります。

        サービスアカウントの作成中にトークンが自動的に生成されます。

      4. kubectl describe sa <name> を実行してトークンを表示します。

      5. シークレット文字列を取得するには、kubectl describe secret <token-name> を実行します。

        Generate token

    4. リストからエージェントを選択します。

      注: オンプレミスエージェントを使用している場合は、CPX YAMLに追加したのと同じエージェントを選択してください。

    5. [作成] をクリックします。

      add cluster

サンプルマイクロサービスアプリケーションの展開

マスターノードで:

  1. kubectl create -f namespace.yaml を実行して名前空間を作成します。

  2. 次のコマンドを使用して hotdrink マイクロサービス、イングレス、およびシークレットを展開します。

    kubectl create -f team_hotdrink.yaml -n sg-demo

    kubectl create -f hotdrink-secret.yaml -n sg-demo

CPXの展開とADMへのCPXの登録

  1. kubectl create -f rbac.yaml を実行してクラスターロールとクラスターバインディングを展開します。

  2. kubectl create -f cpx.yaml -n sg-demo を実行してCPXを展開します。

展開後、CPXの登録は自動的に行われます。

ライセンス付与のための仮想サーバーの自動選択の有効化

注: 仮想サーバーライセンスが十分にあることを確認してください。詳細については、ライセンスを参照してください。

NetScaler ADMにKubernetesクラスターを追加した後、ライセンス付与のために仮想サーバーを自動選択するようにする必要があります。サービスグラフにデータを表示するには、仮想サーバーがライセンスされている必要があります。仮想サーバーを自動選択するには:

  1. [設定] > [ライセンスと分析の構成] に移動します。

  2. [仮想サーバーライセンスの概要] で、[仮想サーバーの自動選択][アドレス指定不可能な仮想サーバーの自動選択] を有効にします。

    Auto-select virtual server

WebトランザクションとTCPトランザクション設定の有効化

Kubernetesクラスターを追加し、仮想サーバーの自動選択を有効にした後、Webトランザクション設定TCPトランザクション設定すべてに変更します。

  1. [設定] > [分析設定] に移動します。

    [分析設定] ページが表示されます。

  2. [分析機能の有効化] をクリックします。

  3. [Webトランザクション設定] で、[すべて] を選択します。

  4. [TCPトランザクション設定] で、[すべて] を選択します。

    TCP

  5. [OK] をクリックします。

マイクロサービスへのトラフィックの送信

次に、NetScaler ADMにサービスグラフを表示させるために、マイクロサービスにトラフィックを送信する必要があります。

  1. kubectl get svc -n sg-demo を実行して、NodePort経由でCPXを公開します。

    NodePort

  2. etc/host ファイルを編集し、hotdrink.beverages.com のドメインIPエントリを作成します。

    これで、https://hotdrink.beverages.com を使用してマイクロサービスにアクセスできます。