È 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

È possibile utilizzare le funzionalità 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