È possibile configurare un servizio Kubernetes di tipo LoadBalancer per consentire il traffico del bilanciamento del carico in base all'indirizzo IP di origine della richiesta in entrata e per consentire solo il traffico del pod locale.
Requisiti minimi
externalTrafficPolicy
e
LoadBalancerSourceRanges
con un servizio Kubernetes di tipo LoadBalancer in un cluster di
Tanzu Kubernetes che soddisfi i requisiti minimi seguenti:
Componente | Requisito minimo | Ulteriori informazioni |
---|---|---|
vCenter Server ed ESXi | vSphere 7.0 Update 2 | Vedere le Note di rilascio. |
Cluster supervisore | v1.19.1+vmware.2-vsc0.0.8-17610687 |
Vedere Aggiornamento dei Cluster supervisore eseguendo un aggiornamento degli spazi dei nomi vSphere. |
Bilanciamento del carico | NSX-T Data Center v3.1 |
Vedere Servizi di rete per vSphere with Tanzu. |
Versione di Tanzu Kubernetes | Una delle versioni più recenti di Tanzu Kubernetes. | Vedere Elenco di Release di Tanzu Kubernetes. |
Informazioni sul supporto di criterio traffico locale e intervalli di IP di origine
Se si utilizza una rete NSX-T Data Center, è possibile configurare un servizio Kubernetes di tipo LoadBalancer per consentire il criterio del traffico esterno e intervalli di IP di origine del bilanciamento del carico. La funzionalità externalTrafficPolicy
consente di limitare il traffico del pod al nodo locale. La funzionalità LoadBalancerSourceRange
consente di specificare gli indirizzi IP di origine da consentire o bloccare.
Servizio di esempio per il solo traffico locale
La seguente definizione del servizio di bilanciamento del carico configura l'istanza del bilanciamento del carico con il parametro externalTrafficPolicy
impostato su Local
. Come risultato, il traffico del pod viene instradato solo verso i nodi in cui sono in esecuzione pod locali.
apiVersion: v1 kind: Service metadata: name: local-only spec: selector: app: testApp ports: - protocol: TCP port: 80 targetPort: 80 externalTrafficPolicy: Local type: LoadBalancer
La funzionalità funziona utilizzando un monitoraggio del controllo dello stato di NSX-T. Dal punto di vista dell'amministrazione di NSX-T, è importante tenere presenti le operazioni interne di questa funzionalità.
Un monitoraggio del controllo dello stato di NSX-T integrità monitora il Kubernetes Health Check NodePort allocato da kube-proxy per il pool di server corrispondente al servizio di tipo LoadBalancer. Il monitoraggio del controllo dello stato di NSX-T invia le richieste HTTP GET all'Health Check NodePort di destinazione. Il kube-proxy di un nodo restituisce il codice di stato HTTP 500 quando non sono presenti pod locali in esecuzione. I nodi che non dispongono di pod locali verranno contrassegnati come inattivi da NSX-T e visualizzati come tali in NSX Manager. Il traffico verrà instradato solo ai nodi in cui sono in esecuzione pod locali.
Servizio di esempio per consentire il traffico in base agli intervalli di IP di origine
La seguente definizione del servizio di bilanciamento del carico configura il parametro loadBalancerSourceRanges
con un array di CIDR di IP di origine consentiti. Saranno consentite solo le richieste in entrata provenienti da questi intervalli IP di origine. Tutto il traffico in entrata restante verrà eliminato.
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