Routage basé sur des politiques pour plusieurs clusters Kubernetes
Lors de l'utilisation d'un seul NetScaler pour équilibrer la charge de plusieurs clusters Kubernetes, NetScaler Ingress Controller ajoute des réseaux CIDR de pods dans NetScaler via des routes statiques. Ces routes établissent la connectivité réseau entre les pods Kubernetes et NetScaler. Cependant, lorsque les CIDR de pods se chevauchent, des conflits de routage peuvent survenir. NetScaler prend en charge le routage basé sur des politiques (PBR) pour résoudre les conflits de réseau dans de tels scénarios. En PBR, les décisions de routage sont prises en fonction des critères que vous spécifiez. Généralement, un saut suivant est spécifié où NetScaler VPX ou NetScaler MPX envoie les paquets sélectionnés. Dans un environnement GSLB Kubernetes, le PBR est implémenté en réservant une adresse IP de sous-réseau (SNIP) pour chaque cluster Kubernetes ou le NetScaler Ingress Controller. À l'aide du profil réseau, le SNIP est lié à tous les groupes de services créés par le même NetScaler Ingress Controller. Pour tout le trafic généré par les groupes de services appartenant au même cluster, l'adresse IP source est le même SNIP.
Dans la topologie d'exemple suivante, le PBR est configuré pour deux clusters Kubernetes, qui sont équilibrés en charge à l'aide de NetScaler MPX ou NetScaler VPX.
Configurer le PBR à l'aide de NetScaler Ingress Controller
Pour configurer le PBR, vous avez besoin d'un ou plusieurs SNIP par cluster Kubernetes. Vous pouvez fournir les valeurs SNIP à l'aide du paramètre
nsSNIPS dans la commande d'installation Helm de NSIC.
Utilisez le fichier
values.yml suivant dans la commande d'installation Helm pour déployer NetScaler Ingress Controller et configurer le PBR.
nsIP: <NS_IP>
license:
accept: yes
adcCredentialSecret: <secret>
nodeWatch: True
clusterName: <name of cluster>
nsSNIPS: '["1.2.3.4", "5.6.7.8"]'
Valider la configuration PBR sur NetScaler après le déploiement de NetScaler Ingress Controller
Cet exemple de validation utilise un cluster Kubernetes à deux nœuds avec NetScaler Ingress Controller déployé, ainsi que le ConfigMap suivant avec deux SNIP.
Vous pouvez vérifier que NetScaler Ingress Controller ajoute les configurations suivantes à NetScaler :
-
Pour vérifier si l'IPset de tous les NS_SNIPs est ajouté, exécutez la commande suivante :
show ipset k8s-pbr_ipset.
-
Un profil réseau est ajouté avec le
SrcIPdéfini sur leIPset.
-
Pour vérifier si le groupe de services ajouté par NetScaler Ingress Controller contient l'ensemble de profils réseau, exécutez
show servicegroup.
-
Exécutez la commande suivante pour vérifier si le PBR est ajouté :
shpbr.
Ici :-
Le nombre de PBR est équivalent à (nombre de SNIP)
*(nombre de nœuds Kubernetes). Dans ce cas, il ajoute quatre (2*2) PBR. -
Le
srcIPdu PBR est leNS_SNIPSfourni à NetScaler Ingress Controller par ConfigMap. LedestIPest la plage de sous-réseaux de superposition CNI du nœud Kubernetes. -
NextHopest l'adresse IP du nœud Kubernetes.
-
-
Vous pouvez également utiliser les journaux du NetScaler Ingress Controller pour valider la configuration.

Configurer le PBR à l'aide du contrôleur de nœud NetScaler
Vous pouvez configurer le PBR à l'aide du contrôleur de nœud NetScaler pour plusieurs clusters Kubernetes. Lorsque vous utilisez un seul NetScaler pour équilibrer la charge de plusieurs clusters Kubernetes avec le contrôleur de nœud NetScaler pour la mise en réseau, les routes statiques ajoutées par celui-ci pour transférer les paquets à l'adresse IP de l'interface du tunnel VXLAN peuvent provoquer des conflits de routage. Pour prendre en charge le PBR, le contrôleur de nœud NetScaler doit fonctionner conjointement avec le NetScaler Ingress Controller pour lier le profil réseau au groupe de services.
Effectuez les étapes suivantes pour configurer le PBR à l'aide du contrôleur de nœud NetScaler :
-
Lors du démarrage du contrôleur de nœud NetScaler, fournissez le
CLUSTER_NAMEcomme variable d'environnement. La spécification de cette variable indique qu'il s'agit d'un déploiement multi-cluster et que le contrôleur de nœud NetScaler configure le PBR au lieu des routes statiques.Exemple :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>,clusterName=<cluster-name> -
Lors du déploiement de NetScaler Ingress Controller, fournissez le
CLUSTER_NAMEcomme variable d'environnement. Cette valeur doit être la même que celle fournie dans le contrôleur de nœud, et activez le PBR en utilisant l'argumentnsncPbr=Truepour configurer le PBR sur NetScaler.
Remarques :
-
La valeur fournie pour
CLUSTER_NAMEdans les fichiers de déploiement du contrôleur de nœud NetScaler et du contrôleur d'entrée NetScaler doit correspondre lorsqu'ils sont déployés dans le même cluster Kubernetes. -
Le
CLUSTER_NAMEest utilisé lors de la création de l'entité de profil réseau et de sa liaison aux groupes de services sur NetScaler VPX ou NetScaler MPX.
Valider la configuration PBR sur NetScaler après le déploiement du contrôleur de nœud NetScaler
Cet exemple de validation utilise un cluster Kubernetes à deux nœuds avec le contrôleur de nœud NetScaler et le contrôleur d'entrée NetScaler déployés.
Vous pouvez vérifier que les configurations suivantes sont ajoutées au NetScaler par le contrôleur de nœud NetScaler :
-
Exécutez la commande suivante :
show netprofile.Un profil réseau est ajouté avec la valeur desrcIPdéfinie sur le SNIP ajouté par le contrôleur de nœud lors de la création du réseau de tunnel VXLAN entre NetScaler et les nœuds Kubernetes.
-
Exécutez la commande suivante :
shservicegroup.NetScaler Ingress Controller lie le profil réseau aux groupes de services qu'il crée.
-
Exécutez la commande suivante :
show pbr.Le contrôleur de nœud NetScaler ajoute des PBR.
Ici :
-
Le nombre de PBR est égal au nombre de nœuds Kubernetes. Dans ce cas, il ajoute deux PBR.
-
Le
srcIPdu PBR est leSNIPajouté par le contrôleur de nœud NetScaler dans le réseau de tunnel. LedestIPest la plage de sous-réseaux de superposition CNI du nœud Kubernetes. LeNextHopest l'adresse IP de l'interface de tunnel VXLAN du nœud Kubernetes.
Remarque :
Le contrôleur de nœud NetScaler ajoute des PBR au lieu de routes statiques. Le reste de la configuration du VXLAN et de la table de pontage reste le même. Pour plus d'informations, consultez la configuration du contrôleur de nœud NetScaler.