NetScalerノードコントローラーを使用したOpenShift向けOVN-CNIサポート

最終公開日 : Oct 02, 2026
ノードコントローラーとルーターポッドは、OpenShift 4.xクラスターのデフォルトCNIであるOVN-Kubernetesをサポートするようになりました。OpenShiftノードとNetScaler®の間で、ovn-k8s-mp0インターフェースを使用してVXLANオーバーレイネットワークが確立されます。
NetScaler Node Controllerは、NetScalerへのVXLANオーバーレイを構築するために、各ノードで1つのkube-cnc-routerポッドを実行します。この機能強化により、そのポッドセットは自己修復可能になります。ルーターポッドが削除されたり、単一ノードで障害が発生したりした場合(例えば、ノードネットワークの一時的な問題の後など)、Node Controllerはそのノードのポッドのみを自動的に再作成します。これは、Node Controller全体を再起動することなく、健全なノードを中断することなく行われます。各ノードは、ポッドの再作成やコントローラーの再起動後も安定したVTEP IPを維持します。さらに、この機能強化により、Kubernetesネイティブの活性プローブと準備プローブがNode Controllerとルーターポッドの両方に追加されます。詳細については、「自己修復ルーターポッドとネイティブヘルスチェック」を参照してください。

OVN-Kubernetesを使用してOpenShiftをデプロイする

前提条件

  • OVN-Kubernetes CNIを備えたOpenShift 4.xクラスター
  • すべてのクラスターノードから到達可能なNetScaler (NetScaler)
  • VTEPオーバーレイ用の専用サブネット(ポッドまたはノードCIDRと重複しないこと)
  • kubectl/oc CLI(クラスター管理者アクセス権付き)

ステップ1: 名前空間とシークレットを作成する

oc new-project netscaler

kubectl create secret generic nslogin \
  --from-literal=username='<your-adc-username>' \
  --from-literal=password='<your-adc-password>' \
  -n netscaler

ステップ2: セキュリティコンテキスト制約を作成する(OpenShiftのみ)

ルーターポッドはOpenShiftで特権アクセスを必要とします。サービスアカウントのセキュリティコンテキスト制約(SCC)バインディングを作成します。
oc adm policy add-scc-to-user privileged system:serviceaccount:<namespace>:<service account of node controller>
<namespace>と<service account of node controller>を更新します。

ステップ3: ノードコントローラーをデプロイする

helm repo add netscaler https://netscaler.github.io/netscaler-helm-charts/

helm install nsnc netscaler/netscaler-node-controller --set license.accept=yes,nsIP=<NSIP>,vtepIP=<NetScaler SNIP>,vxlan.id=<VXLAN ID>,vxlan.port=<VXLAN PORT>,network=<IP-address-range-for-VTEP-overlay>,adcCredentialSecret=<Secret-for-NetScaler-credentials>,cniType=<CNI-overlay-name>,nsncRouterImage=<Image of nsncRouter>
変数 説明 例
nsIP NetScaler管理IP (NSIP/SNIP/CLIP) -
adcCredentialSecret NetScaler資格情報 (シークレット nslogin 経由) —
network VTEPオーバーレイサブネット — ポッド/ノードCIDRと重複してはなりません 172.16.3.0/24
vtepIP VTEPエンドポイントとして使用されるNetScaler SNIP 10.10.10.2
vxlan.id VXLAN VNI — NetScaler上の既存のVXLANと競合してはなりません 175
vxlan.port VXLAN UDPポート — NetScaler上の既存のVXLANと競合してはなりません 8472
cniType OpenShift OVN-Kubernetesの場合はovnに設定します ovn
nsncRouterImage ノードコントローラールーターイメージ quay.io/netscaler/nsnc-router:2.0.0
image ノードコントローラーイメージ quay.io/netscaler/netscaler-k8s-node-controller/3.0.0

ステップ4: デプロイの検証

ノードコントローラーポッドが実行中であることを確認します:
kubectl get pods -n netscaler
ノードごとにルーターポッドが作成されていることを確認します:
kubectl get pods -n netscaler | grep cnc-router
CNCルーターConfigMapが設定されていることを確認します:
kubectl get configmap -n netscaler -o yaml
各ノードには次のエントリが必要です: Host-<node>, Node-<ip>, Mac-<ip>, Interface-<ip>, CNI-<ip>。
NetScalerで検証します:
show vxlan
show bridgetable
show route
show ip
期待される結果: VXLANトンネル、ノードごとのブリッジテーブルエントリ、SNIP、およびポッドネットワークルートがすべて存在します。

クリーンアップ / アンインストール

helm delete nsnc -n netscaler

制限事項

  • ノードコントローラーの削除中に、NetScalerからブリッジテーブルエントリはクリーンアップされません。(ルート、VXLAN、SNIPのみが削除されます)。