NetScaler Operator を使用して NetScaler Cloud Controller をデプロイする

最終公開日 : Oct 02, 2026

はじめに

NetScaler Cloud Controller は、適切な Azure ルートテーブルにポッドネットワークのルートエントリを作成および維持します。
注:
NetScaler Cloud Controller は、NetScaler と、同じリソースグループ内にある Azure Red Hat OpenShift (ARO) クラスター間の Azure ルートのみを作成します。
このセクションでは、Azure および ARO 環境における NetScaler Cloud Controller のデプロイ、構成、および管理に関する情報を提供します。

前提条件

  1. アクティブな Azure サブスクリプション。
    サブスクリプション ID をメモします。
  2. リソースを作成および管理するための十分な権限を持つ Azure アカウント。リソースグループ内でリソースを作成し、サービスプリンシパルを管理するためのアクセス権が必要です。
  3. Azure アカウントの TENANT_ID、CLIENT_ID、および CLIENT_SECRET をメモします。
  4. Azure で実行中の ARO クラスター (バージョン 4.11 以降)。
  5. ARO クラスターと、ルートを確立する必要があるサブネットは、同じ VNet 内にある必要があります。
    リソースグループ名、VNet 名、サブネット名、および ARO クラスターと NetScaler® が配置されている Azure の場所をメモします。
  6. NetScaler Cloud Controller をデプロイする名前空間で、説明されているようにシークレットを作成します。
    oc create secret generic azsecret --from-literal=clientid='<CLIENT_ID>' --from-literal=clientsecret='<CLIENT_SECRET>' -n <namespace>
  7. サービスプリンシパルを作成し、カスタムロールを割り当てます。詳細については、サービスプリンシパルを作成してロールを割り当てるを参照してください。
  8. NetScaler Operator を展開します。NetScaler Operator の展開方法については、NetScaler Operator を展開するを参照してください。

サービスプリンシパルを作成してロールを割り当てる

NetScaler Cloud Controller が Azure リソースを管理するための認証情報を設定するには、サービスプリンシパルを作成してロールを割り当てます。サービスプリンシパルを作成してロールを割り当てる際に考慮すべき2つのシナリオを以下に示します。

ケース I: ルートを作成するサブネットが ARO クラスターの一部ではない場合

サービスプリンシパルを目的のロールで作成するか、既存のサービスプリンシパルにロールを追加するには、以下の手順に従います。
注:
サービスプリンシパルが既に存在する場合は、手順9に進んでサービスプリンシパルにロールを割り当ててください。
  1. Microsoft Azure Portal にログインします。
  2. App registrations サービスに移動します。
  3. New Registration をクリックします。
    新規登録
  4. 名前やサポートされているアカウントの種類などの詳細を入力します。
  5. Register をクリックしてサービスプリンシパルを作成します。
    サービスプリンシパルの詳細から clientID をメモします。
    クライアントID(/en-us/netscaler-k8s-ingress-controller/media/clientid.png)
  6. 左ペインで証明書とシークレットをクリックし、新しいクライアントシークレットをクリックします。
    クライアントシークレット(/en-us/netscaler-k8s-ingress-controller/media/client-secret.png)
  7. 説明を入力し、有効期限を選択します。
    クライアントシークレットの詳細(/en-us/netscaler-k8s-ingress-controller/media/client-secret-details.png)
  8. シークレット値をメモします。この値がclientSecretです。
    クライアントシークレット値(/en-us/netscaler-k8s-ingress-controller/media/client-secret-value.png)
  9. **リソースグループ → <Your Resource Group> → アクセス制御 (IAM)**に移動します。
    AROクラスターとVNetが存在するリソースグループを選択します。
  10. 追加をクリックし、カスタムロールの追加を選択します。
    カスタムロールの追加(/en-us/netscaler-k8s-ingress-controller/media/add-custom-role.png)
  11. 次のcustom.JSONサンプルを追加します。
    {
    "properties": {
        "roleName": "NetScaler Cloud Controller Role",
        "description": "Allows managing cloud controller role",
        "assignableScopes": [
            "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.Network/routeTables/routes/write",
                    "Microsoft.Network/routeTables/routes/read",
                    "Microsoft.Network/routeTables/routes/delete",
                    "Microsoft.Network/routeTables/delete",
                    "Microsoft.Network/routeTables/write",
                    "Microsoft.Network/routeTables/read",
                    "Microsoft.Network/routeTables/join/action",
                    "Microsoft.Network/networkSecurityGroups/join/action",
                    "Microsoft.Network/virtualNetworks/subnets/read",
                    "Microsoft.Network/virtualNetworks/subnets/write"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
    }
  12. 希望する設定に従ってcustom_role.jsonファイルを変更します。
    JSONファイルに、ご自身のリソースグループとサブスクリプションIDを追加する必要があります。
  13. ベースライン権限でJSONから開始を選択し、変更したcustom_role.jsonファイルをアップロードします。
    「カスタムロールの追加」(/en-us/netscaler-k8s-ingress-controller/media/add-custom-role-json.png)
  14. **「レビュー + 作成」**をクリックします。
  15. **「ロールの割り当ての追加」**に移動します。
    「ロールの割り当ての追加」(/en-us/netscaler-k8s-ingress-controller/media/add-custom-role-assignment.png)
  16. ステップ14で作成したカスタムロールを検索します。
  17. ロールを選択し、**「次へ」**を押します。
    「カスタムロールの検索」(/en-us/netscaler-k8s-ingress-controller/media/select-custom-role.png)
  18. **「メンバー」**の下で、ステップ5で作成したサービスプリンシパルを選択します。
    「ロールの割り当ての追加」(/en-us/netscaler-k8s-ingress-controller/media/add-role-assignment.png)
  19. **「レビュー + 割り当て」**をクリックします。

ケースII: ルートが作成されるサブネットがAROクラスターの一部である場合

この場合、OpenShiftのインストール中に作成されたサービスプリンシパルへのアクセスが必要です。AROのインストール中に自動的に作成されるサービスプリンシパルには、**aro-app-**というプレフィックスが付いています。
  1. AROクラスターとVNetが存在する**リソースグループ → <Your Resource Group>**に移動します。**リソースグループ → <Your Resource Group> → アクセス制御 (IAM)**に移動します。
  2. Addをクリックし、Add custom roleを選択します。
    「カスタムロールの追加」(/en-us/netscaler-k8s-ingress-controller/media/add-custom-role.png)
  3. 以下をcustom_role.json.という名前のJSONファイルにコピーします。
    {
    "properties": {
        "roleName": "NetScaler Cloud Controller Role",
        "description": "Allows managing cloud controller role",
        "assignableScopes": [
            "/subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP_NAME>"
        ],
        "permissions": [
            {
                "actions": [
                    "Microsoft.Network/routeTables/routes/write",
                    "Microsoft.Network/routeTables/routes/read",
                    "Microsoft.Network/routeTables/routes/delete",
                    "Microsoft.Network/routeTables/delete",
                    "Microsoft.Network/routeTables/write",
                    "Microsoft.Network/routeTables/read",
                    "Microsoft.Network/routeTables/join/action",
                    "Microsoft.Network/networkSecurityGroups/join/action",
                    "Microsoft.Network/virtualNetworks/subnets/read",
                    "Microsoft.Network/virtualNetworks/subnets/write"
                ],
                "notActions": [],
                "dataActions": [],
                "notDataActions": []
            }
        ]
    }
    }
  4. custom_role.jsonファイルを希望の設定に合わせて変更します。
    JSONファイルにリソースグループとサブスクリプションIDを追加する必要があります。
  5. ベースライン権限でJSONから開始を選択し、変更したcustom_role.jsonファイルをアップロードします。
    カスタムロールを追加(/en-us/netscaler-k8s-ingress-controller/media/add-custom-role-json.png)
  6. レビュー + 作成をクリックします。
  7. ロールの割り当てを追加をクリックします。
    ロールの割り当てを追加(/en-us/netscaler-k8s-ingress-controller/media/add-custom-role-assignment.png)
  8. ステップ4で作成したカスタムロールを検索します。ロールを選択し、次へをクリックします。
    カスタムロールを検索(/en-us/netscaler-k8s-ingress-controller/media/select-custom-role.png)
  9. メンバーセクションで、OpenShiftクラスターを管理しているサービスプリンシパルを選択します。
    ロールの割り当てを追加(/en-us/netscaler-k8s-ingress-controller/media/add-role-assignment.png)
  10. レビュー + 割り当てをクリックします。

NetScaler Cloud Controllerインスタンスをデプロイする手順

  1. 4.x OpenShiftコンソールにログインします。
  2. 「Operators > Installed Operators」に移動し、「NetScaler Operator」を選択します。
NetScaler Ingress Controller オペレーター(/en-us/netscaler-k8s-ingress-controller/media/ns-installed-Operators.png)
  1. NetScaler Operator に移動し、NetScaler Cloud Controller タブをクリックしてから、「Create NetScaler Cloud Controller」をクリックします。
    クラウドコントローラーの展開(/en-us/netscaler-k8s-ingress-controller/media/deploy-cloud-controller.png)
    NetScaler Cloud Controller CRD の YAML が表示されます。オプションで、Form view ボタンを選択し、フォームでパラメータを更新できます。
  2. .YAML ファイルを編集して、前提条件セクションで取得した以下の値を追加します。
    クラウドコントローラーの作成(/en-us/netscaler-k8s-ingress-controller/media/create-cloud-controller.png)
    表示される YAML のフィールドの説明については、以下の表を参照してください。
    パラメータ 必須/オプション デフォルト値 説明
    名前 必須 ネットスケーラークラウドコントローラー-サンプル NetScaler Cloud Controllerインスタンスの名前。
    acceptLicense 必須 いいえ NetScaler Cloud Controller EULAに同意するには、この値をYesに設定します。
    親和性 任意 該当なし ポッド割り当てのアフィニティラベル。
    nodeSelector 任意 該当なし NetScaler Cloud Controllerの展開におけるnodeSelectorオプションに使用されるノードラベルのキーと値のペア。
    podAnnotations 任意 N/A ポッドに追加するアノテーションのマップ。
    トレレーション 任意 N/A NetScaler Cloud Controllerデプロイメントのtolerations。
    パラメータ 必須/任意 デフォルト値 説明
    : アジュール:
    クライアントシークレット 必須 N/A 前提条件セクションで作成されたシークレット名。
    イメージ 必須 quay.io/netscaler/netscaler-cloud-controller@shavalue of latest release Quay.ioでホストされているNetScaler Cloud Controllerイメージ。
    場所 必須 N/A Azureの場所。
    pullPolicy 任意 IfNotPresent NetScaler Cloud Controllerイメージのプルポリシー。
    リソースグループ名 必須 N/A VNetが存在するリソースグループ名。
    リソース オプション 該当なし NetScaler Cloud ControllerコンテナのCPUとメモリのリソース。
    サブネット名 必須 該当なし AROクラスターへのルートを確立するAzure VNetサブネット名。このサブネットとAROクラスターは同じVNET内にある必要があります。
    サブスクリプションID 必須 該当なし AzureアカウントのサブスクリプションID。
    テナントID 必須 N/A AzureサービスプリンシパルのテナントID。
    VNet名 必須 N/A 必要なサブネットとOpenShiftクラスターが存在するAzure VNet名。
  3. 必要なパラメーターの値を更新した後、作成をクリックします。
  4. ワークロード > Podsセクションに移動し、NetScaler Cloud Controllerポッドが稼働していることを確認します。
コントローラーポッドが稼働すると、必要なサブネットを持つルートテーブルが作成されます。
注記:
  • ルートテーブルが存在しない場合、コントローラーはルートテーブルを作成し、指定されたサブネットに関連付けます。新しいテーブルの形式は<SUBNET_NAME>_<LOCATION>_rtになります。
  • 他の自動化プロセスやユーザーによってNetScaler Cloud Controllerから作成/更新されたルートとの競合を避けるため、NetScaler Cloud Controllerによって管理されるルートは、追跡用のハッシュ値が続くプレフィックス**NSCC_**で始まります。競合を避けるために、同じ名前のプレフィックスを持つルートを作成しないでください。
NetScaler Cloud Controllerがデプロイされると、以下のロールがインストールされます。NetScaler Cloud Controllerは、そのCRDを管理し、ノード固有の情報を取得するためにこれらのロールを必要とします。
APIグループ リソース 動詞
rbac.authorization.k8s.io クラスターロールバインディング 作成、削除、取得、一覧表示、パッチ、更新、監視
rbac.authorization.k8s.io クラスターロール 作成、削除、取得、一覧表示、パッチ、更新、監視
コア ノード すべて
コア サービスアカウント 作成、削除、取得、一覧表示、パッチ、更新、監視
アプリ デプロイメント 作成、削除、取得、一覧表示、パッチ、更新、監視
コア ポッド 作成、削除、取得、一覧表示、パッチ、更新、監視、サービスアカウント