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 è necessario acquistare una licenza per un bilanciatore del carico e la configurazione richiesta è minima.
In 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 più configurazione rispetto alla modalità in bundle.
Il bilanciamento del carico manuale è supportato per i seguenti tipi di cluster:
Cluster utente in cui è abilitato Control Plane v2. Con Controlplane V2, i nodi del piano di controllo per un cluster utente si trovano nel cluster utente stesso.
Cluster utente che utilizzano kubeception. Il termine kubeception si riferisce al caso in cui il control plane di un cluster utente viene eseguito su uno o più nodi del cluster di amministrazione. Se il Control Plane v2 non è abilitato, un cluster utente utilizza kubeception.
Questa pagina descrive i passaggi da seguire se scegli di utilizzare la modalità di bilanciamento del carico manuale.
In questo argomento, riservi indirizzi IP per i nodi del control plane e per i nodi worker per utilizzarli in un secondo momento. Inoltre, devi riservare indirizzi IP per gli IP virtuali (VIP) e decidere i valori nodePort
. L'idea è che tu scelga gli indirizzi IP e i valori nodePort
che vuoi utilizzare e poi li registri in un foglio di lavoro o in un altro strumento. Quando è tutto pronto per creare i cluster,
avrai bisogno degli indirizzi IP e dei valori nodePort
per compilare i
file di configurazione del
cluster di amministrazione
e del
cluster di utenti e
i file di blocco IP per i cluster.
Quando configuri manualmente il bilanciatore del carico per i cluster di utenti, avrai bisogno anche degli indirizzi IP e dei valori nodePort
.
Mettere da parte gli indirizzi IP dei nodi
Con la modalità di bilanciamento del carico manuale, non puoi utilizzare DHCP. Devi specificare indirizzi IP statici per i nodi del cluster. Devi riservare indirizzi sufficienti per i nodi del cluster di amministrazione e per i nodi di tutti i cluster utente che intendi creare. Per informazioni dettagliate sul numero di indirizzi IP dei nodi da riservare, consulta Pianificare gli indirizzi IP (Controlplane V2) e Pianificare gli indirizzi IP (kubeception).
Configurare gli indirizzi IP
La posizione in cui configuri gli indirizzi IP statici che hai riservato dipende dal tipo di cluster e dall'eventuale attivazione di Controlplane 2 nei cluster utente.
Cluster di amministrazione HA
La tabella seguente descrive la destinazione degli indirizzi IP e dove configurarli per i cluster di amministrazione HA.
IP statici | Configurazione |
---|---|
Nodi del control plane | File di configurazione del cluster di amministrazione nella
sezione network.controlPlaneIPBlock.ips |
1.16 e versioni precedenti: nodi dei componenti aggiuntivi | File di blocco IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster di amministrazione |
Nella versione 1.28 e successive, i nuovi cluster di amministrazione HA non hanno nodi aggiuntivi, quindi non è necessario riservare indirizzi IP per i nodi aggiuntivi come nelle versioni precedenti.
Cluster di amministrazione non ad alta disponibilità
La tabella seguente descrive la funzione degli indirizzi IP e dove configurarli per i cluster di amministrazione non ad alta disponibilità.
IP statici | Configurazione |
---|---|
Nodo piano di controllo | File di blocco IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster di amministrazione |
Nodi aggiuntivi | File di blocco IP del cluster di amministrazione |
Nella versione 1.28 e successive, tutti i nuovi cluster di amministrazione devono essere cluster ad alta disponibilità (HA) con 3 nodi del piano di controllo.
Cluster utente CP V2
La tabella seguente descrive la destinazione e lo scopo degli indirizzi IP per i cluster utente con Controlplane V2 abilitato.
IP statici | Configurazione |
---|---|
Nodi del control plane | File di configurazione del cluster utente nella
sezione network.controlPlaneIPBlock.ips |
Nodi worker | File di blocco IP del cluster utente e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster utente |
Cluster utente Kubeception
La tabella seguente descrive la destinazione degli indirizzi IP e dove configurarli per i cluster di utenti che utilizzano kubeception.
IP statici | Configurazione |
---|---|
Nodi del control plane | File di blocco IP del cluster di amministrazione e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster di amministrazione |
Nodi worker | File di blocco IP del cluster utente e aggiungi il percorso nel campo network.ipMode.ipBlockFilePath del file di configurazione del cluster utente |
Prenotazione di indirizzi IP per i VIP
Indipendentemente dal fatto che tu utilizzi la modalità di bilanciamento del carico integrata, in bundle o manuale, devi mettere da parte 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 servizio di ingresso sui cluster utente.
Configura i VIP
La posizione in cui configuri i VIP dipende dal tipo di cluster.
Cluster di amministrazione HA
La tabella seguente descrive lo scopo dell'IP virtuale e dove configurarlo 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
loadBalancer.vips.controlPlaneVIP campo |
1.15 e versioni precedenti: componenti aggiuntivi VIP | File di configurazione del cluster di amministrazione nel
loadBalancer.vips.addonsVIP campo |
Tieni presente le seguenti differenze tra le versioni:
In 1.16 e versioni successive, non è necessario configurare un VIP per i componenti aggiuntivi per i cluster di amministrazione ad alta disponibilità.
In 1.28 e versioni successive, i nuovi cluster di amministrazione HA non hanno nodi aggiuntivi.
Cluster di amministrazione non ad alta disponibilità
La tabella seguente descrive lo scopo dell'IP virtuale e dove configurarlo 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
loadBalancer.vips.controlPlaneVIP campo |
1.15 e versioni precedenti: componenti aggiuntivi VIP | File di configurazione del cluster di amministrazione nel
loadBalancer.vips.addonsVIP campo |
Tieni presente le seguenti differenze tra le versioni:
In 1.16 e versioni successive, non è necessario configurare un VIP per i componenti aggiuntivi per i cluster di amministrazione non HA.
Cluster utente CP V2
La tabella seguente descrive la funzione dei VIP e dove configurarli per i cluster utente con il piano di controllo v2 abilitato.
VIP | Configurazione |
---|---|
VIP per il server API Kubernetes del cluster utente | File di configurazione del cluster utente nel
loadBalancer.vips.controlPlaneVIP |
VIP per il servizio in entrata nel cluster utente | File di configurazione del cluster utente nel
loadBalancer.vips.ingressVIP |
Cluster utente Kubeception
La seguente tabella descrive a cosa servono i VIP e dove configurarli per i cluster di utenti che utilizzano kubeception.
VIP | Configurazione |
---|---|
VIP per il server API Kubernetes del cluster utente | File di configurazione del cluster utente nel
loadBalancer.vips.controlPlaneVIP |
VIP per il servizio in entrata nel cluster utente | File di configurazione del cluster utente nel
loadBalancer.vips.ingressVIP |
Mettere da parte i valori nodePort
In Google Distributed Cloud, il server API Kubernetes e il servizio di ingresso sono esposti da Kubernetes Services.
Con la modalità di bilanciamento del carico manuale, devi scegliere i tuoi valori nodePort
per questi servizi. Scegli valori compresi nell'intervallo 30000-32767.
Configura i valori nodePort
La posizione in cui configuri i valori nodePort
dipende dal fatto che nel cluster utente sia attivato ControlPlane V2.
Cluster di amministrazione HA
La tabella seguente descrive la funzione di nodePort
e dove configurarlo per i cluster di amministrazione HA.
nodePort |
Configurazione |
---|---|
1.15 e versioni precedenti: nodePort per i nodi dei componenti aggiuntivi |
File di configurazione del cluster di amministrazione nel
loadBalancer.manualLB.addonsNodePort campo |
Nella versione 1.16 e successive, non è necessario configurare un nodePort
per i nodi aggiuntivi per i cluster di amministrazione ad alta disponibilità.
Cluster di amministrazione non ad alta disponibilità
La tabella seguente descrive la funzione dei valori nodePort
e dove configurarli per i cluster di amministrazione non HA.
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
loadBalancer.vips.controlPlaneNodePort |
1.15 e versioni precedenti: nodePort per i nodi dei componenti aggiuntivi |
File di configurazione del cluster di amministrazione nel
loadBalancer.manualLB.addonsNodePort campo |
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 tabella seguente descrive a cosa servono i valori nodePorts
e dove configurarli per i cluster di utenti 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 control plane perché
Google Distributed Cloud gestisce il bilanciamento del carico sui nodi del control plane per
i cluster utente con Controlplane V2 abilitato.
Cluster utente Kubeception
La tabella seguente descrive la funzione dei valori nodePort
e dove configurarli per i cluster di utenti che utilizzano kubeception.
nodePort |
Configurazione |
---|---|
nodePort per il server API Kubernetes del
cluster utente |
File di configurazione del cluster utente nel
loadBalancer.manualLB.controlPlaneNodePort |
nodePort per il server Konnectivity del
cluster utente (il server Konnectivity utilizza il VIP del control plane) |
File di configurazione del cluster utente nel
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 |
File di configurazione del cluster di esempio
L'esempio seguente mostra una parte di un file di configurazione del cluster di amministrazione e utente:
Cluster di amministrazione HA
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 le precedenti richiedono un VIP e
nodeport
per i nodi 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 le precedenti richiedono VIP e
nodeport
per i nodi 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 di gestione o gli strumenti del bilanciatore del carico per configurare i seguenti mappaggi nel bilanciatore del carico. La modalità dipende dal bilanciatore del carico.
Cluster di amministrazione HA
Traffico verso i nodi del control plane
Google Distributed Cloud gestisce automaticamente il bilanciamento del carico del traffico del piano di controllo per i cluster di amministrazione HA. Sebbene non sia 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: di seguito è riportata la mappatura agli indirizzi IP e ai valori nodePort
per il traffico verso i servizi nei nodi dei componenti aggiuntivi:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Aggiungi questa mappatura per tutti i nodi del cluster di amministrazione, sia i nodi del control plane sia i nodi dei componenti aggiuntivi.
Nella versione 1.16 e successive, non è necessario configurare questa mappatura per i nodi aggiuntivi per i cluster di amministrazione ad alta disponibilità.
Cluster di amministrazione non ad alta disponibilità
Traffico del piano di controllo
Di seguito è riportata la mappatura all'indirizzo IP e al valore nodePort
per il nodo del piano di controllo:
- (
controlPlaneVIP
:443) -> (NODE_IP_ADDRESSES:controlPlaneNodePort
)
Aggiungi questa mappatura per tutti i nodi del cluster di amministrazione, sia il nodo del control plane sia i nodi dei componenti aggiuntivi.
Traffico verso i servizi nei nodi dei componenti aggiuntivi
1.15 e versioni precedenti: di seguito è riportata la mappatura agli indirizzi IP e ai valori nodePort
per i servizi in esecuzione nei nodi aggiuntivi:
- (
addonsVIP
:8443) -> (NODE_IP_ADDRESSES:addonsNodePort
)
Aggiungi questa mappatura per tutti i nodi del cluster di amministrazione, sia il nodo del control plane sia i nodi dei componenti aggiuntivi.
Nella versione 1.16 e successive, non è necessario configurare questa mappatura per i nodi aggiuntivi per i cluster di amministrazione non HA.
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 è riportata la mappatura agli indirizzi IP e ai valori nodePort
per il traffico del piano di dati:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Aggiungi queste mappature per tutti i nodi del cluster utente, sia i nodi del piano di controllo sia i nodi worker. Poiché hai configurato i NodePort sul cluster, Kubernetes apre i NodePort su tutti i nodi del cluster. In questo modo, qualsiasi nodo del cluster può gestire il traffico del piano dati.
Dopo aver configurato le mappature, il bilanciatore del carico ascolta il traffico sull'indirizzo IP configurato per il VIP di ingresso 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 è stata instradata a uno dei nodi del cluster, il networking Kubernetes interno prende il controllo e instrada la richiesta al pod di destinazione.
Cluster utente Kubeception
Traffico del piano di controllo
Di seguito è riportata la mappatura agli indirizzi IP e ai 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 del cluster di amministrazione, sia i nodi del cluster di amministrazione sia i nodi del piano di controllo del cluster utente.
Traffico del piano dati
Di seguito è riportata la mappatura agli indirizzi IP e ai valori nodePort
per il traffico del piano di dati:
- (
ingressVIP
:80
) -> (NODE_IP_ADDRESSES:ingressHTTPNodePort
) - (
ingressVIP
:443
) -> (NODE_IP_ADDRESSES:ingressHTTPSNodePort
)
Aggiungi queste mappature per tutti i nodi del cluster utente. Con i cluster utente che utilizzano kubeception, tutti i nodi del cluster sono nodi worker.
Ripristino delle connessioni ai nodi non riusciti (consigliato)
Oltre ai requisiti precedenti, ti consigliamo di configurare il bilanciatore del carico in modo da reimpostare le connessioni dei 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 in modo anomalo, il che può causare instabilità nel piano di controllo Kubernetes.
- Con F5 BIG-IP, questa impostazione si chiama Azione in caso di interruzione del servizio nella pagina di configurazione del pool di backend.
- Con HAProxy, questa impostazione si chiama shutdown-sessions on-marked-down nella configurazione del server di backend.
- Se utilizzi un bilanciatore del carico diverso, consulta la documentazione per trovare l'impostazione equivalente.
Ricevere assistenza per il bilanciamento del carico manuale
Google non fornisce assistenza 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 del carico.