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

ソフトウェア要件

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

開始する前に

サービスグラフは、次のシナリオで表示できます。

  • NetScaler ConsoleとKubernetesクラスターが同じネットワーク上にある場合(例:NetScaler ConsoleとKubernetesクラスターがCitrix Hypervisorでホストされている場合)。

  • NetScaler ConsoleとKubernetesクラスターが異なるネットワーク上にある場合。このシナリオでは、オンプレミスエージェントを設定し、Kubernetesクラスターがホストされているネットワークにエージェントを登録する必要があります。

NetScaler Consoleでサービスグラフを使用するには、以下が満たされていることを確認してください。

ソフトウェア要件

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

開始する前に

サービスグラフは、次のシナリオで表示できます。

  • NetScaler ConsoleとKubernetesクラスターが同じネットワーク上にある場合(例:NetScaler ConsoleとKubernetesクラスターがCitrix Hypervisorでホストされている場合)。

  • NetScaler ConsoleとKubernetesクラスターが異なるネットワーク上にある場合。このシナリオでは、オンプレミスエージェントを設定し、Kubernetesクラスターがホストされているネットワークにエージェントを登録する必要があります。

NetScaler Consoleでサービスグラフを使用するには、以下が満たされていることを確認してください。

NetScaler Consoleでの静的ルートの設定

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

オンプレミスエージェントを使用している場合は、エージェントで静的ルートを設定してください。SSHクライアントを使用してNetScaler Agentにログオンし、静的ルートを設定します。

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

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

コマンド例

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

  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を使用して設定を確認します。

静的ルーティング

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

    1. NetScaler Consoleで、次のコマンドを使用して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以降を使用している場合、エージェントに登録する際はnsroot以外のパスワードを使用する必要があります。セキュリティを確保するため、NetScaler Agent 61.x以降のリリースではパスワードの変更が必須です。NetScaler Agentが61.x以降のバージョンにアップグレードされている場合は、CPX 58.x以降のビルドを使用していることを確認してください。

NetScaler Consoleへの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 ConsoleのIPアドレスを示します。

    エージェントが使用されている場合、これはエージェントのIPアドレスを示します。

  • NS_MGMT_FINGER_PRINT – NetScaler ConsoleでのCPXの認証を示します。フィンガープリントを取得するには:

    1. NetScaler Consoleで、Settings > Administrationに移動します。

    2. System Configurationsの下にあるView ADM Fingerprintをクリックします。

      フィンガープリント

      注:

      オンプレミスエージェントを設定している場合は、Infrastructure > Instances > Agentsに移動し、エージェントを選択してView Fingerprintをクリックします。

      フィンガープリントエージェント

  • NS_HTTP_PORT – 通信用のHTTPポートを示します。

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

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

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

  • LOGSTREAM_COLLECTOR_IP – CPXからNetScaler Consoleへのログデータ転送のためにLogstreamプロトコルを有効にする必要があるNetScaler AgentのIPアドレスを示します。

NetScaler ConsoleでのVPX、SDX、MPX、またはBLXインスタンスの追加

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

  1. Infrastructure > Instances > NetScalerに移動します。

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

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

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

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

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

  2. Orchestration > Kubernetes > Clusterに移動します。 [クラスター]ページが表示されます。

  3. Addをクリックします。

  4. Add Clusterページで、次のパラメーターを指定します。

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

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

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

        APIサーバーURL

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

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

      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. サービスアカウントの作成中にトークンが自動的に生成されます。

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

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

        トークンの生成

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

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

    5. Createをクリックします。

      クラスターの追加

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

マスターノードで:

  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 ConsoleへのCPXの登録

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

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

デプロイ後、CPXの登録は自動的に行われます。

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

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

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

  1. Settings > Licensing & Analytics Configurationに移動します。

  2. Virtual Server License Summaryの下で、Auto-select Virtual ServersAuto-select non addressable Virtual Serversを有効にします。

    仮想サーバーの自動選択

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

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

  1. Settings > Analytics Settingsに移動します。

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

  2. Enable Features for Analyticsをクリックします。

  3. Web Transaction Settingsの下で、Allを選択します。

  4. TCP Transactions Settingsの下で、Allを選択します。

    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を使用してマイクロサービスにアクセスできます。