I cluster GKE On-Prem possono essere eseguiti con una delle due modalità di bilanciamento del carico: integrata o manuale. Con la modalità integrata, i cluster GKE On-Prem vengono eseguiti con il bilanciatore del carico F5 BIG-IP. Con la modalità manuale, puoi utilizzare il bilanciatore del carico BIG-IP di F5 o qualsiasi altro bilanciatore del carico a tua scelta. La modalità di bilanciamento del carico manuale richiede più configurazione rispetto alla modalità integrata. In questa pagina vengono descritti i passaggi da seguire se scegli di utilizzare la modalità di bilanciamento del carico manuale.
Il bilanciatore del carico Citrix e il bilanciatore del carico di Seesaw sono esempi di bilanciatori del carico che potresti utilizzare con la modalità di bilanciamento del carico manuale.
In questo argomento metti da parte gli indirizzi IP e i valori di nodePort
per utilizzarli in un secondo momento.
L'idea è che tu scelga gli indirizzi IP e i valori nodePort
da utilizzare per il bilanciamento del carico e per i nodi del cluster. A questo punto non devi fare nulla
con gli indirizzi e i valori nodePort
. In seguito, quando
potrai installare GKE On-Prem, ti serviranno gli indirizzi e i valori
nodePort
per compilare il file di configurazione del cluster. Quando configuri manualmente il bilanciatore del carico, avrai bisogno anche degli indirizzi e dei valori nodePort
.
Mettere da parte gli indirizzi IP virtuali
Indipendentemente dal fatto che utilizzi la modalità di bilanciamento del carico integrata o manuale, devi impostare diversi indirizzi IP virtuali (VIP) che intendi utilizzare per il bilanciamento del carico. Questi VIP consentono ai client esterni di raggiungere i server API, i servizi in entrata e i servizi aggiuntivi di Kubernetes. Per istruzioni dettagliate su come mettere da parte i VIP, consulta la pagina Riservare gli indirizzi IP virtuali.
Mettere da parte gli indirizzi IP dei nodi
Con la modalità di bilanciamento del carico manuale, non puoi utilizzare il protocollo DHCP. Devi specificare indirizzi IP statici per i nodi del cluster. Devi mettere da parte gli indirizzi sufficienti per i nodi nel cluster di amministrazione e i nodi in tutti i cluster utente che intendi creare. Per maggiori dettagli su quanti indirizzi IP dei nodi mettere da parte, consulta Configurazione di IP statici.
Metti da parte i valori di nodePort
In un cluster GKE On-Prem, il server API Kubernetes, il servizio Ingress e il servizio componenti aggiuntivi vengono implementati come servizi Kubernetes di tipo NodePort
.
Con la modalità di bilanciamento del carico manuale, devi scegliere i tuoi valori nodePort
per questi servizi. Scegli i valori compresi tra 30.000 e 32.767. Dopo aver scelto i valori
nodePort
, mettili da parte per utilizzarli in un secondo momento quando modifichi il file
di configurazione del cluster.
Scegli e metti da parte i seguenti valori per nodePort
.
Per ogni VIP che hai prenotato per un server API Kubernetes, metti da parte un valore
nodePort
.Per ogni VIP che hai riservato per un servizio in entrata del cluster, imposta due valori
nodePort
: uno per il traffico HTTP e uno per il traffico HTTPS. Questo si applica solo al cluster utente.Per ogni VIP che hai riservato per un servizio di componente aggiuntivo per il cluster, metti da parte un valore
nodePort
. Questo vale solo per il cluster di amministrazione.
Ad esempio, supponiamo che tu abbia due cluster utente e intendi utilizzare componenti aggiuntivi in tutti i tuoi cluster. Dovresti scegliere e mettere da parte i seguenti valori nodePort
:
Un valore
nodePort
per il server API Kubernetes nel cluster di amministrazione.Per ciascuno di due cluster utente, un valore
nodePort
per il server API Kubernetes.Per ciascuno di due cluster utente, un valore
nodePort
per il traffico HTTP verso il servizio in entrata.Per ciascuno di due cluster utente, un valore
nodePort
per il traffico HTTPS al servizio in entrata.Un valore
nodePort
per il servizio aggiuntivo nel cluster di amministrazione.Per ciascuno di due cluster utente, un valore
nodePort
per il server aggiuntivo.
Nell'esempio precedente, dovresti mettere da parte 11 valori di nodePort
.
Modifica del file di configurazione GKE On-Prem
Quando installi GKE On-Prem, generi un file di configurazione. Per la modalità di bilanciamento del carico manuale, apporta le seguenti modifiche al file di configurazione:
Imposta
lbmode
suManual
.Imposta
admincluster.ipblockfilepath
sul percorso del file YAML IP statico per il cluster di amministrazione. Questo è documentato in Configurazione di IP statici. Il protocollo DHCP non è disponibile per la modalitàManual
.Imposta
usercluster.ipblockfilepath
sul percorso del file YAML IP statico per il cluster utente.Aggiorna il campo
admincluster.manuallbspec
con i valorinodePort
che hai scelto per il cluster di amministrazione.Aggiorna la sezione
usercluster.manuallbspec
con i valorinodePort
che hai scelto per il cluster utente.
L'esempio seguente mostra una parte di un file di configurazione aggiornato:
... lbmode: Manual ... admincluster: ipblockfilepath: "ipblock1.yaml" manuallbspec: controlplanenodeport: 30968 addonsnodeport: 31405 ... usercluster: ipblockfilepath: "env/default/ipblock2.yaml" manuallbspec: ingresshttpnodeport: 30243 ingresshttpsnodeport: 30879 controlplanenodeport: 30562
Configura il tuo bilanciatore del carico
Ora che hai aggiornato il file di configurazione, accedi alla console di gestione del bilanciatore del carico e configura i VIP.
Come accennato in precedenza, devi configurare cinque VIP e sette porte. Quindi crei sette servizi virtuali sul tuo bilanciatore del carico:
- Piano di controllo del cluster di amministrazione, porta TCP 443
- Gestore componenti aggiuntivi, porta TCP 8443
- Piano di controllo utente, porta TCP 80
- Controller in entrata del cluster utente, porta TCP 80
- Controller in entrata del cluster utente, porta TCP 443
Esempio di bilanciamento del carico
Un servizio ha un campo ports
, che è un array di oggetti ServicePort. In un servizio di tipo NodePort
, ogni oggetto ServicePort ha un elemento
protocol
, port
, nodePort
e targetPort
. Ad esempio, ecco parte di un manifest per un servizio che ha due oggetti ServicePort nel suo array ports
:
... kind: Service ... spec: ... type: NodePort ports: - protocol: TCP port: 80 nodePort: 32676 targetPort: 8080 - protocol: TCP port: 443 nodePort: 32677 targetPort: 443 ...
Supponiamo che il servizio precedente rappresenti il servizio in entrata per uno dei tuoi cluster utente. Supponi inoltre di aver effettuato le seguenti scelte:
203.0.113.5
è il VIP per il servizio in entrata del tuo cluster utente.Gli indirizzi dei nodi per il cluster utente sono
192.168.0.10
,192.168.0.11
e192.168.0.12
.
Dopo aver configurato il bilanciatore del carico, il traffico viene instradato come segue:
Un client invia una richiesta a
203.0.113.5
sulla porta TCP 80. Il bilanciatore del carico sceglie un nodo cluster utente. Per questo esempio, supponiamo che l'indirizzo del nodo sia192.168.0.11
. Il bilanciatore del carico inoltra la richiesta a192.168.0.11
sulla porta TCP 32676. Le regole iptables sul nodo inoltrano la richiesta a un pod appropriato sulla porta TCP 8080.Un client invia una richiesta alla
203.0.113.5
sulla porta TCP 443. Il bilanciatore del carico sceglie un nodo del cluster utente. Per questo esempio, supponiamo che l'indirizzo del nodo sia192.168.0.10
. Il bilanciatore del carico inoltra la richiesta a192.168.0.10
sulla porta TCP 32677. Le regole iptables sul nodo inoltrano la richiesta a un pod appropriato sulla porta TCP 443.
Richiedere assistenza per il bilanciamento manuale del carico
Google non fornisce assistenza per i bilanciatori del carico configurati utilizzando la modalità di bilanciamento del carico manuale. In caso di problemi con il bilanciatore del carico, contatta il fornitore del bilanciatore del carico.
Passaggi successivi
Risolvere i problemi
Per ulteriori informazioni, consulta la sezione Risoluzione dei problemi.