Questa pagina descrive i parametri per i manifest dei servizi che controllano il comportamento e la configurazione del servizio LoadBalancer. Prima di leggere questa pagina, assicurati di conoscere i concetti del servizio LoadBalancer di Google Kubernetes Engine (GKE).
Parametri del servizio
GKE supporta i seguenti parametri per i servizi LoadBalancer.
Parametro | Campo Servizio e descrizione | Interno | Esterno | Supporto delle versioni |
---|---|---|---|---|
Bilanciatore del carico di rete passthrough interno | networking.gke.io/load-balancer-type: "Internal"
Indica a GKE di creare un bilanciatore del carico di rete passthrough interno. Il bilanciatore del carico utilizza i backend NEG Per ulteriori informazioni, vedi Raggruppamento dei nodi . |
Tutte le versioni supportate. | ||
Bilanciatore del carico di rete passthrough esterno basato sui servizi di backend | cloud.google.com/l4-rbs: "enabled"
Indica a GKE di creare un bilanciatore del carico di rete passthrough esterno basato su un servizio di backend. Il bilanciatore del carico utilizza i backend NEG Per ulteriori informazioni, vedi Raggruppamento dei nodi . |
GKE 1.25.5 | ||
Bilanciamento del carico ponderato | networking.gke.io/weighted-load-balancing: "pods-per-node"
Consente ai nodi con più pod di pubblicazione di ricevere una percentuale maggiore di nuove connessioni rispetto ai nodi con meno pod di pubblicazione. |
GKE 1.31.0+ | ||
Policy di traffico interno | spec.internalTrafficPolicy
Se impostato su Questo parametro non è supportato nei cluster che eseguono GKE Dataplane V2. |
GKE 1.22+ | ||
Policy del traffico esterno | spec.externalTrafficPolicy
Controlla quali VM nodo superano i controlli di integrità del bilanciatore del carico e come
i pacchetti vengono instradati ai pod pronti e in servizio nel cluster. Controlla anche
il modo in cui i nodi vengono raggruppati in NEG Per i dettagli, vedi Concetti del servizio LoadBalancer. |
GKE 1.14+ (1.23.4-gke.400+ per il pool di nodi Windows). | ||
Porta del controllo di integrità | spec.healthCheckNodePort
Esegue il deployment di un controllo di integrità del bilanciatore del carico per i servizi LoadBalancer. Questo
parametro è valido solo se |
Tutte le versioni supportate. | ||
Regole firewall e lista consentita di indirizzi IP di origine | spec.loadBalancerSourceRanges
Configura regole firewall facoltative in GKE e nella rete VPC per consentire solo determinati intervalli di origine.
|
Tutte le versioni supportate. | ||
Indirizzi IP statici |
Specifica un indirizzo IPv4 statico, un intervallo di indirizzi IPv6 statici o entrambi, assegnati alle regole di forwarding del bilanciatore del carico. Per importanti requisiti di configurazione e dettagli di implementazione, consulta Considerazioni per la condivisione di un indirizzo IP comune. |
|
||
Network Service Tiers | cloud.google.com/network-tier
Specifica quali
livelli di servizio di rete
GKE utilizza per la regola di forwarding esterna e l'indirizzo IP. I valori validi per l'annotazione sono |
GKE 1.19 e versioni successive. | ||
Subnet personalizzata |
|
(si applica solo a IPv6) |
|
|
Accesso globale | networking.gke.io/internal-load-balancer-allow-global-access: "true"
Consente l'accesso all'indirizzo IP della regola di forwarding da parte di client in qualsiasi regione della rete VPC o di una rete collegata. |
Anteprima in GKE 1.16 e versioni successive. Disponibilità generale in GKE 1.17.9-gke.600 e versioni successive. | ||
Tutte le porte | GKE configura automaticamente la regola di forwarding in modo da utilizzare tutte le porte se in |
GKE 1.18.19-gke.1400 o versioni successive | ||
ipFamilyPolicy |
Definisce il modo in cui GKE alloca gli indirizzi IP a un servizio.
Puoi definire Per saperne di più, consulta Servizi dual-stack IPv4/IPv6. |
I cluster GKE nella versione 1.29 o successive supportano la rete dual-stack per i servizi LoadBalancer. | ||
ipFamilies (facoltativo) |
Definisce la famiglia di indirizzi IP per allocare servizi single-stack o dual-stack. Utilizza uno qualsiasi dei seguenti valori:
|
I cluster GKE nella versione 1.29 o successive supportano la rete dual-stack per i servizi LoadBalancer. |
Porta del controllo di integrità
Come descritto in Controlli di integrità del bilanciatore del carico, GKE esegue sempre il deployment di un controllo di integrità del bilanciatore del carico quando crea un bilanciatore del carico di rete passthrough esterno o un bilanciatore del carico di rete passthrough interno.
La possibilità di configurare o meno il parametro healthCheckNodePort
dipende dalla
seguente configurazione externalTrafficPolicy
:
externalTrafficPolicy |
Porta del controllo di integrità |
---|---|
Cluster |
Non puoi utilizzare |
Local |
Puoi selezionare una porta personalizzata utilizzando
|
Regole firewall e lista consentita di indirizzi IP di origine
A meno che tu non abbia configurato un cluster per saltare la creazione di regole firewall VPC per i servizi LoadBalancer, GKE crea una regola firewall VPC di autorizzazione in entrata per ogni servizio.
Ogni regola firewall creata automaticamente ha le seguenti caratteristiche:
- La direzione della regola firewall è in entrata e la sua azione è consentita. Le regole firewall di negazione implicita in entrata in Google Cloud indicano che GKE utilizza un modello di lista consentita quando crea regole firewall in entrata.
- GKE imposta il protocollo e la porta di destinazione della regola firewall su
quelli specificati nell'elenco
spec.ports[]
del servizio. - GKE configura le regole firewall per i servizi LoadBalancer impostando in modo esplicito il parametro di destinazione sull'indirizzo IP virtuale del bilanciatore del carico (la regola di forwarding del bilanciatore del carico).
- GKE imposta il parametro target della regola firewall in modo da includere tutti i nodi del cluster.
- Se il servizio include
spec.loadBalancerSourceRanges[]
, GKE imposta il parametro source della regola firewall sugli indirizzi IP in questo elenco. Inoltre, GKE configura route e regole all'interno del sistema operativo del nodo per limitare gli indirizzi IP di origine per il traffico bilanciato del carico, utilizzandokube-proxy
eiptables
(Legacy Dataplane) ocilium-agent
e regole eBPF (GKE Dataplane V2). Se il Servizio non includeloadBalancerSourceRanges[]
, GKE imposta il parametro di origine della regola firewall su tutti gli indirizzi IP(0.0.0.0/0)
.
Indirizzi IP statici
Puoi creare un indirizzo IP statico e configurare GKE in modo che assegni questo indirizzo statico alla regola di forwarding del bilanciatore del carico. L'utilizzo di un indirizzo IP statico garantisce che l'indirizzo IP del bilanciatore del carico rimanga invariato anche se apporti modifiche al servizio LoadBalancer.
Senza un indirizzo IP statico, GKE potrebbe assegnare un indirizzo IP diverso alla regola di forwarding del bilanciatore del carico quando aggiorni un servizio LoadBalancer. L'indirizzo IP della regola di forwarding non corrisponde all'indirizzo
spec.clusterIP
del servizio. L'indirizzo ClusterIP di un servizio non cambia mai quando
aggiorni un servizio LoadBalancer.
Parametri dell'indirizzo IP statico
Per indicare a un servizio LoadBalancer di utilizzare un indirizzo IP statico, utilizza il parametro spec.loadBalancerIP
o l'annotazione networking.gke.io/load-balancer-ip-addresses
. In GKE
1.29 e versioni successive, l'annotazione ha la precedenza su
spec.loadBalancerIP
se il manifest del servizio contiene sia il parametro sia
l'annotazione.
Parametro o annotazione e valore | Requisiti e funzionalità |
---|---|
spec.loadBalancerIP: IPv4_ADDRESS
|
Puoi specificare un indirizzo IPv4 interno statico per un servizio Internal Load Balancer solo IPv4. Puoi specificare un indirizzo IPv4 esterno statico per un servizio External LoadBalancer solo IPv4. Il parametro funziona con tutte le versioni di GKE supportate. |
networking.gke.io/load-balancer-ip-addresses: IP_ADDRESS_RESOURCE_NAME
|
Puoi specificare un indirizzo IPv4 statico, un intervallo di indirizzi IPv6 statici o entrambi per i servizi di bilanciamento del carico interno ed esterno solo IPv4, solo IPv6 e dual-stack. L'annotazione richiede GKE 1.29 o versioni successive e i seguenti requisiti aggiuntivi:
|
Considerazioni per la condivisione di un indirizzo IP comune
Due o più servizi LoadBalancer possono fare riferimento allo stesso indirizzo IP statico se la regola di forwarding per ogni bilanciatore del carico utilizza una combinazione univoca di indirizzo IP, protocollo, specifica della porta e specifica dei Network Service Tiers, come indicato nella tabella in questa sezione. Inoltre:
Gli indirizzi IPv6 statici sono in realtà intervalli di indirizzi IPv6
/96
, ma GKE configura i nodi solo per accettare i pacchetti sul primo indirizzo IPv6 (/128
) nell'intervallo/96
.Affinché due o più servizi Internal Load Balancer utilizzino lo stesso indirizzo IPv4 interno o lo stesso intervallo di indirizzi IPv6 interni, l'indirizzo IP statico deve essere creato con lo scopo
SHARED_LOADBALANCER_VIP
.
Servizio LoadBalancer interno | Servizio LoadBalancer esterno | |
---|---|---|
Specifica della porta | Le regole di forwarding per i bilanciatori del carico di rete passthrough interni supportano fino a cinque numeri di porta individuali oppure possono essere configurate per utilizzare tutte le porte. Quando un servizio LoadBalancer interno ha più di cinque
Le regole di forwarding con lo stesso indirizzo IP e protocollo non possono avere porte sovrapposte. Ciò significa che non puoi creare più servizi Internal Load Balancer che condividono lo stesso indirizzo IP, protocollo e porta o porte. Ad esempio:
Per saperne di più, consulta: Regole di forwarding del bilanciatore del carico di rete passthrough interno che utilizzano un indirizzo IP comune. |
GKE crea un bilanciatore del carico di rete passthrough esterno basato su un pool di destinazione se
il manifest del servizio LoadBalancer non include l'annotazione
Le regole di forwarding per i bilanciatori del carico di rete passthrough esterni basati su pool di destinazione devono utilizzare intervalli di porte contigui. L'intervallo di porte contigue include tutte le porte necessarie al servizio, ma potrebbe includere anche porte aggiuntive non utilizzate dal servizio. Ad esempio, un servizio LoadBalancer esterno basato su un bilanciatore del carico di rete passthrough esterno basato su un pool di destinazione che specifica le porte 80 e 443 nel relativo manifest del servizio utilizza una regola di forwarding del bilanciatore del carico con un intervallo di porte 80-443. Questo intervallo di porte impedisce ad altri servizi External LoadBalancer di utilizzare le porte 80, 443 e qualsiasi numero compreso tra 80 e 443. GKE crea un bilanciatore del carico di rete passthrough esterno basato sul servizio di backend se
il manifest del servizio LoadBalancer include l'annotazione
|
Network Service Tiers | Non configurabile: gli indirizzi interni sono sempre di livello Premium. | Configurabile per indirizzi IPv4 esterni statici a livello di regione. Gli intervalli di indirizzi IPv6 esterni regionali statici possono essere creati solo nel livello Premium. La specifica dei livelli di servizio di rete dell'indirizzo IP esterno statico deve corrispondere a:
Il livello predefinito del progetto è Premium, a meno che tu non l'abbia configurato in modo diverso. |
Prenotazione dell'indirizzo IP
GKE non riserva gli indirizzi IP statici configurati utilizzando
spec.loadBalancerIP
. Ciò significa che l'indirizzo IP assegnato al servizio
può essere rilasciato quando il servizio viene eliminato.
Per mantenere riservato l'indirizzo IP, devi creare manualmente una risorsa di indirizzo nel tuo progetto. Quando assegni un nome a questa risorsa, non utilizzare il nome del bilanciatore del carico interno, prefissi come k8s-
o l'UUID del servizio.
Se non riservi l'indirizzo, i log del progetto possono contenere voci relative alle risorse di indirizzi create e rimosse poco dopo. Si tratta di una parte normale del provisioning del servizio e deve essere prevista.
Subnet del bilanciatore del carico
Puoi configurare un servizio Internal LoadBalancer per utilizzare un indirizzo IPv4, un intervallo di indirizzi IPv6 o entrambi temporanei o statici in una subnet personalizzata che si trova nella stessa regione e nella stessa rete VPC del cluster. Utilizza una subnet personalizzata per un servizio Internal LoadBalancer per:
- Raggruppa i bilanciatori del carico di rete passthrough interni creati dai servizi Internal LoadBalancer di due o più cluster GKE nella stessa rete VPC e regione.
- Crea servizi LoadBalancer interni i cui bilanciatori del carico di rete passthrough interni hanno indirizzi IPv4 separati dagli indirizzi IPv4 dei nodi del cluster.
- In un cluster dual-stack, crea servizi Internal LoadBalancer i cui bilanciatori del carico di rete pass-through interni hanno intervalli di indirizzi IPv6 separati dagli indirizzi IPv6 dei nodi e dei pod del cluster. Una subnet LoadBalancer personalizzata è obbligatoria per supportare i servizi Internal LoadBalancer se la subnet del cluster ha un intervallo di indirizzi IPv6 esterno.
Puoi configurare un servizio LoadBalancer esterno per utilizzare un intervallo di indirizzi IPv6 effimero o statico in una subnet personalizzata che si trova nella stessa regione e nella stessa rete VPC del cluster. Utilizza una subnet personalizzata per creare servizi LoadBalancer esterni i cui bilanciatori del carico di rete passthrough esterni hanno intervalli di indirizzi IPv6 separati dagli indirizzi IPv6 dei nodi e dei pod del cluster. Una subnet LoadBalancer personalizzata è obbligatoria per supportare i servizi LoadBalancer esterni in un cluster dual-stack perché la subnet del cluster ha un intervallo di indirizzi IPv6 interni.
Annotazioni delle subnet personalizzate
Utilizza una delle seguenti annotazioni per indicare a un servizio LoadBalancer di utilizzare
un indirizzo IP temporaneo o statico in una subnet personalizzata. Se un manifest del servizio LoadBalancer
include entrambe le annotazioni, l'annotazione networking.gke.io/load-balancer-subnet
ha la precedenza, a condizione che i relativi requisiti siano soddisfatti.
Annotazione e valore | Requisiti e funzionalità |
---|---|
networking.gke.io/internal-load-balancer-subnet: SUBNET_RESOURCE_NAME
|
Puoi utilizzare l'annotazione solo per specificare una subnet personalizzata per un servizio di bilanciamento del carico interno solo IPv4. L'annotazione funziona con tutte le versioni di GKE supportate. |
networking.gke.io/load-balancer-subnet: SUBNET_RESOURCE_NAME
|
Puoi specificare una subnet personalizzata per un servizio Internal Load Balancer solo IPv4, solo IPv6 o dual-stack. Puoi specificare una subnet personalizzata per un servizio di bilanciamento del carico esterno solo IPv6 o dual-stack. L'annotazione richiede GKE 1.29 o versioni successive e i seguenti requisiti aggiuntivi:
|
Subnet e indirizzo IPv4 per un servizio Internal LoadBalancer
La tabella seguente descrive le combinazioni valide di specifica della subnet e indirizzo IPv4 per un servizio Internal Load Balancer solo IPv4 o dual-stack.
Indirizzo IPv4 statico
|
Indirizzo IPv4 temporaneo | |
---|---|---|
Subnet personalizzata
|
Subnet personalizzata e indirizzo IPv4 statico: l'indirizzo IPv4 interno statico deve essere stato creato nell'intervallo di indirizzi IPv4 primario della subnet personalizzata. | Subnet personalizzata e indirizzo IPv4 temporaneo: GKE utilizza un indirizzo IPv4 interno non allocato nell'intervallo di indirizzi IPv4 principale della subnet personalizzata. |
Subnet cluster | Subnet del cluster e indirizzo IPv4 statico: l'indirizzo IPv4 interno statico deve essere stato creato nell'intervallo di indirizzi IPv4 primario della subnet del cluster. | Subnet del cluster e indirizzo IPv4 temporaneo: GKE utilizza un indirizzo IPv4 interno non allocato nell'intervallo di indirizzi IPv4 principale della subnet del cluster. |
Intervallo di subnet e indirizzi IPv6 per un servizio Internal Load Balancer
La tabella seguente descrive le combinazioni valide di specifica della subnet e intervallo di indirizzi IPv6 per un servizio Internal Load Balancer solo IPv6 o a doppio stack. Anche se la regola di forwarding IPv6 del bilanciatore del carico di rete passthrough interno utilizza un intervallo di indirizzi IPv6 /96
interno, GKE configura i nodi solo per accettare i pacchetti le cui destinazioni corrispondono al primo indirizzo IPv6 (/128
) dell'intervallo /96
della regola di forwarding.
Intervallo di indirizzi IPv6 statici
|
Intervallo di indirizzi IPv6 effimeri | |
---|---|---|
Subnet a doppio stack personalizzata
|
Subnet personalizzata e intervallo di indirizzi IPv6 statici: l'intervallo di indirizzi IPv6 interni statici /96 deve essere stato creato nell'intervallo di indirizzi IPv6 interni /64 della subnet personalizzata.
|
Intervallo di indirizzi IPv6 temporanei e subnet personalizzata:
GKE utilizza un intervallo di indirizzi IPv6 interni /96 non allocato
dall'intervallo di indirizzi IPv6 interni /64 della subnet personalizzata.
|
Subnet a doppio stack del cluster
|
Intervallo di indirizzi IPv6 statici e subnet del cluster: l'intervallo di indirizzi IPv6 interni statici /96 deve essere stato creato nell'intervallo di indirizzi IPv6 interni /64 della subnet del cluster.
|
Intervallo di indirizzi IPv6 effimeri e subnet del cluster:
GKE utilizza un intervallo di indirizzi IPv6 interni /96 non allocato
dall'intervallo di indirizzi IPv6 interni /64 della subnet del cluster.
|
Subnet e indirizzo IPv4 per un servizio bilanciatore del carico esterno
Per i servizi di bilanciamento del carico esterno solo IPv4 e dual-stack, l'indirizzo IPv4 esterno, che sia un indirizzo IPv4 esterno statico o un indirizzo IPv4 esterno temporaneo, non proviene da una subnet.
Intervallo di subnet e indirizzi IPv6 per un servizio External LoadBalancer
La tabella seguente descrive le combinazioni valide di specifica della subnet e intervallo di indirizzi IPv6 per un servizio External LoadBalancer solo IPv6 o dual-stack. Anche se la regola di forwarding IPv6 del bilanciatore del carico di rete passthrough esterno utilizza un intervallo di indirizzi IPv6 esterni /96
, GKE configura i nodi solo per accettare i pacchetti le cui destinazioni corrispondono al primo indirizzo IPv6 (/128
) dell'intervallo /96
della regola di forwarding.
Intervallo di indirizzi IPv6 statici
|
Intervallo di indirizzi IPv6 effimeri | |
---|---|---|
Subnet a doppio stack personalizzata
|
Subnet personalizzata e intervallo di indirizzi IPv6 statici: l'intervallo di indirizzi IPv6 esterni statici /96 deve essere stato creato nell'intervallo di indirizzi IPv6 esterni statici /64 della subnet personalizzata. Gli intervalli di indirizzi IPv6 esterni statici possono essere creati solo nel livello Premium.
|
Intervallo di indirizzi IPv6 temporanei e subnet personalizzata:
GKE utilizza un intervallo di indirizzi IPv6 esterni /96 non allocati
dall'intervallo di indirizzi IPv6 esterni /64 della subnet personalizzata.
|
Subnet a doppio stack del cluster
|
Intervallo di indirizzi IPv6 statici e subnet del cluster: l'intervallo di indirizzi IPv6 esterni statici /96 deve essere stato creato nell'intervallo di indirizzi IPv6 esterni /64 della subnet del cluster. Gli intervalli di indirizzi IPv6 esterni statici possono essere creati solo nel livello Premium.
|
Subnet del cluster e intervallo di indirizzi IPv6 temporanei:
GKE utilizza un intervallo di indirizzi IPv6 esterni /96 non allocati
dall'intervallo di indirizzi IPv6 esterni /64 della subnet del cluster.
|
Accesso globale
Quando l'annotazione networking.gke.io/internal-load-balancer-allow-global-access
è false
o non specificata per un servizio LoadBalancer interno,
GKE crea un bilanciatore del carico di rete passthrough interno la cui regola di forwarding ha
l'accesso globale disattivato. Quando l'accesso globale è disabilitato, i client che devono
accedere al bilanciatore del carico devono trovarsi nella stessa regione e
nella stessa rete VPC o in una rete connessa alla rete VPC del cluster.
Quando l'annotazione networking.gke.io/internal-load-balancer-allow-global-access
è true
per un servizio LoadBalancer interno, GKE
attiva l'opzione di accesso globale nella regola di forwarding del bilanciatore del carico di rete passthrough interno.
I client che si trovano in qualsiasi regione della rete VPC o in una rete
connessa alla rete VPC del cluster possono accedere al bilanciatore
del carico.
Per saperne di più su come l'accesso globale si applica ai client in una rete connessa, consulta:
- Accesso client nella documentazione del bilanciatore del carico di rete passthrough interno
- Bilanciatori del carico di rete passthrough interni e reti connesse
Tutte le regole di port forwarding
Le regole di forwarding per i bilanciatori del carico di rete passthrough interni supportano cinque numeri di porta unici o tutte le porte.
In GKE, un servizio Internal LoadBalancer può supportare solo fino a 100 porte nel spec.ports[].port
del servizio. Se un servizio Internal LoadBalancer definisce fino a cinque porte, la regola di forwarding includerà queste porte specifiche. Tuttavia, se il servizio specifica più di cinque porte, la regola di forwarding verrà configurata automaticamente in modo che corrisponda a tutte le porte. Quando configuri una regola di forwarding per utilizzare tutte le porte, GKE crea solo regole firewall di autorizzazione in entrata per le porte specifiche configurate in spec.ports[].port
sul servizio.
Per saperne di più sulle regole di forwarding del bilanciatore del carico di rete passthrough interno e sulle specifiche delle porte valide, consulta Regole di forwarding e specifiche delle porte.
Servizio LoadBalancer dual-stack IPv4/IPv6
Puoi creare un servizio di bilanciamento del carico interno o esterno che può essere a stack singolo (solo IPv4 o solo IPv6) o dual-stack. I servizi LoadBalancer a stack singolo creano una singola regola di forwarding con un indirizzo IPv4 o IPv6. I servizi LoadBalancer a doppio stack creano due regole di forwarding: una con un indirizzo IPv4 e l'altra con un indirizzo IPv6. Per creare un servizio LoadBalancer dual-stack IPv4/IPv6, esegui il deployment su un cluster dual-stack IPv4/IPv6 e completa una delle seguenti operazioni a seconda del tipo di bilanciatore del carico che utilizzi:
- Per i servizi LoadBalancer interni, devi aver abilitato l'impostazione secondaria di GKE. Per ulteriori informazioni, consulta la sezione Impostazione secondaria del bilanciatore del carico interno.
- Per i servizi LoadBalancer esterni, devi utilizzare un bilanciatore del carico di rete passthrough esterno basato su un servizio di backend. Per saperne di più, consulta la sezione Bilanciatore del carico di rete esterno basato sui servizi di backend.
Per ogni
servizio, puoi definire le specifiche ipFamilyPolicy
e ipFamilies
. Per saperne di più,
consulta Stack doppio IPv4/IPv6.
Limitazioni dei servizi LoadBalancer dual-stack
- I servizi LoadBalancer con indirizzi IPv6 sono supportati solo sui cluster con
tipo di stack
ipv4-ipv6
. Per ulteriori informazioni, scopri come utilizzare un indirizzo IP dual-stack per un cluster nativo di VPC. I servizi LoadBalancer creati con un indirizzo single-stack non possono essere aggiornati a servizi dual-stack.
I servizi LoadBalancer creati con indirizzi dual-stack possono essere modificati in stack singolo in base alle seguenti condizioni:
- Un servizio con ipFamilies
["IPv4","IPv6"]
può essere modificato in un servizio con ipFamiliesIPv4
, ma nonIPv6
. - Un servizio con ipFamilies
["IPv6","IPv4"]
può essere modificato in un servizio con ipFamiliesIPv6
, ma nonIPv4
.
- Un servizio con ipFamilies