Ti consigliamo di configurare una delle seguenti modalità di bilanciamento del carico:
Con la modalità in bundle, Google Distributed Cloud fornisce e gestisce il bilanciatore del carico. Non è necessaria una licenza per un bilanciatore del carico e la configurazione da eseguire è minima.
Con la modalità manuale, Google Distributed Cloud utilizza un bilanciatore del carico a tua scelta, come F5 BIG-IP o Citrix. La modalità di bilanciamento del carico manuale richiede una configurazione maggiore rispetto alla modalità in bundle.
Il bilanciamento del carico manuale è supportato per i seguenti tipi di cluster:
Cluster utente con Controlplane V2 abilitato. Con Controlplane V2, i nodi del piano di controllo per un cluster utente si trovano nello stesso cluster utente.
Cluster utente che utilizzano kubeception. Il termine kubeception si riferisce al caso in cui il piano di controllo per un cluster utente viene eseguito su uno o più nodi nel cluster di amministrazione. Se Controlplane V2 non è abilitato, un cluster utente utilizza kubeception.
In questa pagina vengono descritti i passaggi da seguire se scegli di utilizzare la modalità di bilanciamento del carico manuale.
In questo argomento metti da parte gli indirizzi IP per i nodi del piano di controllo e i nodi worker per utilizzarli in un secondo momento. Metti anche da parte gli indirizzi IP per gli IP virtuali (VIP) e decidi i valori nodePort
. L'idea è che scegli gli indirizzi IP e i valori nodePort
che vuoi utilizzare e poi li registri in un foglio di lavoro o in qualche altro strumento. Quando è tutto pronto per creare i cluster, avrai bisogno degli indirizzi IP e dei valori nodePort
per compilare i file di configurazione per il tuo cluster di amministrazione e il tuo cluster utente e per i file di blocchi IP per i tuoi cluster.
Avrai bisogno anche degli indirizzi IP e dei valori nodePort
quando configuri manualmente il bilanciatore del carico per i cluster utente.
Lasciare da parte gli indirizzi IP dei nodi
Con la modalità di bilanciamento del carico manuale, non è possibile utilizzare DHCP. Devi specificare indirizzi IP statici per i nodi del cluster. Devi riservare un numero sufficiente di indirizzi per i nodi nel cluster di amministrazione e per quelli in tutti i cluster utente che intendi creare. Per informazioni dettagliate sul numero di indirizzi IP dei nodi da conservare, consulta Pianificare gli indirizzi IP (Controlplane V2) e Pianificare gli indirizzi IP (kubeception).
Configura indirizzi IP
La configurazione degli indirizzi IP statici che hai impostato dipende dal tipo di cluster e dall'abilitazione di Controlplane V2 nei cluster utente.
Cluster di amministrazione ad alta disponibilità
La seguente tabella descrive lo scopo degli indirizzi IP e dove li configuri per i cluster di amministrazione ad alta disponibilità.
IP statici | Configurazione |
---|---|
Nodi del piano di controllo | File di configurazione del cluster di amministrazione nella sezione network.controlPlaneIPBlock.ips |
1.16 e versioni precedenti: nodi aggiuntivi | File di blocchi IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath nel file di configurazione del cluster di amministrazione |
Nella versione 1.28 e successive, i nuovi cluster di amministrazione ad alta disponibilità non hanno nodi aggiuntivi, quindi non è necessario lasciare da parte gli indirizzi IP per i nodi dei componenti aggiuntivi come nelle versioni precedenti.
Cluster di amministrazione non ad alta disponibilità
La seguente tabella descrive lo scopo degli indirizzi IP e dove li configuri per i cluster di amministrazione non ad alta disponibilità.
IP statici | Configurazione |
---|---|
Nodo piano di controllo | File di blocchi IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath nel file di configurazione del cluster di amministrazione |
Nodi aggiuntivi | File dei blocchi IP del cluster di amministrazione |
Nella versione 1.28 e successive, tutti i nuovi cluster di amministrazione devono essere cluster ad alta disponibilità con tre nodi del piano di controllo.
Cluster utente CP V2
La seguente tabella descrive lo scopo degli indirizzi IP e dove li configuri per i cluster utente con Controlplane V2 abilitato.
IP statici | Configurazione |
---|---|
Nodi del piano di controllo | File di configurazione del cluster utente nella sezione network.controlPlaneIPBlock.ips |
Nodi worker | File dei blocchi IP del cluster utente e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath nel file di configurazione del cluster utente |
Cluster utente kubeception
La seguente tabella descrive lo scopo degli indirizzi IP e dove li configuri per i cluster utente che utilizzano kubeception.
IP statici | Configurazione |
---|---|
Nodi del piano di controllo | File di blocchi IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath nel file di configurazione del cluster di amministrazione |
Nodi worker | File dei blocchi IP del cluster utente e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath nel file di configurazione del cluster utente |
Mettere da parte gli indirizzi IP per i VIP
Indipendentemente dal fatto che utilizzi la modalità di bilanciamento del carico integrata, in bundle o manuale, devi riservare diversi indirizzi IP che intendi utilizzare per gli IP virtuali (VIP) per il bilanciamento del carico. Questi VIP consentono ai client esterni di raggiungere i server API Kubernetes e il tuo servizio in entrata sui cluster utente.
Configura VIP
La modalità di configurazione dei VIP dipende dal tipo di cluster.
Cluster di amministrazione ad alta disponibilità
La tabella seguente descrive lo scopo del VIP e dove lo configuri per i cluster di amministrazione ad alta disponibilità.
VIP | Configurazione |
---|---|
VIP per il server API Kubernetes del cluster di amministrazione | File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.controlPlaneVIP |
1,15 e inferiori: VIP componenti aggiuntivi | File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.addonsVIP |
Tieni presente le seguenti differenze nelle versioni:
Nella versione 1.16 e successive, non è necessario configurare un VIP per i componenti aggiuntivi per i cluster di amministrazione ad alta disponibilità.
Nella versione 1.28 e successive, i nuovi cluster di amministrazione ad alta disponibilità non hanno nodi aggiuntivi.
Cluster di amministrazione non ad alta disponibilità
La tabella seguente descrive lo scopo del VIP e dove lo configuri per i cluster di amministrazione non ad alta disponibilità.
VIP | Configurazione |
---|---|
VIP per il server API Kubernetes del cluster di amministrazione | File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.controlPlaneVIP |
1,15 e inferiori: VIP componenti aggiuntivi | File di configurazione del cluster di amministrazione nel campo loadBalancer.vips.addonsVIP |
Tieni presente le seguenti differenze nelle versioni:
Nella versione 1.16 e successive, non è necessario configurare un VIP per i componenti aggiuntivi per i cluster di amministrazione non ad alta disponibilità.
Cluster utente CP V2
La tabella seguente descrive lo scopo dei VIP e dove li configuri per i cluster utente con Controlplane V2 abilitato.
VIP | Configurazione |
---|---|
VIP per il server API Kubernetes del cluster utente | File di configurazione del cluster utente nel campo loadBalancer.vips.controlPlaneVIP |
VIP per il servizio in entrata nel cluster utente | File di configurazione del cluster utente nel campo loadBalancer.vips.ingressVIP |
Cluster utente kubeception
La seguente tabella descrive lo scopo dei VIP e dove li configuri per i cluster utente che utilizzano kubeception.
VIP | Configurazione |
---|---|
VIP per il server API Kubernetes del cluster utente | File di configurazione del cluster utente nel campo loadBalancer.vips.controlPlaneVIP |
VIP per il servizio in entrata nel cluster utente | File di configurazione del cluster utente nel campo loadBalancer.vips.ingressVIP |
Mettendo da parte i valori nodePort
In Google Distributed Cloud, il server API Kubernetes e il servizio in entrata sono esposti da Servizi Kubernetes.
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.
Configura i valori nodePort
La configurazione dei valori nodePort
dipende dall'abilitazione o meno di ControlPlane V2 nel cluster utente.
Cluster di amministrazione ad alta disponibilità
La tabella seguente descrive lo scopo di nodePort
e dove puoi configurarlo per i cluster di amministrazione ad alta disponibilità.
nodePort |
Configurazione |
---|---|
1,15 e inferiori: nodePort per i nodi dei componenti aggiuntivi |
File di configurazione del cluster di amministrazione nel campo loadBalancer.manualLB.addonsNodePort |
Nella versione 1.16 e successive, non è necessario configurare un nodePort
per i nodi dei componenti aggiuntivi per i cluster di amministrazione ad alta disponibilità.
Cluster di amministrazione non ad alta disponibilità
La seguente tabella descrive a cosa servono i valori nodePort
e dove li configuri per i cluster di amministrazione non ad alta disponibilità.
nodePort |
Configurazione |
---|---|
1.16 e versioni precedenti: nodePort per il server API Kubernetes del cluster di amministrazione |
1.15 e versioni precedenti: file di configurazione del cluster di amministrazione nel campo loadBalancer.vips.controlPlaneNodePort |
1.15 e versioni precedenti: nodePort per i nodi dei componenti aggiuntivi |
File di configurazione del cluster di amministrazione nel campo loadBalancer.manualLB.addonsNodePort |
Nella versione 1.16 e successive, non è necessario configurare un nodePort
per i nodi dei componenti aggiuntivi per i cluster di amministrazione non ad alta disponibilità.
Cluster utente CP V2
La seguente tabella descrive a cosa servono nodePorts
e dove
li configuri per i cluster utente con Controlplane V2 abilitato.
nodePorts |
Configurazione |
---|---|
HTTP nodePort per il servizio in entrata nel cluster utente |
File di configurazione del cluster utente in
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort per il servizio in entrata nel cluster utente |
File di configurazione del cluster utente in
loadBalancer.manualLB.ingressHTTPSNodePort |
Non è necessario configurare un nodePort
per il VIP del piano di controllo perché
Google Distributed Cloud gestisce il bilanciamento del carico sui nodi del piano di controllo per i cluster utente con Controlplane V2 abilitato.
Cluster utente kubeception
La seguente tabella descrive a cosa servono i valori nodePort
e dove li configuri per i cluster utente che utilizzano kubeception.
nodePort |
Configurazione |
---|---|
nodePort per il server API Kubernetes del cluster utente |
File di configurazione del cluster utente nel campo loadBalancer.manualLB.controlPlaneNodePort |
nodePort per il server Konnectivity del cluster utente (il server Konnectivity utilizza il VIP del piano di controllo) |
File di configurazione del cluster utente nel campo loadBalancer.manualLB.konnectivityServerNodePort |
HTTP nodePort per il servizio in entrata nel cluster utente |
File di configurazione del cluster utente in
loadBalancer.manualLB.ingressHTTPNodePort |
HTTPS nodePort per il servizio in entrata nel cluster utente |
File di configurazione del cluster utente in
loadBalancer.manualLB.ingressHTTPSNodePort |
Esempio di file di configurazione del cluster
L'esempio seguente mostra una parte di un file di configurazione dei cluster di amministrazione e utente:
Cluster di amministrazione ad alta disponibilità
Versione 1.16 e successive:
network: controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB
La versione 1.15 e precedenti richiedono un VIP e
nodeport
per i nodi dei componenti aggiuntivi.network: controlPlaneIPBlock: netmask: "255.255.248.0" gateway: "21.0.143.254" ips: - ip: "21.0.140.226" hostname: "admin-cp-vm-1" - ip: "21.0.141.48" hostname: "admin-cp-vm-2" - ip: "21.0.141.65" hostname: "admin-cp-vm-3" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "203.0.113.4" kind: ManualLB manualLB: addonsNodePort: 31405
Cluster di amministrazione non ad alta disponibilità
Versione 1.16 e successive:
network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" kind: ManualLB manualLB: controlPlaneNodePort: 30562
La versione 1.15 e precedenti richiedono un VIP e
nodeport
per i nodi dei componenti aggiuntivi.network: ipMode: type: static ipBlockFilePath: "ipblock-admin.yaml" loadBalancer: vips: controlPlaneVIP: "172.16.21.40" addonsVIP: "172.16.21.41" kind: ManualLB manualLB: controlPlaneNodePort: 30562 addonsNodePort: 30563
Cluster utente CP V2
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
controlPlaneIPBlock:
netmask: "255.255.255.0"
gateway: "172.16.21.1"
ips:
- ip: "172.16.21.6"
hostname: "cp-vm-1"
- ip: "172.16.21.7"
hostname: "cp-vm-2"
- ip: "172.16.21.8"
hostname: "cp-vm-3"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
Cluster utente kubeception
network:
ipMode:
type: static
ipBlockFilePath: "ipblock1.yaml"
loadBalancer:
vips:
controlPlaneVIP: "172.16.21.40"
ingressVIP: "172.16.21.30"
kind: ManualLB
manualLB:
ingressHTTPNodePort: 30243
ingressHTTPSNodePort: 30879
konnectivityServerNodePort: 30563
controlPlaneNodePort: 30562
Configura il bilanciatore del carico
Utilizza la console o gli strumenti di gestione del bilanciatore del carico per configurare le seguenti mappature nel bilanciatore del carico. Le modalità di esecuzione dipendono dal bilanciatore del carico.
Cluster di amministrazione ad alta disponibilità
Traffico verso i nodi del piano di controllo
Google Distributed Cloud gestisce automaticamente il bilanciamento del carico del traffico del piano di controllo per i cluster di amministrazione ad alta disponibilità. Anche se non è necessario configurare una mappatura nel bilanciatore del carico, devi specificare un indirizzo IP nel campo loadBalancer.vips.controlPlaneVIP
.
Traffico verso i servizi nei nodi dei componenti aggiuntivi
1.15 e versioni precedenti: quanto segue mostra la mappatura degli indirizzi IP e dei valori nodePort
per il traffico verso i servizi nei nodi dei componenti aggiuntivi:
- (
addonsVIP
:8443) -> (INDIRIZZO_IP_NODE:addonsNodePort
)
Aggiungi questa mappatura per tutti i nodi nel cluster di amministrazione, sia i nodi del piano di controllo sia i nodi del componente aggiuntivo.
Nella versione 1.16 e successive, non è necessario configurare questa mappatura per i nodi dei componenti aggiuntivi per i cluster di amministrazione ad alta disponibilità.
Cluster di amministrazione non ad alta disponibilità
Traffico del piano di controllo
Di seguito è mostrata la mappatura dell'indirizzo IP e del valore nodePort
per il nodo del piano di controllo:
- (
controlPlaneVIP
:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
)
Aggiungi questa mappatura per tutti i nodi nel cluster di amministrazione, sia il nodo del piano di controllo sia i nodi del componente aggiuntivo.
Traffico verso i servizi nei nodi dei componenti aggiuntivi
1.15 e versioni precedenti: di seguito è mostrata la mappatura degli indirizzi IP e dei valori nodePort
per i servizi in esecuzione nei nodi dei componenti aggiuntivi:
- (
addonsVIP
:8443) -> (INDIRIZZO_IP_NODE:addonsNodePort
)
Aggiungi questa mappatura per tutti i nodi nel cluster di amministrazione, sia il nodo del piano di controllo sia i nodi del componente aggiuntivo.
Nella versione 1.16 e successive, non è necessario configurare questa mappatura per i nodi dei componenti aggiuntivi per i cluster di amministrazione non ad alta disponibilità.
Cluster utente CP V2
Traffico del piano di controllo
Google Distributed Cloud gestisce automaticamente il bilanciamento del carico del traffico del piano di controllo per i cluster utente con Controlplane V2 abilitato. Anche se non è necessario configurare una mappatura nel bilanciatore del carico, devi specificare un indirizzo IP nel campo loadBalancer.vips.controlPlaneVIP
.
Traffico del piano dati
Di seguito è mostrata la mappatura degli indirizzi IP e dei valori nodePort
per il traffico del piano dati:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Aggiungi queste mappature per tutti i nodi nel cluster utente, sia per i nodi del piano di controllo sia per i nodi worker. Poiché hai configurato NodePort sul cluster, Kubernetes apre le NodePort su tutti i nodi del cluster. Ciò consente a qualsiasi nodo nel cluster di gestire il traffico del piano dati.
Dopo aver configurato le mappature, il bilanciatore del carico rimane in ascolto del traffico sull'indirizzo IP che hai configurato per il VIP in entrata del cluster utente sulle porte HTTP e HTTPS standard. Il bilanciatore del carico instrada le richieste a qualsiasi nodo nel cluster. Dopo che una richiesta viene instradata a uno dei nodi del cluster, il networking interno di Kubernetes prende il controllo e la instrada al pod di destinazione.
Cluster utente kubeception
Traffico del piano di controllo
Di seguito è mostrata la mappatura degli indirizzi IP e dei valori nodePort
per il traffico del piano di controllo:
- (
controlPlaneVIP
:443
) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
) - (
controlPlaneVIP
:8132
) -> (NODE_IP_ADDRESSES:konnectivityServerNodePort
)
Aggiungi questa mappatura per tutti i nodi nel cluster di admin, sia per il cluster di amministrazione sia per i nodi del piano di controllo del cluster utente.
Traffico del piano dati
Di seguito è mostrata la mappatura degli indirizzi IP e dei valori nodePort
per il traffico del piano dati:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Aggiungi queste mappature per tutti i nodi nel cluster utente. Con i cluster utente che utilizzano kubeception, tutti i nodi nel cluster sono nodi worker.
Reimpostazione delle connessioni ai nodi con errori (consigliato)
Oltre ai requisiti precedenti, ti consigliamo di configurare il bilanciatore del carico in modo da reimpostare le connessioni client quando rileva un errore del nodo di backend. Senza questa configurazione, i client del server API Kubernetes possono smettere di rispondere per diversi minuti quando un'istanza del server si arresta, causando instabilità nel piano di controllo Kubernetes.
- Con BIG-IP di F5, questa impostazione è denominata Azione in caso di inattività nella pagina di configurazione del pool di backend.
- Con HAProxy, questa impostazione viene chiamata sessioni di chiusura on-marked-down nella configurazione del server di backend.
- Se utilizzi un bilanciatore del carico diverso, consulta la documentazione per trovare l'impostazione equivalente.
Ottenere assistenza per il bilanciamento del carico manuale
Google non fornisce supporto per i bilanciatori del carico configurati utilizzando la modalità di bilanciamento del carico manuale. Se riscontri problemi con il bilanciatore del carico, contatta il fornitore del bilanciatore.
Passaggi successivi
- Bilanciamento del carico con Citrix
- Installazione dell'ADC BIG-IP di F5 per GKE su VMware utilizzando il bilanciamento del carico manuale