DiamantiおよびNirmata検証済みリファレンスデザインにおけるKubernetesでのCitrix ADC CPX
テスト対象の特徴と機能
テストケース:North-SouthおよびHairpin East-WestのIngressコントローラーおよびデバイスとしてのCPX:
North-SouthとしてのVPXを除くすべてのテストケースの設定:
- クラスタ内の2つのCPX(CPX-1、CPX-2)
- ライセンスサーバーとしてのADM
- クラスター内の Prometheus エクスポーターコンテナー
- Prometheus サーバーと Grafana (Kubernetes のポッドとして、または Kubernetes サーバーの外部ポッドとして)
- 複数のフロントエンドアプリ
- 複数のバックエンドアプリ
北南役のI.VPX
-
SDXフロントエンドDiamantiプラットフォーム上のVPX
- SSLオフロードをテストし、SSL接続ごとにX-Forwardを挿入して再暗号化する
- SSL セッションへの X-Forward の挿入
II。North-SouthデバイスとしてのCPX
-
CPX-1. 指定されたイングレス・クラスを持つ2つまたは3つのHTTPSアプリをサポートするHTTPSイングレスを設定します。
- フロントエンドアプリごとに1つずつ、複数のコンテンツスイッチポリシーの作成をデモンストレーションします。
- CPXごとに複数のワイルドカード証明書(アプリごとに1つのワイルドカード証明書)をデモンストレーションします。
- CPXによるフロントエンドアプリへのトラフィックのオフロードと再暗号化を実演します。
- さまざまな負荷分散アルゴリズムをデモンストレーションします。
- 1 つのポッドに永続性を実証。
-
CPX-1. 指定された入力クラスを使用して個別の TCP 入力を設定します。
- MongoDB のような TCP アプリを挿入します。
- TCP VIP の作成を表示します。
- MongoDB ポッドにヒットする TCP クライアントトラフィックを表示します。
- デフォルトの TCP アプリのヘルスチェックを表示します。
-
CPX-1. 指定された入力クラスを使用して個別の TCP-SSL 入力を設定します。
- TCP-SSL VIPのSSLオフロードと再暗号化のデモンストレーションを行います。
- テストケース 2 を繰り返します。
-
アプリあたりのCPX。別の入力クラスの使用:
- 1つのアプリのみをサポートするCPX-2を使用して、テストケース1~3を繰り返します。
-
チームあたりのCPX。入力クラスの使用:
- 2つのチームに異なるイングレスクラスを割り当てます。
- CPXが個々のチームの進入ルールを構成できることの証拠として、テストケース1をデモンストレーションします。
-
フロントエンドポッドを自動スケーリングする:
- フロントエンドポッドへのトラフィックを増やし、ポッドが自動スケーリングされるようにします。
- CPX-1がサービスグループに新しいポッドを追加することを示してください。
- HTTPS イングレス VIP のデモンストレーションを行います。
-
4 ~ 7 vCPU サポート:
- CPX-1を4個または7個のvCPUで構成します。
- HTTPS TPS、暗号化されたBWのパフォーマンステストを全体に表示します。
III。ヘアピンとしてのCPX East-Westデバイス
-
CPX-1. セクション I.1 の説明に従って、North-South トラフィックの HTTPS 入力を作成します。
- バックエンドアプリをフロントエンドアプリに公開します。
- 両方のアプリ間のトラフィックを表示します。
- バックエンドアプリを別のバックエンドアプリに公開します。
- アプリ間のトラフィックを表示します。
-
CPX-1. ステップ 1 の指示に従います。また、エンドツーエンドの暗号化も示してください。
- オフロードと再暗号化を行うCPX-1で暗号化されたバックエンドアプリからバックエンドアプリへ。
-
バックエンドポッドのAutoscale:
- CPX-1 で、バックエンドの自動スケーリングされたバックエンドポッドをサービスグループに追加することをデモンストレーションします。
IV. Prometheus:とGrafana とのCPX統合
-
Prometheus コンテナを Kubernetes クラスターに挿入します。
- 各アプリのエクスポート用に推奨されるカウンターを使用してコンテナを設定します。
- エクスポーターコンテナがカウンターデータを Prometheus サーバーに送信するデモを行います。
- Prometheus サーバーからの CPX からのデータを示す Grafana ダッシュボードを表示します。
- 目標は、開発者がDevOpsで一般的に使用されているクラウドネイティブツールを使用できることを示すことです。
-
Kubernetes ローリングデプロイの統合デモンストレーション:
- Nirmata に新しいバージョンのアプリを挿入します。
- Kubernetes が新しいアプリバージョンをクラスターにデプロイしている様子を表示します。
- CPX が Kubernetes からのローリングデプロイコマンドに応答して、古いバージョンのアプリケーションから新しいバージョンのアプリケーションへのトラフィックを 100% 引き継ぐことをデモンストレーションします。
Citrix ADC CPX 導入用シトリックスソリューション
-
カスタムプロトコル: デフォルトでは、CITRIX INGRESS CONTROLLERはデフォルトプロトコル(HTTP/SSL)を使用して構成を自動化します。CITRIX INGRESS CONTROLLERは、アノテーションを使用してカスタムプロトコル(TCP/SSL-TCP/UDP)を構成することをサポートしています。
注釈:
ingress.citrix.com/insecure-service-type: "tcp"
[選択LBプロトコルへの注釈]ingress.citrix.com/insecure-port: "53"
[カスタムポートをサポートする注釈] -
CS/LB/サービスグループパラメータの微調整: デフォルトでは、CITRIX INGRESS CONTROLLERはADCをデフォルトパラメータで設定します。パラメーターは、NetScaler ADC エンティティパラメーター(lb/servicegroup)アノテーションを使用して微調整できます。
注釈:
LB法:
ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}'
持続性:
ingress.citrix.com/lbvserver: '{"app-1":{"persistencetype":"sourceip"}}'
-
アプリごとのSSL暗号化: CITRIX INGRESS CONTROLLERは、スマートアノテーションを使用して、アプリのSSL暗号化を選択的に有効にすることができます。
注釈:
ingress.citrix.com/secure_backend: '{"web-backend": "True"}
[アプリケーションごとに暗号化を選択的に有効にするアノテーション] -
入力のデフォルト証明書: CITRIX INGRESS CONTROLLERはデフォルトの証明書を引数として使用することができます。Ingress 定義にシークレットがない場合は、デフォルトの証明書が使用されます。シークレットは名前空間で一度作成する必要があります。そうすれば、名前空間に存在するすべての進入側がシークレットを使用できます。
-
Citrix の複数入力クラスのサポート: デフォルトでは、CITRIX INGRESS CONTROLLERはk8sクラスター内のすべてのイングレスオブジェクトをリッスンします。入力クラスのアノテーションを使用して、ADC(Tier-1 MPX/VPX & Tier-2 CPX)の構成を制御できます。これにより、各チームがADCの構成を個別に管理できるようになります。Ingressクラスは、特定の名前空間だけでなく名前空間のグループにもADCを設定するソリューションをデプロイするのに役立ちます。このサポートは、他のベンダーが提供しているものと比較してより一般的です。
注釈:
kubernetes.io/ingress.class: "citrix"
[特定のクラスに属するイングレスのみを設定するようCITRIX INGRESS CONTROLLERに通知 -
可視性: Citrix
k8s
ソリューションは、Prometheous/Grafanaなどのcncf
可視性ツールと統合され、測定基準収集が向上し、デバッグや分析機能が向上します。CitrixのPrometheusエクスポーターは、Grafanaで時系列チャートとして可視化するために利用可能なメトリックをPrometheusに提供します.
マイクロサービスアーキテクチャの使用に関する詳細は、GitHub の README.md ファイルを参照してください。.yaml
ファイルは Config フォルダーにあります。
POCストーリー
kubernetes クラスターでアプリを実行しているチームは 3 つあります。各チームの構成は、Citrix Ingressクラスの助けを借りて異なるCPXで個別に管理されます。
各チームのアプリは別々の名前空間(team-hotdrink、team-colddrink、team-redis)で実行され、すべてのCPXはCPX名前空間で実行されています。
team-hotdrink
: SSL/HTTP イングレス、パーシステンシー、ラボメソッド、アプリケーションごとの暗号化/暗号化、default-cert。
team-colddrink
: SSL-TCP イングレス
team-redis
: TCP イングレス
POC セットアップ
アプリケーションフロー
HTTP/SSL/SSL-TCP ユースケース:
TCP ユースケース:
ドッカー画像の取得
提供されたYAMLコマンドは、quayリポジトリから画像を取得しています。
画像はローカルリポジトリにプルして保存することもできます。YAML の Image パラメータを編集して使用できます。
Nirmata を使用した段階的なアプリケーションと CPX デプロイ
-
クラスターロールとクラスターロールバインディングを YAML にアップロードし、Nirmata (rbac.yaml) を使用してクラスターに適用します。
- [ クラスタ ] タブに移動します。
- クラスターを選択します。
- 設定で、 YAMLの適用オプションからYAMLを適用します 。
-
CPX とアプリを実行するための環境を作成します。
- [環境] タブに移動します。
- [ 環境を追加 ] タブをクリックします。
- クラスターを選択し、共有名前空間に環境を作成します。
- Prometheus、CPX、およびさまざまなチーム用のアプリを実行するために、次の環境を作成します。
- 環境の作成:cpx
- 環境を作る:チームホットドリンク
- 環境を作る:チームコールドドリンク
- 環境を作る:team-redis
-
Nirmataを使用して
.yaml
アプリケーションをアップロードします。- [ カタログ ] タブに移動します。
- [ アプリケーションを追加] をクリックします。
-
[ 追加 ] をクリックしてアプリケーションを追加します。
アプリケーションを追加:チームホットドリンク (team_hotdrink.yaml)。アプリケーション名:
team-hotdrink
。アプリケーションを追加:team-colddrink (team_coldrink.yaml) アプリケーション名:
team-colddrink
。アプリケーションを追加:team-redis (team_redis.yaml)。アプリケーション名:
team-redis
。アプリケーションを追加:cpx-svcacct (cpx_svcacct.yaml)。アプリケーション名:cpx-svcacct
注:
CITRIX INGRESS CONTROLLERが組み込まれているCPXには、実行されている名前空間にサービスアカウントが必要です。Nirmata の現在のバージョンでは、cpx
cpx_svcacct.yaml
環境でこれを作成してください。アプリケーションを追加:cpx (cpx_wo_sa.yaml) アプリケーション名:cpx
-
Nirmata を使用して CPX を実行します。
- [ 環境 ] タブに移動し、正しい環境を選択します。
- 「 アプリケーションを実行 」をクリックしてアプリケーションを実行します。
- cpx 環境で、
cpx-svcacct
アプリケーションを実行します。カタログアプリケーションから実行名cpx-svcacct
のcpx-svcacct
を選択します。 - cpx 環境で、cpx アプリケーションを実行します。 カタログアプリケーションからcpx を選択します。
注:
CPXの導入には以前のバージョンのNirmataを使用しているため、いくつかの小さな回避策が必要です。
- CPX デプロイメントを作成するときは、
serviceAccountName
を設定しないでください。serviceAccountName
は後で追加できます。回避策として、ポッドを自動的に再デプロイします。 - Ingress用のTLSシークレットを環境に直接インポートします。これにより、タイプフィールドが確実に保持されます。
- アプリケーションを実行したら、 CPX アプリケーションに移動します。
- 「 デプロイメント」>「StatefulSets & DaemonSets 」 タブで
cpx-ingress-colddrinks
デプロイメントをクリックします。 - 次のページで、 Pod テンプレートを編集します。 サービスアカウントにCPXと入力します。
- CPX アプリケーションに戻ります。
-
cpx-ingress-hotdrinks
とcpx-ingress-redis
展開についても同じ手順を繰り返します。
サービスアカウントを適用すると、ポッドが再デプロイされます。ポッドが起動するのを待って、サービスアカウントが適用されているかどうかを確認します。
Diamanti クラスタで次のコマンドを使用して同じことを確認できます。
[diamanti@diamanti-250 ~]$ kubectl get deployment -n cpx -o yaml | grep -i account serviceAccount: cpx serviceAccountName: cpx serviceAccount: cpx <!--NeedCopy-->
注:
serviceAccount
が適用されない場合は、CPX Pod をキャンセルしてください。それを再現したデプロイメントが、serviceAccount
を使用します。 -
Nirmata を使用してアプリケーションを実行します。
チームホットドリンクアプリケーション:
- [ 環境 ] タブに移動し、正しい環境を選択します
team-hotdrink
。 -
team-hotdrink
環境で、team-hotdrink
実行名を使用してteam-hotddrink
アプリケーションを実行します。カタログアプリケーションからteam-hotdrink
を選択します。 -
team-hotdrink
アプリケーションにアクセスしてください。画面の右上隅にある [ 設定 ] をクリックし、[ アプリケーションにインポート] を選択します。hotdrink-secret.yaml
をアップロードします。
チームコールドドリンクアプリケーション:
- [ 環境 ] タブに移動し、正しい環境を選択します
team-colddrink
。 -
team-colddrink
環境で、team-coldddrink
アプリケーションをteam-colddrink
実行名で実行します。カタログアプリケーションからteam-hotdrink
を選択します。 -
team-colddrink
アプリケーションにアクセスしてください。画面の右上隅にある [ 設定 ] をクリックし、[ アプリケーションにインポート] を選択します。colddrink-secret.yaml
をアップロードします。
チームレディスアプリケーション:
- [ 環境 ] タブに移動し、正しい環境を選択します
team-redis
。 -
team-colddrink
環境で、team-redis
実行名を使用してアプリケーションを実行します。カタログアプリケーションからteam-redis
を選択します。-
team-redis
環境で、team-redis
実行名を使用してアプリケーションを実行します。
-
- [ 環境 ] タブに移動し、正しい環境を選択します
ティア2のCPXを公開するVPX上のコマンド
Tier-1 VPXは、SSL暗号化/復号化を行い、Tier-2 CPXに送信する際にX-forwardヘッダーを挿入する必要があります。Tier-1 の設定は手動で実行する必要があります。X-Forward ヘッダーは、サービスグループで-cip ENABLED を使用して挿入できます。config.txt
を開きます。
サーバの作成:
Citrix ADCにcertkey
をアップロードします。 wild.com-key.pem, wild.com-cert.pem
add cs vserver frontent_grafana HTTP <CS_VSERVER_IP> 80 -cltTimeout 180
<!--NeedCopy-->
ティアワンのVPXでwww.hotdrinks.com、www.colddrinks.com、www.guestbook.comを公開してください。
add serviceGroup team_hotdrink_cpx SSL -cip ENABLED
add serviceGroup team_colddrink_cpx SSL -cip ENABLED
add serviceGroup team_redis_cpx HTTP
add ssl certKey cert -cert "wild-hotdrink.com-cert.pem" -key "wild-hotdrink.com-key.pem"
add lb vserver team_hotdrink_cpx HTTP 0.0.0.0 0
add lb vserver team_colddrink_cpx HTTP 0.0.0.0 0
add lb vserver team_redis_cpx HTTP 0.0.0.0 0
add cs vserver frontent SSL 10.106.73.218 443
add cs action team_hotdrink_cpx -targetLBVserver team_hotdrink_cpx
add cs action team_colddrink_cpx -targetLBVserver team_colddrink_cpx
add cs action team_redis_cpx -targetLBVserver team_redis_cpx
add cs policy team_hotdrink_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.hotdrinks.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_hotdrink_cpx
add cs policy team_colddrink_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.colddrinks.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_colddrink_cpx
add cs policy team_redis_cpx -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.guestbook.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action team_redis_cpx
bind lb vserver team_hotdrink_cpx team_hotdrink_cpx
bind lb vserver team_colddrink_cpx team_colddrink_cpx
bind lb vserver team_redis_cpx team_redis_cpx
bind cs vserver frontent -policyName team_hotdrink_cpx -priority 10
bind cs vserver frontent -policyName team_colddrink_cpx -priority 20
bind cs vserver frontent -policyName team_redis_cpx -priority 30
bind serviceGroup team_hotdrink_cpx 10.1.3.8 443
bind serviceGroup team_colddrink_cpx 10.1.2.52 443
bind serviceGroup team_redis_cpx 10.1.2.53 80
bind ssl vserver frontent -certkeyName cert
<!--NeedCopy-->
サービスグループの CPX ポッド IP アドレスの IP アドレスを更新します。
root@ubuntu-211:~/demo-nimata/final/final-v1# kubectl get pods -n cpx -o wide
NAME READY STATUS RESTARTS AGE IP NODE
cpx-ingress-colddrinks-5bd94bff8b-7prdl 1/1 Running 0 2h 10.1.3.8 ubuntu-221
cpx-ingress-hotdrinks-7c99b59f88-5kclv 1/1 Running 0 2h 10.1.2.52 ubuntu-213
cpx-ingress-redis-7bd6789d7f-szbv7 1/1 Running 0 2h 10.1.2.53 ubuntu-213
<!--NeedCopy-->
-
www.hotdrinks.com、www.colddrinks.com、www.guestbook.comにアクセスするには、(ページにアクセスするマシンの) ホストファイルに次の値を追加する必要があります。
<CS_VSERVER_IP> www.hotdrinks.com <CS_VSERVER_IP> www.colddrinks.com <CS_VSERVER_IP> www.guestbook.com
これが完了すると、 www.hotdrinks.com、www.colddrinks.com、www.guestbook.comにアクセスしてアプリにアクセスできます。
階層 2 CPX 構成の検証
CPX構成を検証するには、CPX環境にアクセスしてください。CPX 実行中のアプリケーションを選択します。
cpx-ingress-hotdrinks
デプロイを選択し、cpx-ingress-hotdrinks-xxxx-xxxx
ポッドをクリックします。
次のページで、実行中のコンテナに移動し、「bash」コマンドを入力してcpx-ingress-hotdrinks
のターミナルを起動します。
端末が接続されたら、cli_script.sh
経由で通常のNetScalerコマンドを使用して構成を検証します。
- cli_script.sh “sh cs vs”
- cli_script.sh “sh lb vs”
- cli_script.sh “sh servicegroup”
検証は、team-colddrink
およびteam-mongodb
の他の CPX 展開についても同じ方法で実行できます。
スケールアップ/スケールダウンの実行
スケールアップ/スケールダウンを実行するには:
-
team-hotdrink
環境に移動します。team-hotdrink
実行中のアプリケーションを選択します。 -
frontend-hotdrinks
デプロイをクリックします。 - 次のページで、「 レプリカを更新」をクリックします。10に増やしてください。
CPXの構成を確認するには、Tier-2 CPX構成の検証を参照してください(導入:cpx-ingress-hotdrinks)。
- CPX 環境に移動します。実行中の CPX アプリケーションを選択します。
-
cpx-ingress-hotdrinks
デプロイをクリックします。 -
cpx-ingress-hotdrinks-xxxx-xxxx
ポッドをクリックします。 - 次のページで、実行中のコンテナに移動し、「bash」コマンドを入力して
cpx-ingress-hotdrinks
のターミナルを起動します。 -
cli_script.sh "sh servicegroup < servicegroup name >"
。
ローリングアップデートの実行
ローリングアップデートを実行するには:
-
team-hotdrink
環境に移動します。team-hotdrink
実行中のアプリケーションを選択します。 - フロントエンドホットドリンクをデプロイしてください。
- 次のページで、 Pod テンプレートに移動します。
- 画像を quay.io/citrix/hotdrinks-v2: latest に更新してください。
- 更新を完了させましょう。
- アプリケーションに再度アクセスします。更新をロールすると、新しいページには更新された画像が表示されるはずです。
Prometheus:のデプロイ
NetScalerメトリックエクスポーター、Prometheus、Grafana を使用して、入力CPXからメトリックを自動的に検出して収集しています。
Prometheus:をデプロイする手順:
CPX とアプリを実行するための環境を作成します。
- [環境] タブに移動します。
- [環境を追加]をクリックします。
- エクスポーター、Prometheus:、Grafana を実行するための環境を作成します。
- 環境を作成します。 モニタリングです。
Nirmataを使用して.yaml
ファイルをアップロードします。
- [ カタログ ] タブに移動します。
- [ アプリケーションを追加] をクリックします。
- [ 追加 ] をクリックしてアプリケーションを追加します。
- アプリケーション:モニタリング (monitoring.yaml) を追加します。
Prometheus アプリケーションを実行中:
- [ 環境 ] タブに移動し、適切な環境 ( モニタリング) を選択します。
- 監視という名前で 「 アプリケーションを実行」をクリックします。
- これにより、エクスポーター、Prometheus、Grafana ポッドがデプロイされ、メトリクスの収集が開始されます。
- 今度はPrometheus:とGrafana VPXを通して公開される必要があります。
Prometheus:とGrafana を公開するVPXのコマンド:
csvserver の作成:
add cs vserver frontent_grafana HTTP <CS_VSERVER_IP> 80 -cltTimeout 180
<!--NeedCopy-->
Prometheus:を公開:
add serviceGroup prometheus HTTP
add lb vserver prometheus HTTP 0.0.0.0 0
add cs action prometheus -targetLBVserver prometheus
add cs policy prometheus -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.prometheus.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action prometheus
bind lb vserver prometheus prometheus
bind cs vserver frontent_grafana -policyName prometheus -priority 20
bind serviceGroup prometheus <PROMETHEUS_POD_IP> 9090
<!--NeedCopy-->
注:
「kubectl ゲットポッド-n モニタリング-o ワイド」を使って prometheus-k8s-0 ポッド IP を取得
Grafana を公開:
add serviceGroup grafana HTTP
add lb vserver grafana HTTP 0.0.0.0 0
add cs action grafana -targetLBVserver grafana
add cs policy grafana -rule "HTTP.REQ.HOSTNAME.SERVER.EQ("www.grafana.com") && HTTP.REQ.URL.PATH.STARTSWITH("/")" -action grafana
bind lb vserver grafana grafana
bind cs vserver frontent_grafana -policyName grafana -priority 10
bind serviceGroup grafana <GRAFANA_POD_IP> 3000
<!--NeedCopy-->
注:
kubectl get pods -n monitoring -o wide
を使用して grafana-xxxx-xxx ポッド IP を取得します
-
これで、PrometheusとGrafana ページがVPXのcsvserver経由でアクセスできるよう公開されました。
-
Prometheus と Grafana にアクセスするには、(ページにアクセスするマシンの) hosts ファイルに次の値を追加する必要があります。
<CS_VSERVER_IP> www.grafana.com <CS_VSERVER_IP> www.prometheus.com
-
これが完了したら、 www.prometheus.comにアクセスしてPrometheus:にアクセスしてください。 www.grafana.comにアクセスしてGrafana にアクセスしてください。
メトリクスを視覚化する:
- Prometheus:がエクスポーターを検出したことを確認するには、 www.prometheus.com/targetsにアクセスしてください。CPXデバイスとVPXデバイスを監視しているすべてのエクスポーターのリストが含まれているはずです。すべてのエクスポータが UP 状態であることを確認します。以下の例を参照してください:
-
これで、Grafana を使用して収集中の値をプロットできます。そのためには:
- www.grafana.comにアクセスしてください。ホストファイルに適切なエントリが追加されていることを確認します。
- デフォルトのユーザー名adminとパスワードadminを使用してログインします。
- ログイン後、ホームダッシュボードの [ データソースを追加 ] をクリックします。
- 「 Prometheus: 」オプションを選択します。
- 次の詳細を入力/変更してください。
- 名前:Prometheus: (すべて小文字)。
- URL:
http://prometheus:9090
。 - 残りのエントリはデフォルト値のままにします。
- [ 保存してテスト] をクリックします。画面の下部に [ データソースが機能しています ] というメッセージが表示されるまで数秒間待ちます。
- 左側のパネルにある
+
アイコンをクリックして、あらかじめデザインされた Grafana テンプレートをインポートします。[ インポート] を選択します。 - [ JSON をアップロード ] ボタンをクリックし、 sample_grafana_dashboard.json ファイルを選択します ( 名前、 フォルダ、 および一意の識別子はそのままにします )。
- prometheus ドロップダウンメニューから Prometheus を選択し、「 インポート」をクリックします。
-
これにより、次の画像のようなダッシュボードがアップロードされます。
ライセンステストとパフォーマンステスト
パフォーマンスおよびライセンス用のCPxの実行:
CPXコアの数とライセンスサーバーの詳細は、次の環境変数で指定されます。
コアの数を選択する環境変数
- 名前:「CPX_CORES」
- 値:「3”
ライセンスサーバーを選択する環境変数
- 名前:「LS_IP」
-
値:「X.X.X.X」
ディアマンティ注釈:
diamanti.com/endpoint0: '{"network":"lab-network","perfTier":"high"}
上記の正しい IP アドレスを設定して、正しいライセンスサーバーを指定してください。
- 上記の環境変数とDiamanti固有の注釈を
cpx-perf.yaml
ファイルに追加します。 - [ 環境 ] タブに移動して、
cpx-perf
環境を作成します。
Nirmata を使用して YAML アプリケーションをアップロードします。
- [ カタログ ] タブに移動します。
- [ アプリケーションを追加] をクリックします。
- [ 追加 ] をクリックしてアプリケーションを追加します。
cpx-perf.yaml
。アプリケーション名:cpx-perf
。
CPX を実行中:
- [ 環境 ] タブに移動し、
cpx-perf
環境を選択します。 -
cpx-perf
環境内で、cpx-svcacct
アプリケーションを実行します。 -
cpx-perf
環境内で、cpx-perf
アプリケーションを実行します。 - アプリケーションを実行したら、
cpx-perf
アプリケーションに移動します。 -
デプロイメント > StatefulSets & DaemonSetsタブで
cpx-ingress-perf
デプロイメントをクリックします 。次のページで、 Pod テンプレートを編集します。 サービスアカウントにCPXと入力します。 - ライセンスが機能していることと、Citrix ADM でライセンスのチェックアウトが行われていることを確認します。
- CPX で検証するには、次の手順を実行します。
- kubectl get pods -n cpx
- kubectl exec-it
-n cpx bash - sh ‘sh ライセンサー’
- cli_script.sh ‘sh capacity’
- 同様の出力を表示します。
root@cpx-ingress-colddrinks-66f4d75f76-kzf8w:/# cli_script.sh 'sh licenseserver' exec: sh licenseserver 1) ServerName: 10.217.212.228Port: 27000 Status: 1 Grace: 0 Gptimeleft: 0 Done root@cpx-ingress-colddrinks-66f4d75f76-kzf8w:/# cli_script.sh 'sh capacity' exec: sh capacity Actualbandwidth: 10000 VcpuCount: 3 Edition: Platinum Unit: Mbps Maxbandwidth: 10000 Minbandwidth: 20 Instancecount: 0 Done <!--NeedCopy-->
- ADM で検証するには、ライセンスサーバーに移動し、[ ネットワーク] > [ライセンス] > [仮想 CPU ライセンス] に移動します。
- ここには、ライセンスされたCPXとコア数が表示されます。
- CPX で検証するには、次の手順を実行します。
- 上記の環境変数とDiamanti固有の注釈を
アノテーションテーブル
注釈 | 可能な価値 | 説明 | デフォルト (存在する場合) |
---|---|---|---|
kubernetes.io/ingress.class | イングレス・クラス名 | これは、特定のイングレス・リソースをイングレス・コントローラーに関連付ける方法です。例:kubernetes.io/ingress.class:"Citrix"
|
すべての入力を設定します。 |
ingress.citrix.com/secure_backend | .json 形式を使用して、セキュアバックエンドのサービスを一覧表示します | Citrix ADC にアプリケーションを安全なHTTPS接続で接続させたい場合は、 Trueを使用してください。Citrix ADC にアプリケーションを安全でないHTTP接続で接続させたい場合は、 Falseを使用してください。例:ingress.citrix.com/secure_backend: {‘app1’:"True", ‘app2’:"False", ‘app3’:"True"}
|
“False” |
ingress.citrix.com/lbvserver | JSON 形式の lbvserver の設定 | スマートな注釈機能を提供します。これを使用すると、上級ユーザー(NetScaler LB Vserverとサービスグループのオプションに関する知識がある)がそれらを直接適用できます。値は.json 形式でなければなりません。Ingress のバックエンドアプリごとに、キーと値のペアを指定します。キー名は対応する CLI 名と一致する必要があります。例:ingress.citrix.com/lbvserver: '{"app-1":{"lbmethod":"ROUNDROBIN"}}'
|
デフォルト値 |