Prise en charge d'OVN-CNI pour OpenShift à l'aide du contrôleur de nœud NetScaler
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/ocavec 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).