Quando si utilizza vSphere with Tanzu con rete vDS, HAProxy fornisce il bilanciamento del carico per gli sviluppatori che accedono al piano di controllo di Tanzu Kubernetes e per i servizi Kubernetes di tipo bilanciamento del carico. Esaminare le topologie che è possibile implementare per il bilanciamento del carico HAProxy.
Reti del carico di lavoro in Cluster supervisore
Per configurare un Cluster supervisore con lo stack di rete vSphere, è necessario connettere tutti gli host del cluster a un vSphere Distributed Switch. In base alla topologia implementata per le reti del carico di lavoro di Cluster 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.
Prima di aggiungere un host a un Cluster supervisore, è necessario aggiungerlo a tutti i vSphere Distributed Switch che fanno parte del cluster.
Le macchine virtuali del piano di controllo di Kubernetes nel Cluster 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 è 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.
Allocazione di intervalli 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 Cluster supervisore e dei cluster di Tanzu Kubernetes. A ogni macchina virtuale del piano di controllo di Kubernetes nel Cluster supervisore è assegnato un indirizzo IP, per un totale di tre indirizzi IP. A ogni nodo di un cluster di Tanzu Kubernetes è assegnato anche un IP separato. È necessario assegnare un intervallo di indirizzi IP univoco a ogni rete del carico di lavoro nel Cluster 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 Cluster 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
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.
Network | Caratteristiche |
---|---|
Gestione |
Il cluster supervisore utilizza la rete di gestione per connettersi al bilanciamento del carico HAProxy e programmarlo.
|
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.
|
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.
|
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 di Cluster supervisore con una rete del carico di lavoro e un HAproxy con due NIC virtuali
In questa topologia si configura un Cluster 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.
- 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.
- 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.
- HAProxy esegue il bilanciamento del carico del traffico IP virtuale verso l'IP del nodo di Tanzu Kubernetes 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.
- La macchina virtuale del piano di controllo o il nodo del cluster di Tanzu Kubernetes invia il traffico ai pod di destinazione in esecuzione nel Cluster supervisore o nel cluster di Tanzu Kubernetes rispettivamente.
Topologia di Cluster supervisore con una rete del carico di lavoro isolata e HAproxy con due NIC virtuali
- 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 Una rete del carico di lavoro assegnata a tutti gli spazi dei nomi nel Cluster supervisore. Questa rete connette i nodi del cluster di Tanzu Kubernetes.
- 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.
- 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.
- HAProxy esegue il bilanciamento del carico del traffico IP virtuale verso l'IP del nodo di Tanzu Kubernetes 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.
- La macchina virtuale del piano di controllo o il nodo del cluster di Tanzu Kubernetes invia il traffico ai pod di destinazione in esecuzione nel cluster di Tanzu Kubernetes.
Topologia di Cluster 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.
Topologia di Cluster supervisore con più reti del carico di lavoro e un HAproxy con tre NIC virtuali
Selezione tra le topologie possibili
Prima di selezionare la topologia da utilizzare, valutare le esigenze dell'ambiente in uso:
- È necessario l'isolamento di livello 2 tra Cluster supervisore e i cluster di Tanzu Kubernetes?
- No: selezionare la topologia più semplice con una rete del carico di lavoro per tutti i componenti.
- Sì. Selezionare la topologia della rete del carico di lavoro isolata con la rete primaria e la rete del carico di lavoro separate.
- È necessario ulteriore isolamento di livello 2 tra i cluster di Tanzu Kubernetes?
- No. Selezionare la topologia della rete del carico di lavoro isolata con la rete primaria e la rete del carico di lavoro separate.
- 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.
- 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?
- No. Selezionare la configurazione di HAProxy con due NIC.
- Sì. Selezionare la configurazione di HAProxy con tre NIC. Questa configurazione è consigliata per gli ambienti di produzione