Esaminare le topologie che è possibile implementare per il bilanciamento del carico HAProxy per un Supervisore configurato con la rete VDS. Quando si utilizza vSphere IaaS control plane con rete VDS, HAProxy fornisce il bilanciamento del carico per gli sviluppatori che accedono al piano di controllo di Tanzu Kubernetes Grid e per i servizi Kubernetes di tipo bilanciamento del carico.

Reti del carico di lavoro in Supervisore

Per configurare un Supervisore con la rete VDS, è necessario connettere tutti gli host del cluster a un VDS. In base alla topologia implementata per le reti del carico di lavoro di Supervisore, è necessario creare uno o più gruppi di porte distribuiti. I gruppi di porte vengono designati come reti del carico di lavoro in Spazi dei nomi vSphere.

Le reti del carico di lavoro forniscono connettività ai nodi dei cluster di Tanzu Kubernetes Grid e alle macchine virtuali del piano di controllo di Supervisore. La rete del carico di lavoro che fornisce connettività alle macchine virtuali del piano di controllo di Kubernetes è denominata rete del carico di lavoro primario. Ogni Supervisore deve avere una rete del carico di lavoro primaria. È necessario designare uno dei gruppi di porte distribuite come rete del carico di lavoro primaria in Supervisore.
Nota: Le reti del carico di lavoro vengono aggiunte solo quando si abilita il Supervisore e non possono essere aggiunte in un secondo momento.

Le macchine virtuali del piano di controllo di Kubernetes nel Supervisore utilizzano tre indirizzi IP dell'intervallo di indirizzi IP assegnato alla rete del carico di lavoro primaria. A ogni nodo di un cluster di Tanzu Kubernetes Grid è assegnato un indirizzo IP distinto dell'intervallo di indirizzi della rete del carico di lavoro configurata con lo spazio dei nomi in cui viene eseguito il cluster di Tanzu Kubernetes Grid.

Allocazione di intervalli IP

Quando si pianifica la topologia di rete del Supervisore con il bilanciamento del carico HAproxy, prevedere di implementare due tipi di intervalli di IP:
  • Un intervallo per l'allocazione di IP virtuali per HAProxy. L'intervallo di indirizzi IP configurato per i server virtuali di HAProxy è riservato dall'appliance di bilanciamento del carico. Ad esempio, se l'intervallo di IP virtuali è 192.168.1.0/24, tutti gli host di tale intervallo non sono accessibili al traffico diverso dal traffico IP virtuale.
    Nota: Non configurare un gateway all'interno dell'intervallo di IP virtuali di HAProxy, perché tutte le route verso tale gateway non verranno eseguite correttamente.
  • Un intervallo di indirizzi IP per i nodi di Supervisore e dei cluster di Tanzu Kubernetes Grid. A ogni macchina virtuale del piano di controllo di Kubernetes nel Supervisore è assegnato un indirizzo IP, per un totale di tre indirizzi IP. A ogni nodo di un cluster di Tanzu Kubernetes Grid è assegnato anche un IP separato. È necessario assegnare un intervallo di indirizzi IP univoco a ogni rete del carico di lavoro nel Supervisore configurata per uno spazio dei nomi.

Configurazione di esempio con una rete /24:

  • Rete: 192.168.120.0/24
  • VIP di HAProxy: 192.168.120.128/25
  • 1 indirizzo IP per l'interfaccia del carico di lavoro di HAProxy: 192.168.120.5

In base agli IP che sono liberi nei primi 128 indirizzi, è possibile definire intervalli di IP per le reti del carico di lavoro nel Supervisore, ad esempio:

  • 192.168.120.31-192.168.120.40 per la rete del carico di lavoro primaria
  • 192.168.120.51-192.168.120.60 per un'altra rete del carico di lavoro
Nota: Gli intervalli definiti per le reti del carico di lavoro non devono sovrapporsi all'intervallo di VIP di HAProxy.

Topologia di rete di HAProxy

Sono disponibili due opzioni di configurazione di rete per la distribuzione di HAProxy: Predefinito e Front-end. La rete predefinita include 2 NIC, una per la rete di gestione e una per la rete del carico di lavoro. La rete front-end include 3 NIC, ovvero rete di gestione, rete del carico di lavoro e rete front-end per i client. Nella tabella sono elencate e descritte le caratteristiche di ciascuna rete.

Per le installazioni di produzione, è consigliabile distribuire il bilanciamento del carico HAProxy utilizzando la configurazione Rete front-end. Se si distribuisce il bilanciamento del carico HAProxy utilizzando la configurazione Predefinito, è consigliabile assegnare dimensioni del blocco di indirizzi IP /24 alla rete del carico di lavoro. Per entrambe le opzioni di configurazione, DHCP non è consigliabile.
Network Caratteristiche
Gestione
Il cluster supervisore utilizza la rete di gestione per connettersi al bilanciamento del carico HAProxy e programmarlo.
  • L'endpoint dell'API del piano dati di HAProxy viene associato all'interfaccia di rete connessa alla rete di gestione.
  • L'indirizzo IP di gestione assegnato alla macchina virtuale del piano di controllo HAProxy deve essere un IP statico nella rete di gestione in modo che il cluster supervisore possa connettersi in modo affidabile all'API del bilanciamento del carico.
  • Il gateway predefinito per la macchina virtuale HAProxy deve trovarsi in questa rete.
  • Le query DNS devono essere eseguite su questa rete.
Carico di lavoro
La macchina virtuale del piano di controllo di HAProxy utilizza la rete del carico di lavoro per accedere ai servizi nei nodi del cluster supervisore e del cluster di Tanzu Kubernetes.
  • La macchina virtuale del piano di controllo di HAProxy inoltra il traffico ai nodi del cluster supervisore e del cluster di Tanzu Kubernetes in questa rete.
  • Se la macchina virtuale del piano di controllo di HAProxy è distribuita nella modalità predefinita (due NIC), la rete del carico di lavoro deve fornire le reti logiche utilizzate per accedere ai servizi del bilanciamento del carico.
  • Nella configurazione Predefinito, gli IP virtuali del bilanciamento del carico e gli IP dei nodi del cluster di Kubernetes provengono da questa rete. Verranno definiti come intervalli separati non sovrapposti all'interno della rete.
Nota: La rete del carico di lavoro deve trovarsi in una subnet diversa da quella della rete di gestione. Fare riferimento ai requisiti di sistema.
Front-end (facoltativo)

I client esterni (ad esempio utenti o applicazioni) che accedono ai carichi di lavoro del cluster utilizzano la rete front-end per accedere ai servizi di bilanciamento del carico back-end utilizzando gli indirizzi IP virtuali.

  • La rete front-end viene utilizzata solo quando la macchina virtuale del piano di controllo di HAProxy viene distribuita con tre schede NIC.
  • Consigliata per le installazioni di produzione.
  • Nella rete front-end viene esposto l'indirizzo IP virtuale (VIP). HAProxy bilancerà e inoltrerà il traffico al back-end appropriato.

Il diagramma seguente illustra una distribuzione HAProxy che utilizza una topologia Rete front-end. Il diagramma indica dove sono previsti campi di configurazione durante il processo di installazione e configurazione.

""

Topologia del Supervisore con una rete del carico di lavoro e un HAProxy con due NIC virtuali

In questa topologia si configura un Supervisore con una rete del carico di lavoro per i seguenti componenti:

  • Macchine virtuali del piano di controllo Kubernetes
  • I nodi dei cluster di Tanzu Kubernetes Grid.
  • L'intervallo di IP virtuali di HAProxy dove si connettono i servizi esterni e gli utenti DevOps. In questa configurazione, HAProxy viene distribuito con due NIC virtuali (configurazione Predefinito), una connessa alla rete di gestione e una seconda connessa alla rete del carico di lavoro primaria. È necessario pianificare l'allocazione degli IP virtuali in una subnet separata dalla rete del carico di lavoro primaria.
Un gruppo di porte viene designato come rete del carico di lavoro primaria nel Supervisore e quindi si utilizza lo stesso gruppo di porte della rete del carico di lavoro per Spazi dei nomi vSphere. Supervisore, i cluster di Tanzu Kubernetes Grid, HAProxy, gli utenti DevOps e i servizi esterni si connettono tutti allo stesso gruppo di porte distribuite impostato come rete del carico di lavoro primaria.
Figura 1. Supervisore supportato da una rete

Il diagramma mostra un Supervisore con un gruppo di porte distribuito utilizzato per il traffico di gestione e del carico di lavoro.
Il percorso del traffico per gli utenti DevOps o le applicazioni esterne è il seguente:
  1. L'utente DevOps o il servizio esterno invia il traffico a un IP virtuale nella subnet della rete del carico di lavoro del gruppo di porte distribuite.
  2. HAProxy esegue il bilanciamento del carico del traffico IP virtuale verso l'IP del nodo del cluster Tanzu Kubernetes Grid o l'IP della macchina virtuale del piano di controllo. HAProxy richiede l'indirizzo IP virtuale in modo da poter bilanciare il carico del traffico in arrivo in tale IP.
  3. La macchina virtuale del piano di controllo o il nodo del cluster di Tanzu Kubernetes Grid invia il traffico ai pod di destinazione in esecuzione nel Supervisore o nel cluster di Tanzu Kubernetes Grid rispettivamente.

Topologia di Supervisore con una rete del carico di lavoro isolata e HAproxy con due NIC virtuali

In questa topologia, le reti vengono configurate in base ai componenti seguenti:
  • Macchine virtuali del piano di controllo Kubernetes. Una rete del carico di lavoro primaria per gestire il traffico per le macchine virtuali del piano di controllo di Kubernetes.
  • Nodi del cluster di Tanzu Kubernetes Grid Una rete del carico di lavoro assegnata a tutti gli spazi dei nomi nel Supervisore. Questa rete connette i nodi del cluster di Tanzu Kubernetes Grid.
  • IP virtuali di HAProxy. In questa configurazione, la macchina virtuale di HAProxy viene distribuita con due NIC virtuali (configurazione Predefinito). È possibile connettere la macchina virtuale di HAProxy alla rete del carico di lavoro primaria o alla rete del carico di lavoro utilizzata per gli spazi dei nomi. È inoltre possibile connettere HAProxy a una rete di macchine virtuali che esiste già in vSphere ed è instradabile alla rete primaria e alla rete del carico di lavoro.
Il Supervisore è connesso al gruppo di porte distribuite che supporta la rete del carico di lavoro primaria e i cluster di Tanzu Kubernetes Grid sono connessi a un gruppo di porte distribuite che supporta la rete del carico di lavoro. I due gruppi di porte devono essere instradabili di livello 3. È possibile implementare l'isolamento di livello 2 tramite VLAN. Il filtro del traffico di livello 3 è possibile tramite i firewall e i gateway IP.
Figura 2. Supervisore con una rete del carico di lavoro isolata

""
Il percorso del traffico per gli utenti DevOps o il servizio esterno è il seguente:
  1. L'utente DevOps o il servizio esterno invia il traffico a un IP virtuale. Il traffico viene instradato verso la rete in cui è connesso HAProxy.
  2. HAProxy esegue il bilanciamento del carico del traffico IP virtuale verso l'IP del nodo di Tanzu Kubernetes Grid o la macchina virtuale del piano di controllo. HAProxy richiede l'indirizzo IP virtuale in modo da poter bilanciare il carico del traffico in arrivo in tale IP.
  3. La macchina virtuale del piano di controllo o il nodo del cluster di Tanzu Kubernetes Grid invia il traffico ai pod di destinazione in esecuzione nel cluster di Tanzu Kubernetes Grid.

Topologia di Supervisore con più reti del carico di lavoro e un HAproxy con due NIC virtuali

In questa topologia, è possibile configurare un gruppo di porte che funga da rete del carico di lavoro primaria e un gruppo di porte dedicato che funga da rete del carico di lavoro per ogni spazio dei nomi. HAProxy viene distribuito con due NIC virtuali (configurazione Predefinito) ed è possibile connetterlo alla rete del carico di lavoro primaria oppure a una delle reti del carico di lavoro. È inoltre possibile utilizzare una rete di macchine virtuali esistente instradabile verso la rete primaria e la rete del carico di lavoro.

Il percorso del traffico per gli utenti DevOps e i servizi esterni in questa topologia è uguale a quello della topologia della rete del carico di lavoro isolata.
Figura 3. Supervisore supportato da più reti del carico di lavoro isolate

""

Topologia di Supervisore con più reti del carico di lavoro e un HAproxy con tre NIC virtuali

In questa configurazione, si distribuisce la macchina virtuale HAProxy con tre NIC virtuali, connettendo in tal modo HAProxy a una rete front-end. Gli utenti DevOps e i servizi esterni possono accedere a HAProxy tramite IP virtuali nella rete front-end. La distribuzione di HAProxy con tre NIC virtuali è consigliabile per gli ambienti di produzione.
Figura 4. HAProxy distribuito con tre NIC virtuali

""

Selezione tra le topologie possibili

Prima di selezionare la topologia da utilizzare, valutare le esigenze dell'ambiente in uso:

  1. È necessario l'isolamento di livello 2 tra Supervisore e i cluster di Tanzu Kubernetes Grid?
    1. No: selezionare la topologia più semplice con una rete del carico di lavoro per tutti i componenti.
    2. Sì. Selezionare la topologia della rete del carico di lavoro isolata con la rete primaria e la rete del carico di lavoro separate.
  2. È necessario ulteriore isolamento di livello 2 tra i cluster di Tanzu Kubernetes Grid?
    1. No. Selezionare la topologia della rete del carico di lavoro isolata con la rete primaria e la rete del carico di lavoro separate.
    2. Sì. Selezionare la topologia con più reti del carico di lavoro con una rete del carico di lavoro separata per ogni spazio dei nomi e una rete del carico di lavoro primaria dedicata.
  3. Si desidera impedire agli utenti DevOps e ai servizi esterni di eseguire il routing diretto alle macchine virtuali del piano di controllo Kubernetes e ai nodi del cluster di Tanzu Kubernetes Grid?
    1. No. Selezionare la configurazione di HAProxy con due NIC.
    2. Sì. Selezionare la configurazione di HAProxy con tre NIC. Questa configurazione è consigliata per gli ambienti di produzione

Considerazioni sull'utilizzo del bilanciamento del carico HAProxy con vSphere IaaS control plane

Quando si pianifica un vSphere IaaS control plane con il bilanciamento del carico HAProxy, tenere presenti le considerazioni seguenti.

  • Con HAProxy è necessario un contratto di supporto per ottenere assistenza tecnica per il bilanciamento del carico HAProxy. VMware GSS non è in grado di fornire supporto per l'appliance HAProxy.
  • L'appliance HAProxy è un singleton che non supporta alcuna topologia ad alta disponibilità. Per gli ambienti ad alta disponibilità, VMware consiglia di utilizzare un'installazione completa di NSX o NSX Advanced Load Balancer.
  • Poiché non è possibile espandere l'intervallo di indirizzi IP utilizzato per il front-end in un secondo momento, la rete deve essere dimensionata tenendo conto di eventuali espansioni future.