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

ソフトウェア要件

Kubernetes ディストリビューション Kubernetes バージョン コンテナネットワークインターフェイス (CNI) CPX バージョン CIC バージョン NetScaler ADM バージョン NetScaler ADM エージェントバージョン
オープンソース v1.16.3 フランネル 13.0–41.28 1.5.25 13.0–47.22 13.0–47.22

はじめに

次のシナリオを使用して、サービスグラフを表示できます。

  • 同じネットワーク上のNetScaler ADMとKubernetesクラスター(たとえば、Citrix Hypervisor でホストされているNetScaler ADMとKubernetesクラスター)。

  • NetScaler ADM およびKubernetesクラスタが別のネットワーク上にインストールされている。このシナリオでは、 オンプレミスエージェントを設定し 、Kubernetes クラスタがホストされているネットワークにエージェントを登録する必要があります。

NetScaler ADM でサービスグラフを使用するには、次の項目があることを確認してください。

ソフトウェア要件

Kubernetes ディストリビューション Kubernetes バージョン コンテナネットワークインターフェイス (CNI) CPX バージョン CIC バージョン NetScaler ADM バージョン NetScaler ADM エージェントバージョン
オープンソース v1.16.3 フランネル 13.0–41.28 1.5.25 13.0–47.22 13.0–47.22

はじめに

次のシナリオを使用して、サービスグラフを表示できます。

  • 同じネットワーク上のNetScaler ADMとKubernetesクラスター(たとえば、Citrix Hypervisor でホストされているNetScaler ADMとKubernetesクラスター)。

  • NetScaler ADM およびKubernetesクラスタが別のネットワーク上にインストールされている。このシナリオでは、 オンプレミスエージェントを設定し 、Kubernetes クラスタがホストされているネットワークにエージェントを登録する必要があります。

NetScaler ADM でサービスグラフを使用するには、次の項目があることを確認してください。

NetScaler ADM で静的ルートを構成する

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

オンプレミスエージェントを使用している場合は、必ずエージェントにスタティックルートを設定してください。SSHクライアントを使用してNetScaler ADMエージェントにログオンし、静的ルートを構成します。

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クライアントを使用して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を使用して構成を検証します

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

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

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

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

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

CPX 58.x 以降を使用している場合は、ADM エージェントへの登録時に nsroot 以外のパスワードを使用する必要があります。セキュリティを確保するために、NetScaler ADMエージェント61.x以降のリリースでは、必須のパスワード変更が必要です。NetScaler ADMエージェントが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_PRIN T:NetScaler ADM におけるCPXの認証を示します。指紋を取得するには:

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

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

      Fingerprint

      注:

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

      指紋エージェント

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

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

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

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

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

NetScaler ADMでVPXまたはSDXまたはMPXまたはBLXインスタンスを追加する

サービスグラフで階層1のADCインスタンス分析を取得するには、NetScaler ADMでVPX/SDX/MPX/BLXインスタンスを追加し、 Web Insightを有効にする必要があります。

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

  2. [ Add ] オプションをクリックして、インスタンスを追加します。詳しくは、「 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 サーバーの URL

      2. 「Kubernetes マスターが実行中です」と表示される 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>を実行してください。

        トークンの生成

    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 を展開して、ADM に CPX を登録する

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

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

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

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

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

NetScaler ADM でKubernetesクラスタを追加した後、ライセンス取得のために仮想サーバーを自動的に選択する必要があります。Service Graph でデータを表示するには、仮想サーバのライセンスが必要です。仮想サーバを自動選択するには、次の手順で行います。

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

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

    仮想サーバを自動選択

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

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

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

    [アナリティクス設定] ページが表示されます。

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

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

    web-transaction-settings

  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を使用してマイクロサービスにアクセスできるようになりました