Vous pouvez configurer un service Kubernetes de type LoadBalancer pour qu'il autorise le trafic d'équilibrage de charge en fonction de l'adresse IP source de la demande entrante, et pour autoriser uniquement le trafic de l'espace local.
Exigences minimales
externalTrafficPolicy
et
LoadBalancerSourceRanges
avec un service Kubernetes de type LoadBalancer sur un cluster
Tanzu Kubernetes qui répond aux exigences minimales suivantes :
Composant | Configuration minimale requise | Plus d'informations |
---|---|---|
vCenter Server et ESXi | vSphere 7.0 Update 2 | Consultez les Notes de mise à jour. |
Cluster superviseur | v1.19.1+vmware.2-vsc0.0.8-17610687 |
Reportez-vous à la section Mettre à jour le Cluster superviseur en effectuant une mise à jour des espaces de noms vSphere. |
Équilibrage de charge | NSX-T Data Center 3.1 |
Reportez-vous à la section Mise en réseau pour vSphere with Tanzu. |
Version de Tanzu Kubernetes | L'une des dernières versions de Tanzu Kubernetes. | Reportez-vous à la section Vérifier la compatibilité du cluster Tanzu Kubernetes pour la mise à jour. |
À propos de la prise en charge de la stratégie de trafic local et des plages d'adresses IP sources
Si vous utilisez la mise en réseau NSX-T Data Center, vous pouvez configurer un service Kubernetes de type LoadBalancer pour autoriser la stratégie de trafic externe et les plages d'adresses IP sources de l'équilibrage de charge. La fonctionnalité externalTrafficPolicy
vous permet de limiter le trafic de l'espace au nœud local. La fonctionnalité LoadBalancerSourceRange
vous permet de spécifier les adresses IP sources à autoriser ou à bloquer.
Exemple de service pour le trafic local uniquement
La spécification de service d'équilibrage de charge suivante configure l'instance d'équilibrage de charge avec le paramètre externalTrafficPolicy
défini sur Local
. Par conséquent, le trafic de l'espace est acheminé uniquement vers les nœuds qui ont des espaces locaux en cours d'exécution.
apiVersion: v1 kind: Service metadata: name: local-only spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 externalTrafficPolicy: Local type: LoadBalancer
La fonctionnalité fonctionne à l'aide d'une surveillance de santé NSX-T. Du point de vue de l'administration NSX-T, il est important de connaître les opérations internes de cette fonctionnalité.
Un contrôle de santé NSX-T surveille le Kubernetes Health Check NodePort alloué par kube-proxy pour le pool de serveurs qui correspond au service de type LoadBalancer. Un contrôle de santé NSX-T envoie des demandes HTTP GET au Health Check NodePort cible. Le kube-proxy sur un nœud renvoie le code d'état HTTP 500 lorsqu'aucun espace local n'est en cours d'exécution. Les nœuds qui n'ont pas d'espaces locaux seront marqués comme INACTIF par NSX-T et s'afficheront comme tels dans NSX Manager. Le trafic sera acheminé uniquement vers les nœuds qui ont des espaces locaux en cours d'exécution.
Exemple de service pour autoriser le trafic basé sur des plages d'adresses IP sources
La spécification de service d'équilibrage de charge suivante configure le paramètre loadBalancerSourceRanges
avec un tableau de CIDR IP sources autorisés. Seules les demandes entrantes provenant de ces plages d'adresses IP sources seront autorisées ; tout autre trafic entrant sera abandonné.
apiVersion: v1 kind: Service metadata: name: allow-based-on-source-IPs spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 loadBalancerSourceRanges: - 10.0.0.0/24 - 10.1.0.0/24 type: LoadBalancer