サービスメッシュトポロジをセットアップするための詳細な手順

最終公開日 : Oct 02, 2026
サービスメッシュトポロジを展開するための前提条件は、サービスグラフのセットアップで確認できます。

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

KubernetesクラスターとNetScaler Console間の通信を有効にするには、エージェントをインストールして構成する必要があります。エージェントは、ハイパーバイザー、パブリッククラウドサービス(Microsoft Azure、AWSなど)、またはNetScalerインスタンスで利用可能な組み込みエージェント(HA展開に最適)を使用して構成できます。
エージェントを構成するには、手順に従ってください。
注
  • 既存のエージェントを使用することもできます。
  • エージェントは、デフォルトでNetScaler Consoleの最新ビルドに自動的にアップグレードされます。エージェントの詳細は、インフラストラクチャ > インスタンス > エージェントページで確認できます。エージェントのアップグレードを実行する時間を指定することもできます。詳細については、「エージェントアップグレード設定の構成」を参照してください。

エージェントで静的ルートを構成する

Kubernetesクラスター内では、すべてのコンテナ化されたポッドがオーバーレイネットワークを使用します。これらのプライベートIPアドレスを使用して直接通信を確立することはできません。NetScaler ConsoleからKubernetesクラスターへの通信を有効にするには、エージェントで静的ルーティングを構成する必要があります。
Kubernetesクラスターに次のIPアドレスがあるとします。
  • Kubernetesマスター – 101.xx.xx.112
  • Kubernetesワーカー1 – 101.xx.xx.111
  • Kubernetesワーカー2 – 101.xx.xx.110
Kubernetesマスターで、次のコマンドを実行して、静的ルーティングを行うポッドネットワークを特定します。
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. エージェントで、次のコマンドを使用して svm.conf ファイルにアクセスします。
      vim /mpsconfig/svm.conf
    2. svm.conf ファイルに静的ルートを追加します。
      例えば、route add -net 192.168.0.0/24 101.xx.xx.112。

必要なパラメータを設定する

Kubernetesマスターで:
  1. CPXがイングレスゲートウェイ/サイドカーとして展開されているすべての名前空間で、エージェントの資格情報を使用してシークレットを作成します。
    kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n <namespace>
  2. helm repo add citrix https://citrix.github.io/citrix-helm-charts/
  3. NetScaler CPXをイングレスゲートウェイとして展開する
    helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace <namespace> --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=XX:00:X1:00:XX:0X:X0,ADMSettings.ADMIP=<xx.xx.xx.xx>, ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30
    次の表に、Helmチャートで設定可能なパラメータとそのデフォルト値を示します:
    パラメータ 説明 デフォルト 任意/必須 (ヘルム)
    citrixCPX NetScaler CPX FALSE NetScaler CPX に必須
    xDSAdaptor.image Citrix xDS アダプターコンテナのイメージ quay.io/citrix/citrix-istio-adaptor:1.2.1 必須
    ADMSettings.ADMIP NetScaler Console の IP アドレス なし NetScaler CPX に必須
    ADMSettings.ADMFingerPrint NetScaler Console のフィンガープリント。Infrastructure > Instances > Agents に移動し、エージェントを選択して、View Fingerprint をクリックします。 なし 任意
    ingressGateway.EULA エンドユーザーライセンス契約 (EULA) の利用規約。はいの場合、ユーザーは EULA の利用規約に同意します。 いいえ NetScaler CPX に必須
    ingressGateway.image イングレスゲートウェイとして実行するように指定された NetScaler CPX のイメージ quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30 NetScaler CPX に必須
  4. Citrix SideCar Injector を展開します。
    helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --version 1.2.1 --namespace <namespace> set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<xx.xx.xx.xx>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30
    次の表に、Helm チャートで構成可能なパラメーターとそのデフォルト値を示します。
    パラメーター 説明 デフォルト値
    ADMSettings.ADMIP NetScaler Console の IP アドレス NIL
    cpxProxy.image サイドカープロキシとして使用されるNetScaler CPXイメージ quay.io/citrix/citrix-k8s-cpx-ingress:13.0–58.30
    cpxProxy.imagePullPolicy NetScaler のイメージプルポリシー IfNotPresent
    cpxProxy.EULA エンドユーザーライセンス契約 (EULA) の利用規約。はいの場合、ユーザーはEULAの利用規約に同意します。 いいえ
    cpxProxy.cpxSidecarMode NetScaler CPX の環境変数。NetScaler CPX がサイドカーモードで実行されているかどうかを示します。 はい
  5. CPXサイドカーインジェクションが必要な任意のNamespaceにラベルを設定します。
    kubectl label namespace <app-namespace> cpx-injection=enabled
    ステップ3と5を実行した後、NetScaler CPXがNetScaler Consoleに登録されていることを確認できます。

サンプルアプリケーションを展開する

以下のアプリケーションを展開するとします。
サンプルアプリを展開(/en-us/netscaler-console-service/media/deploy-sample-apps.png)
サンプルアプリケーションを展開するには、以下の手順を実行します。
  1. kubectl create namespace citrix-system
  2. kubectl create namespace bookinfo
  3. kubectl label namespace bookinfo cpx-injection=enabled
  4. kubectl create secret generic admlogin --from-literal=username=<uername> --from-literal=password=<password> -n citrix-system
    注
    任意のユーザー名とパスワードを設定できます。
  5. kubectl create secret generic admlogin --from-literal=username=<username> --from-literal=password=<password> -n bookinfo
    注
    ユーザー名とパスワードは任意で指定できます。
  6. helm install citrix-adc-istio-ingress-gateway citrix/citrix-adc-istio-ingress-gateway --version 1.2.1 --namespace citrix-system --set ingressGateway.EULA=YES,citrixCPX=true,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,ingressGateway.image=quay.io/citrix/citrix-k8s-cpx-ingress,ingressGateway.tag=13.0-58.30
    注
    NetScaler ConsoleのフィンガープリントとエージェントのIPアドレスを指定する必要があります。
  7. helm install cpx-sidecar-injector citrix/citrix-cpx-istio-sidecar-injector --namespace citrix-system --set cpxProxy.EULA=YES,ADMSettings.ADMFingerPrint=xx:xx:xx:xx,ADMSettings.ADMIP=<ADM agent IP address>,cpxProxy.image=quay.io/citrix/citrix-k8s-cpx-ingress,cpxProxy.tag=13.0-58.30
    注
    NetScaler ConsoleのフィンガープリントとエージェントのIPアドレスを指定する必要があります。
  8. helm install bookinfo bookinfo/ --namespace bookinfo --set citrixIngressGateway.namespace=citrix-system

NetScaler ConsoleでKubernetesクラスターを追加する

Kubernetesクラスターを追加するには:
  1. 管理者資格情報を使用してNetScaler Consoleにログオンします。
  2. Infrastructure > Orchestration > Kubernetes > Cluster の順に移動します。 クラスターページが表示されます。
  3. 追加 をクリックします。
  4. クラスターの追加 ページで、次のパラメーターを指定します。
    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>
      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. 作成をクリックします。
      クラスターの追加(/en-us/netscaler-console-service/media/add-cluster.png)

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

注
仮想サーバーのライセンスが十分にあることを確認してください。詳細については、「ライセンス」を参照してください。
NetScaler ConsoleにKubernetesクラスターを追加したら、ライセンス付与のために仮想サーバーを自動選択するようにしてください。Service Graphにデータを表示するには、仮想サーバーがライセンスされている必要があります。仮想サーバーを自動選択するには:
  1. 設定 > NetScaler Console Licensing & Analytics Configに移動します。
  2. 仮想サーバーライセンスの概要で、仮想サーバーの自動選択とアドレス指定不可能な仮想サーバーの自動選択を有効にします。
    仮想サーバーの自動選択(/en-us/netscaler-console-service/media/auto-select-vservers.png)

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

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

マイクロサービスにトラフィックを送信する

次に、NetScaler Consoleにサービスグラフを表示させるために、マイクロサービスにトラフィックを送信する必要があります。
  1. Ingress IPとポートを特定する
    export INGRESS_HOST=$(kubectl get pods -l app=citrix-ingressgateway -n citrix-system -o 'jsonpath={.items[0].status.hostIP}')
    export INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="http2")].nodePort}')
    export SECURE_INGRESS_PORT=$(kubectl -n citrix-system get service citrix-ingressgateway -o jsonpath='{.spec.ports[?(@.name=="https")].nodePort}')
  2. curlを使用してBookinfoフロントエンドアプリケーションにアクセスします。productpageサービスは200 OK応答を返す必要があります。
    curl -kv https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage
    curl -v http://$INGRESS_HOST:$INGRESS_PORT/productpage
  3. ブラウザから https://$INGRESS_HOST:$SECURE_INGRESS_PORT/productpage にアクセスします。
    Bookinfo ページが表示されます。
  4. $INGRESS_HOST と $SECURE_INGRESS_PORT が IP アドレスとポート値に置き換えられていることを確認してください。
マイクロサービスにトラフィックを送信すると、サービスグラフは約10分で表示されます。
サンプル
サービスグラフを使用すると、メトリック、エラーなど、さまざまなサービスの詳細を分析できます。詳細については、サービスグラフを参照してください。