Prise en charge d'OVN-CNI pour OpenShift à l'aide du contrôleur de nœud NetScaler

Dernière publication : Oct 02, 2026
Le contrôleur de nœud et le pod routeur prennent désormais en charge OVN-Kubernetes, le CNI par défaut dans les clusters OpenShift 4.x. Un réseau de superposition VXLAN est établi entre les nœuds OpenShift et le NetScaler® à l'aide de l'interface ovn-k8s-mp0.
Le contrôleur de nœud NetScaler exécute un pod kube-cnc-router sur chaque nœud pour construire la superposition VXLAN vers NetScaler. Cette amélioration rend cet ensemble de pods auto-réparateur. Si un pod routeur est supprimé ou échoue sur un seul nœud, par exemple après un problème transitoire dans le réseau du nœud, le contrôleur de nœud recrée automatiquement uniquement le pod de ce nœud. Il le fait sans redémarrer l'ensemble du contrôleur de nœud et sans perturber les nœuds sains. Chaque nœud conserve également une adresse IP VTEP stable lors des recréations de pods et des redémarrages du contrôleur. De plus, cette amélioration ajoute des sondes de liveness et de readiness natives de Kubernetes au contrôleur de nœud et aux pods routeurs. Pour plus d'informations, consultez Pods routeurs auto-réparateurs et vérifications de santé natives.

Déployer OpenShift avec OVN-Kubernetes

Prérequis

  • Cluster OpenShift 4.x avec CNI OVN-Kubernetes
  • NetScaler (NetScaler) accessible depuis tous les nœuds du cluster
  • Un sous-réseau dédié pour la superposition VTEP (ne doit pas chevaucher les CIDR de pod ou de nœud)
  • CLI kubectl/oc avec accès cluster-admin

Étape 1 : Créer l'espace de noms et le secret

oc new-project netscaler

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

Étape 2 : Créer la contrainte de contexte de sécurité (OpenShift uniquement)

Les pods routeurs nécessitent un accès privilégié sur OpenShift. Créez une liaison de contrainte de contexte de sécurité (SCC) pour le compte de service :
oc adm policy add-scc-to-user privileged system:serviceaccount:<namespace>:<service account of node controller>
Mettez à jour <namespace> et <service account of node controller>.

Étape 3 : Déployer le contrôleur de nœud

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>
Variable Description Exemple
nsIP Adresse IP de gestion NetScaler (NSIP/SNIP/CLIP) -
adcCredentialSecret Informations d'identification NetScaler (via le secret nslogin) —
network Sous-réseau de superposition VTEP — ne doit pas chevaucher les CIDR de pod/nœud 172.16.3.0/24
vtepIP SNIP NetScaler utilisé comme point de terminaison VTEP 10.10.10.2
vxlan.id VNI VXLAN — ne doit pas entrer en conflit avec les VXLAN existants sur NetScaler 175
vxlan.port Port UDP VXLAN — ne doit pas entrer en conflit avec les VXLAN existants sur NetScaler 8472
cniType Définissez sur ovn pour OpenShift OVN-Kubernetes ovn
nsncRouterImage Image du routeur du contrôleur de nœud quay.io/netscaler/nsnc-router:2.0.0
image Image du contrôleur de nœud quay.io/netscaler/netscaler-k8s-node-controller/3.0.0

Étape 4 : Vérifier le déploiement

Vérifier que le pod du contrôleur de nœud est en cours d'exécution :
kubectl get pods -n netscaler
Vérifier que les pods de routeur sont créés par nœud :
kubectl get pods -n netscaler | grep cnc-router
Vérifier que le ConfigMap du routeur CNC est renseigné :
kubectl get configmap -n netscaler -o yaml
Chaque nœud doit avoir les entrées suivantes : Host-<node>, Node-<ip>, Mac-<ip>, Interface-<ip>, CNI-<ip>.
Vérifier sur NetScaler :
show vxlan
show bridgetable
show route
show ip
Attendu : le tunnel VXLAN, les entrées de table de pont par nœud, le SNIP et les routes du réseau de pods sont tous présents.

Nettoyage / Désinstallation

helm delete nsnc -n netscaler

Limitations

  • Les entrées de la table de pont ne sont pas nettoyées du NetScaler lors de la suppression du contrôleur de nœud. (seules les routes, le VXLAN et le SNIP sont supprimés).