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

デュアルティアまたはサービスメッシュライトトポロジを導入するための前提条件は、「 サービスグラフの設定」で確認できます。

NetScaler エージェントを構成する

KubernetesクラスターとNetScaler Console間の通信を有効にするには、エージェントをインストールして構成する必要があります。ハイパーバイザー、パブリッククラウドサービス(Microsoft Azure、AWS など)、または NetScaler インスタンスで利用可能な組み込みエージェント(高可用性デプロイに最適)を使用してエージェントを構成できます。

手順に従ってエージェントを設定します

  • 既存のエージェントを使用することもできます。

  • デフォルトでは、エージェントはNetScaler Consoleの最新ビルドに自動的にアップグレードされます。エージェントの詳細は、[ インフラストラクチャ] > [インスタンス] > [エージェント ] ページで確認できます。また、エージェントのアップグレードを実行する時刻を指定することもできます。詳細については、「 エージェントアップグレード設定の指定」を参照してください。

エージェントのスタティックルートを設定

Kubernetes クラスター内では、コンテナー化されたすべての Pod はオーバーレイネットワークを使用します。これらのプライベート IP アドレスを直接使用して通信を確立することはできません。NetScaler ConsoleからKubernetesクラスターへの通信を有効にするには、エージェントで静的ルーティングを構成する必要があります。

Kubernetes クラスターの次の IP アドレスがあるとします。

  • Kubernetes master – 101.xx.xx.112

  • Kubernetes worker 1 – 101.xx.xx.111

  • Kubernetes worker 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}"

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

コマンドの例

エージェントを正常に設定したら:

  1. SSH クライアントを使用して、エージェントにログオンします。

  2. shellを入力して Enter キーを押してbashに切り替えます

  3. コマンド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

  4. netstat -rnを使用して構成を検証します

    スタティックルーティング

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

    1. NetScaler エージェントで、次のコマンドを使用して 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 コマンドを使用して、マスターノードの git hub リポジトリをクローンします。

  2. YAML にアクセスするには:

    cd citrix-k8s-ingress-controller/example/servicegraph-demo/

CPX YAMLファイルにパラメータを追加する

CPX 58.x以降を使用している場合は、エージェントへの登録時に非nsrootパスワードを使用する必要があります。セキュリティを確保するために、NetScaler agent 61.x以降のリリースでは、必須のパスワード変更が必要です。NetScalerエージェントを61.xまたは最新バージョンにアップグレードする場合は、 CPX 58.x以降のビルドを使用する必要があります 。

CPXをNetScaler Consoleに登録するには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-->

CPX YAML ファイル

  • NS_MGMT_SERVER— エージェントの IP アドレスを示します

  • NS_MGMT_FINGER_PRINT— エージェントでの CPX の認証を示します。指紋を取得するには:

    1. NetScaler コンソールで、[ インフラストラクチャ] > [インスタンス] [エージェント] に移動します。

    2. エージェントを選択し、[ フィンガープリントの表示] をクリックします。

      Fingerprint

  • NS_HTTP_POR T:通信用のHTTPポートを示します。

  • NS_HTTPS_PORT :通信用のHTTPSポートを示します。

  • NS_MGMT_USER -ユーザー名を示します

  • NS_MGMT_PASS -パスワードを示します。お好みのパスワードを指定してください

  • LOGSTREAM_COLLECTOR_IP— CPXからNetScalerコンソールにログデータを転送するにはログストリームプロトコルを有効にする必要があるエージェントのIPアドレスを示します

VPX、SDX、MPX、または BLX インスタンスをNetScaler コンソールに追加する

サービスグラフでティア1のNetScalerインスタンス分析を取得するには、VPX/SDX/MPX/BLXインスタンスをNetScalerコンソールに追加し、Web Insightを有効にする必要があります。 VPX/SDX/MPX/BLXインスタンスからのウェブトランザクションの詳細を表示するには、NetScaler コンソール用ウェブインサイトを有効にする必要があります 。

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

  2. [ Add ] オプションをクリックして、インスタンスを追加します。詳しくは、「 NetScaler コンソールでのインスタンスの追加」を参照してください。

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

NetScaler コンソールにKubernetesクラスターを追加します

Kubernetesクラスタを追加するには、次の手順に従います。

  1. 管理者の資格情報を使用してNetScalerコンソールにログオンします。

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

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

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

    1. [名前]: 任意の名前を指定します。

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

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

        API サーバーの URL

      2. 「Kubernetes マスターが実行中です」と表示される URL を入力します。

    3. 認証トークン -認証トークンを指定します。認証トークンは、KubernetesクラスターとNetScalerコンソール間の通信へのアクセスを検証するために必要です。認証トークンを生成する手順は、次のとおりです。

      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>を実行してください。

        トークンの生成

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

      CPX YAMLで追加したのと同じエージェントを選択してください。

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

      クラスタの追加

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

マスターノードの場合:

  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を導入してNetScaler コンソールにCPXを登録する

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

  2. kubectl create -f cpx.yaml -n sg-demoを実行してCPXをデプロイします。

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

ライセンス用の仮想サーバの自動選択を有効にする

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

NetScaler ConsoleにKubernetesクラスターを追加したら、ライセンス対象として仮想サーバーを必ず自動選択する必要があります。サービスグラフにデータを表示するには、CPX仮想サーバのライセンスが必要です。仮想サーバを自動選択するには、次の手順で行います。

  1. 設定]>[NetScaler コンソールのライセンスと分析設定]に移動します。

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

    仮想サーバを自動選択

WebトランザクションとTCPトランザクション設定を有効にする

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

  1. [ 設定] > [アナリティクス設定]に移動します。

    設定 」ページが表示されます。

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

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

    web-transaction-settings

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

    TCP

  5. OK」をクリックします。

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

次に、トラフィックをマイクロサービスに送信して、NetScaler Consoleにサービスグラフを入力する必要があります。

  1. kubectl get svc -n sg-demo を実行して NodePort から CPX を公開します。

    NodePort

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

    これで、https://hotdrink.beverages.comを使用してマイクロサービスにアクセスできるようになりました