NetScaler IPAM Controller を介した動的 IP アドレス割り当て

最終公開日 : Oct 02, 2026
NetScaler Kubernetes Gateway Controller は、NetScaler IPAM Controller を使用して Kubernetes Gateway リソースの IP アドレス割り当てをサポートします。IPAM が有効になっている場合、spec.addresses で静的 IP アドレスが設定されていないゲートウェイは、NetScaler IPAM Controller から仮想 IP (VIP) アドレスを自動的に受け取ります。この機能により、各ゲートウェイに IP アドレスを手動で割り当てて追跡する必要がなくなります。

前提条件

NetScaler IPAM Controller を介した動的 IP アドレス割り当てを構成する前に、以下を確認してください。
  • NetScaler Gateway Controller が Helm values.yaml の ipam: True とともに展開されていること。詳細については、「NetScaler Kubernetes Gateway Controller の展開」を参照してください。
  • NetScaler IPAM Controller が IP アドレス範囲とともにクラスターに展開されていること。目的の IP アドレス範囲で NetScaler IPAM Controller を展開する方法については、「NetScaler IPAM Controller インストールガイド」を参照してください。
    VIP_RANGE を構成する際に、Gateway アノテーションから参照できる名前付き範囲 (例: Production、Staging) と、デフォルトプールとして機能する名前なし範囲を定義できます。

構成

NetScaler IPAM Controller を介した動的 IP アドレス割り当てを構成するには、次の手順を実行します。

ステップ 1: GatewayClass を作成する

NetScaler Kubernetes Gateway Controller 名で GatewayClass を作成します。
apiVersion: gateway.networking.k8s.io/v1
kind: GatewayClass
metadata:
  name: citrix-gateway-class
spec:
  controllerName: citrix.com/nsgc-controller

ステップ 2: Gateway を作成する

spec.addresses なしで Gateway を作成します。NetScaler IPAM Controller は、構成されたプールから IP アドレスを自動的に割り当てます。

基本的な Gateway (デフォルトの IP 範囲)

apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: my-gateway
  namespace: default
spec:
  gatewayClassName: citrix-gateway-class
  listeners:
    - name: http-listener
      protocol: HTTP
      port: 80
      allowedRoutes:
        namespaces:
          from: All

名前付き IP 範囲を持つ Gateway

Gatewayにgateway.citrix.com/ipam-rangeアノテーションを使用して、特定の名前付き範囲からIPアドレスを割り当てます。
apiVersion: gateway.networking.k8s.io/v1
kind: Gateway
metadata:
  name: production-gateway
  annotations:
    gateway.citrix.com/ipam-range: "Production"
spec:
  gatewayClassName: citrix-gateway-class
  listeners:
    - name: https-listener
      protocol: HTTPS
      port: 443
      allowedRoutes:
        namespaces:
          from: All
アノテーション内の範囲名は、NetScaler IPAMコントローラーのVIP_RANGE設定で定義された名前付き範囲と一致する必要があります。

IPアドレスの割り当てを確認する

Gatewayを作成した後、status.addressesフィールドを確認して、割り当てられたIPアドレスを確認します。
kubectl get gateway my-gateway -o jsonpath='{.status.addresses}'
期待される出力:
[{"type":"IPAddress","value":"10.1.2.1"}]

静的IP 対 IPAM

設定 動作
spec.addressesが設定されている NetScaler Kubernetes Gateway Controllerは、指定されたIPアドレスを直接使用します。IPAMは呼び出されません。
spec.addressesが省略されている IPAMが有効になっている場合、NetScaler Kubernetes Gateway ControllerはNetScaler IPAMコントローラーからIPアドレスを要求します。
Gatewayに特定のIPアドレスが必要な場合は、spec.addressesで明示的に設定します。
spec:
  addresses:
    - type: IPAddress
      value: "10.1.2.50"

アノテーションリファレンス

アノテーション スコープ 説明
gateway.citrix.com/ipam-range ゲートウェイ NetScaler IPAM Controllerがアドレスを割り当てる、名前付きIPアドレス範囲を指定します。省略した場合、デフォルト(名前なし)の範囲が使用されます。

トラブルシューティング

症状 考えられる原因 解決策
ゲートウェイがIPアドレスを割り当てられずに保留状態のままになる NetScaler Kubernetes Gateway Controllerの展開中に、NetScaler IPAMコントローラーが実行されていないか、有効になっていない NetScaler IPAMコントローラーポッドが実行されていること、およびNetScaler Kubernetes Gateway Controllerのvalues.yamlにipam: Trueが設定されていることを確認します。
予期された範囲からIPアドレスが割り当てられない アノテーションの範囲名がNetScaler IPAM構成と一致しない gateway.citrix.com/ipam-rangeアノテーションの値が、NetScaler IPAMコントローラーのVIP_RANGEにある名前付き範囲と一致することを確認します。
IPプールが枯渇しました 設定された範囲内のすべてのIPアドレスが割り当てられています NetScaler IPAM Controllerの設定でVIP_RANGEを拡張するか、未使用のGatewayを解放してください
spec.addressesが設定されると、GatewayはIPAMなしで動作します 予期される動作 静的アドレスはIPAMをバイパスします。IPAM割り当てを使用するには、spec.addressesを削除してください

制限事項

  • 各Gatewayは、NetScaler IPAM Controllerから単一のVIPを受け取ります。
  • gateway.citrix.com/ipam-rangeアノテーションは、NetScaler IPAMコントローラー設定に存在する範囲名を参照する必要があります。無効な範囲名はIP割り当てを妨げます。
  • アノテーションが省略されている場合、NetScaler IPAM Controllerは、デフォルトの(名前のない)プールからIPを自動的に割り当てます(設定されている場合)。