デュアルティアまたはサービスメッシュ 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 でサービスグラフを使用するには、次の項目があることを確認してください。
-
プロキシとしてNetScaler ADC CPXとKubernetesクラスター. 詳しくは、「 NetScaler Ingress Controller」を参照してください。
-
NetScaler ADMとNetScaler ADC CPX間の通信を有効にするために、Citrix ADMで静的ルートを構成しました
-
GitHub リポジトリからサンプルデプロイファイルをダウンロードしました。
-
CPX YAMLファイルに必須パラメーターを追加して、CPXをNetScaler ADMに正常に登録できるようにしました。
-
NetScaler ADM に Kubernetes クラスタが追加されました 。
-
仮想サーバの自動選択を有効にして 、仮想サーバのライセンスを取得しました。
-
Citrix ADMエージェントがHTTPトランザクションを取得できるように[Webトランザクション設定 ]を[ すべて ]に変更しました。
-
iStream.conf ファイルを更新し、TCPメトリックを取得するために、NetScaler ADM エージェント用のTCP設定を[ すべて ]に変更しました。
ソフトウェア要件
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 ADC CPXとKubernetesクラスター. 詳しくは、「 NetScaler Ingress Controller」を参照してください。
-
NetScaler ADMとNetScaler ADC CPX間の通信を有効にするために、Citrix ADMで静的ルートを構成しました
-
GitHub リポジトリからサンプルデプロイファイルをダウンロードしました。
-
CPX YAMLファイルに必須パラメーターを追加して、CPXをNetScaler ADMに正常に登録できるようにしました。
-
NetScaler ADM に Kubernetes クラスタが追加されました 。
-
仮想サーバの自動選択を有効にして 、仮想サーバのライセンスを取得しました。
-
Citrix ADMエージェントがHTTPトランザクションを取得できるように[Webトランザクション設定 ]を[ すべて ]に変更しました。
-
iStream.conf ファイルを更新し、TCPメトリックを取得するために、NetScaler ADM エージェント用のTCP設定を[ すべて ]に変更しました。
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}"
コマンドの実行後の出力例を次に示します。
-
SSHクライアントを使用してNetScaler ADM にログオンする
-
コマンド
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
-
netstat -rn
を使用して構成を検証します -
これらのルートコマンドを
/mpsconfig/svm.conf
ファイルに追加します。-
NetScaler ADM では、 次のコマンドを使用してsvm.confファイルにアクセスします 。
vim /mpsconfig/svm.conf
-
静的ルートを svm.conf ファイルに追加します。
例:
route add -net 192.168.0.0/24 101.xx.xx.112
。
-
GitHub からサンプルデプロイファイルをダウンロードする
-
git clone
https://github.com/citrix/citrix-k8s-ingress-controller.git
コマンドを使用して、マスターノードの git hub リポジトリをクローンします。 -
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の認証を示します。指紋を取得するには:
-
NetScaler ADM で、[ 設定]>[管理]に移動します。
-
[ システム構成] で [ ADM フィンガープリントの表示] をクリックします。
注:
オンプレミスエージェントを設定している場合は、[ インフラストラクチャ] > [インスタンス] > [エージェント] に移動し、エージェントを選択して [ フィンガープリントの表示] をクリックします。
-
-
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を有効にする必要があります。
-
インフラストラクチャ > インスタンス > NetScalerに移動します。
-
[ Add ] オプションをクリックして、インスタンスを追加します。詳しくは、「 NetScaler ADM でのインスタンスの追加」を参照してください。
-
インスタンスを追加したら、仮想サーバーを選択し、 Web Insightを有効にします。詳しくは、「 仮想サーバーでのライセンスの管理と分析の有効化」を参照してください。
NetScaler ADM で Kubernetes クラスターを追加する
Kubernetesクラスタを追加するには、次の手順に従います。
-
管理者の資格情報を使用してNetScaler ADM にログオンします。
-
オーケストレーション > Kubernetes > クラスタに移動します。 [クラスタ] ページが表示されます。
-
[追加] をクリックします。
-
[クラスタの追加 ] ページで、次のパラメータを指定します。
-
[名前]: 任意の名前を指定します。
-
API サーバー URL -Kubernetes マスターノードから API サーバー URL の詳細を取得できます。
-
Kubernetes マスターノードで、コマンド
kubectl cluster-info
を実行します。 -
「Kubernetes マスターが実行中です」と表示される URL を入力します。
-
-
認証トークン -認証トークンを指定します。認証トークンは、KubernetesクラスタとNetScaler ADM 間の通信へのアクセスを検証するために必要です。認証トークンを生成する手順は、次のとおりです。
Kubernetes マスターノードで、次の操作を行います。
-
次の YAML を使用してサービスアカウントを作成します。
apiVersion: v1 kind: ServiceAccount metadata: name: <name> namespace: <namespace> <!--NeedCopy-->
-
kubectl create -f <yaml file>
を実行します。サービスアカウントが作成されます。
-
kubectl create clusterrolebinding <name> --clusterrole=cluster-admin --serviceaccount=<namespace>:<name>
を実行してクラスターロールをサービスアカウントにバインドします。これで、サービスアカウントはクラスター全体にアクセスできるようになりました。
トークンは、サービスアカウントの作成中に自動的に生成されます。
-
kubectl describe sa <name>
を実行してトークンを確認してください。 -
シークレット文字列を取得するには、
kubectl describe secret <token-name>
を実行してください。
-
-
リストからエージェントを選択します。
注
オンプレミスエージェントを使用している場合は、CPX YAML に追加したものと同じエージェントを選択してください。
-
[作成] をクリックします。
-
サンプルのマイクロサービスアプリケーションのデプロイ
マスターノードの場合:
-
kubectl create -f namespace.yaml
を実行して名前空間を作成します。 -
次のコマンドを使用して、
hotdrink
マイクロサービス、入力、およびシークレットを展開します。kubectl create -f team_hotdrink.yaml -n sg-demo
kubectl create -f hotdrink-secret.yaml -n sg-demo
CPX を展開して、ADM に CPX を登録する
-
kubectl create -f rbac.yaml
を実行してクラスターロールとクラスターバインディングをデプロイします。 -
kubectl create -f cpx.yaml -n sg-demo
を実行してCPXをデプロイします。
展開後、CPX 登録は自動的に行われます。
ライセンス用の仮想サーバの自動選択を有効にする
注
十分な仮想サーバライセンスがあることを確認してください。詳細については、「 ライセンス」を参照してください。
NetScaler ADM でKubernetesクラスタを追加した後、ライセンス取得のために仮想サーバーを自動的に選択する必要があります。Service Graph でデータを表示するには、仮想サーバのライセンスが必要です。仮想サーバを自動選択するには、次の手順で行います。
-
[ 設定] > [ライセンスと分析の設定]に移動します。
-
[ 仮想サーバーライセンスの概要] で、 [仮想サーバーの自動選択] と [アドレス指定できない仮想サーバーの自動選択] を有効にします。
WebトランザクションとTCPトランザクション設定を有効にする
Kubernetes クラスターを追加し、自動選択仮想サーバーを有効にした後、[ Web トランザクション設定] と [ TCP トランザクション設定 ]を [ すべて] に変更します。
-
[ 設定] > [アナリティクス設定]に移動します。
[アナリティクス設定] ページが表示されます。
-
[ 分析機能の有効化] をクリックします。
-
「 Webトランザクション設定」で、「 すべて」を選択します。
-
[ TCP トランザクションの設定]で、[ すべて] を選択します。
-
[OK] をクリックします。
マイクロサービスへのトラフィックの送信
次に、トラフィックをマイクロサービスに送信して、NetScaler ADM に表示されるサービスグラフを取得する必要があります。
-
kubectl get svc -n sg-demo
を実行して NodePort から CPX を公開します。 -
etc/host ファイルを編集し、
hotdrink.beverages.com
のドメイン IP エントリを作成しますこれで、
https://hotdrink.beverages.com
を使用してマイクロサービスにアクセスできるようになりました
この記事の概要
- ソフトウェア要件
- はじめに
- ソフトウェア要件
- はじめに
- NetScaler ADM で静的ルートを構成する
- GitHub からサンプルデプロイファイルをダウンロードする
- CPX YAMLファイルにパラメータを追加する
- NetScaler ADMでVPXまたはSDXまたはMPXまたはBLXインスタンスを追加する
- NetScaler ADM で Kubernetes クラスターを追加する
- サンプルのマイクロサービスアプリケーションのデプロイ
- CPX を展開して、ADM に CPX を登録する
- ライセンス用の仮想サーバの自動選択を有効にする
- WebトランザクションとTCPトランザクション設定を有効にする
- マイクロサービスへのトラフィックの送信