Parametri del servizio LoadBalancer


Questa pagina descrive i parametri per i manifest del servizio 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 di servizio

GKE supporta i seguenti parametri per i servizi LoadBalancer.

Parametro Campo e descrizione del servizio 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.

Per maggiori dettagli, consulta Concetti del servizio LoadBalancer.

Tutte le versioni supportate.
Bilanciatore del carico di rete passthrough esterno basato su 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.

Per maggiori dettagli, consulta Concetti del servizio LoadBalancer.

GKE 1.25.5 o versioni successive
Policy di traffico interno spec.internalTrafficPolicy

Se impostato su Local, GKE inoltra solo i pacchetti dai pod client su un nodo ai pod di servizio sullo stesso nodo. Se impostato su Cluster, GKE inoltra i pacchetti dai pod client su un nodo ai pod di servizio su qualsiasi nodo. Per maggiori dettagli, consulta Norme sul traffico interno del servizio.

Questo parametro non è supportato nei cluster che eseguono GKE Dataplane V2.

GKE 1.22 e versioni successive
Policy del traffico esterno spec.externalTrafficPolicy

Controlla quali VM di nodi superano i controlli di integrità del bilanciatore del carico e come vengono instradati i pacchetti ai pod pronti e in servizio nel cluster. Inoltre, controlla in che modo i nodi vengono raggruppati in GCE_VM_IP NEG quando è attivato il sottoinsieme GKE.

Per maggiori dettagli, consulta Concetti del servizio LoadBalancer.

GKE 1.14 e versioni successive (1.23.4-gke.400 e versioni successive 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 spec.externalTrafficPolicy è impostato su Local.

Tutte le versioni supportate.
Regole firewall e lista consentita per l'indirizzo IP di origine spec.loadBalancerSourceRanges

Configura le regole firewall facoltative in GKE e nella rete VPC per consentire solo determinati intervalli di origine. kube-proxy configura anche le regole iptables per corrispondere agli intervalli di origine specificati.

Tutte le versioni supportate.
Indirizzi IP statici
  • spec.loadBalancerIP (solo IPv4)
  • networking.gke.io/load-balancer-ip-addresses

Specifica un indirizzo IPv4 statico, un intervallo di indirizzi IPv6 statici o entrambi, assegnati alle regole di inoltro del bilanciatore del carico. Consulta la sezione Considerazioni per la condivisione di un indirizzo IP comune per informazioni importanti sui requisiti di configurazione e sull'implementazione.

  • spec.loadBalancerIP: tutte le versioni supportate.
  • networking.gke.io/load-balancer-ip-addresses: GKE 1.29 e versioni successive. Consulta Parametri degli indirizzi IP statici per ulteriori requisiti di annotazione o configurazione del cluster.
Network Service Tiers cloud.google.com/network-tier

Specifica i livelli di servizio di rete utilizzati da GKE per la regola di forwarding esterno e l'indirizzo IP. I valori validi dell'annotazione sono Standard e Premium (predefinito).

GKE 1.19 e versioni successive.
Subnet personalizzata
  • networking.gke.io/internal-load-balancer-subnet
  • networking.gke.io/load-balancer-subnet

(si applica solo a IPv6)
  • networking.gke.io/internal-load-balancer-subnet: tutte le versioni supportate
  • networking.gke.io/load-balancer-subnet: GKE 1.29 e versioni successive. Per ulteriori requisiti, consulta Annotazioni delle subnet personalizzate.
Accesso globale networking.gke.io/internal-load-balancer-allow-global-access: "true"

Consente all'indirizzo IP della regola di forwarding di essere accessibile ai client in qualsiasi regione della rete VPC o di una rete connessa.

Anteprima in GKE 1.16 e versioni successive. Disponibile in 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 spec.ports[].port sono specificate più di cinque (fino a 100) porte univoche.

GKE versione 1.18.19-gke.1400 o successive
ipFamilyPolicy

spec.ipFamilyPolicy

Definisce in che modo GKE alloca gli indirizzi IP a un servizio. Puoi definire spec.ipFamilyPolicy come SingleStack, PreferDualStack o RequireDualStack.

Per scoprire di più, consulta la sezione Servizi IPv4/IPv6 a doppio stack.

I cluster GKE nella versione 1.29 o successive supportano la rete dual-stack per i servizi LoadBalancer.
ipFamilies (facoltativo)

spec.ipFamilies

Definisce la famiglia di indirizzi IP per allocare servizi single-stack o dual-stack. Utilizza uno dei seguenti valori:

  • IPv4 solo per il servizio IPv4 a stack singolo.
  • IPv6 solo per il servizio IPv6.
  • IPv4,IPv6 per il servizio a doppio stack in cui l'indirizzo IP principale del servizio è IPv4.
  • IPv6,IPv4 per il servizio a doppio stack in cui l'indirizzo IP principale del servizio è IPv6.
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à dei bilanciatori 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 interno.

La possibilità di configurare il parametro healthCheckNodePort dipende dalla seguente configurazione di externalTrafficPolicy:

externalTrafficPolicy Porta del controllo di integrità
Cluster

Non puoi utilizzare spec.healthCheckNodePort.

Local

Puoi selezionare una porta personalizzata utilizzando spec.healthCheckNodePort. Se non specificato, il control plane Kubernetes assegna una porta di controllo di integrità dall'intervallo di porte del nodo.

Regole firewall e lista consentita di indirizzi IP di origine

Quando crei un servizio LoadBalancer, GKE crea una regola firewall VPC corrispondente al servizio. Ogni regola firewall presenta le seguenti caratteristiche:

  • La direzione della regola firewall è in entrata e l'azione è consentita. Le regole del firewall di immissione con rifiuto implicito in Google Cloud indicano che GKE utilizza un modello di lista consentita per la creazione delle regole del firewall di immissione.
  • GKE imposta il protocollo e la porta di destinazione della regola firewall su quelli specificati nell'elenco spec.ports[] del servizio.
  • GKE imposta la destinazione per la regola firewall impostando il parametro target sull'indirizzo IP virtuale del bilanciatore del carico.
  • Se il servizio include spec.loadBalancerSourceRanges[], GKE imposta il parametro source della regola del firewall sugli indirizzi IP in quell'elenco. Inoltre, l'istanza kube-proxy in esecuzione su ogni nodo configura le regole iptables del nodo per limitare il traffico agli indirizzi IP specificati. Se il servizio non include loadBalancerSourceRanges[], GKE imposta il parametro di origine della regola del firewall su tutti gli indirizzi IP (0.0.0.0/0).

La regola firewall creata per un servizio LoadBalancer consente ai pacchetti corrispondenti alle porte di destinazione e al protocollo del servizio di accedere all'indirizzo IP virtuale del servizio.

Servizi che utilizzano porte comuni

Quando un cluster contiene due o più servizi che condividono almeno un protocollo e una porta di destinazione comuni, l'insieme effettivo di intervalli di origine è l'unione di loadBalancerSourceRanges per tutti i servizi che specificano questa combinazione di protocollo e porta di destinazione. Questo perché il parametro target di una regola firewall di ingresso definisce gli indirizzi IP di destinazione come tutti gli indirizzi IP associati a una VM.

Considera un cluster con due servizi LoadBalancer:

  • spec.ports[0].port del primo servizio è la porta TCP 80 e il suo spec.loadBalancerSourceRanges=[100.10.0.0/16]. Il bilanciatore del carico risultante corrispondente a questo servizio ha l'indirizzo IP 192.0.2.2.
  • spec.ports[0].port del secondo servizio è la porta TCP 80, spec.ports[1].port è la porta TCP 90 e il suo spec.loadBalancerSourceRanges=[172.16.0.0/24]. Il bilanciatore del carico risultante corrispondente a questo servizio ha l'indirizzo IP 198.51.100.3.

GKE crea due regole firewall che consentono il traffico in entrata nella rete Virtual Private Cloud del cluster. Entrambe le regole firewall specificano tutti i nodi del cluster come obiettivi:

  • La prima regola firewall consente i pacchetti alla porta di destinazione TCP 80 dall'origine 100.10.0.0/16.
  • La seconda regola firewall consente i pacchetti alle porte di destinazione TCP 80 e 90 dall'origine 172.16.0.0/24.

La prima regola di forwarding inoltra il traffico corrispondente alla destinazione 192.0.2.2:80. La seconda regola di forwarding instrada il traffico corrispondente sia alle destinazioni 198.51.100.3:80 sia a 198.51.100.3:90. Tutte e tre le seguenti sono destinazioni valide su ogni nodo: 192.0.2.2:80, 198.51.100.3:80 e 198.51.100.3:90. Ciò significa che:

  • Entrambi i servizi accettano pacchetti per la porta TCP 80 dall'unione degli intervalli di origine dell'indirizzo IP, da 100.10.0.0/16 o 172.16.0.0/24.
  • Il secondo servizio accetta pacchetti per la porta TCP 90 da 172.16.0.0/24.

L'insieme effettivo di intervalli di origine per tutti i servizi che utilizzano la stessa combinazione di protocollo e porta di destinazione diventa tutti gli indirizzi IP se spec.loadBalancerSourceRanges viene omesso in almeno un servizio che utilizza quella combinazione di protocollo e porta di destinazione. Ad esempio, se il secondo servizio avesse omesso spec.loadBalancerSourceRanges, l'origine del secondo firewall sarebbe 0.0.0.0/0 e:

  • Entrambi i servizi accetteranno i pacchetti per la porta TCP 80 dall'unione degli intervalli di origine degli indirizzi IP, da 100.10.0.0/16 o 0.0.0.0/0. Poiché l'intervallo 0.0.0.0/0 include l'intervallo 100.10.0.0/16, l'origine effettiva per i pacchetti inviati alla porta TCP 80 è qualsiasi indirizzo IP.
  • Il secondo servizio accetterà i pacchetti per la porta TCP 90 da 0.0.0.0/0 (qualsiasi indirizzo IP).

Indirizzi IP statici

Puoi creare un indirizzo IP statico e configurare GKE in modo da assegnare 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 inoltro del bilanciatore del carico quando aggiorni un servizio LoadBalancer. L'indirizzo IP della regola di forwarding non corrisponde all'indirizzospec.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 versione 1.29 e 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 LoadBalancer interno solo IPv4. Puoi specificare un indirizzo IPv4 esterno statico per un servizio LoadBalancer esterno solo IPv4. Il parametro funziona con tutte le versioni di GKE supportate.

networking.gke.io/load-balancer-ip-addresses:
IP_ADDRESS_RESOURCE_NAME
  • Per i servizi LoadBalancer a stack singolo, imposta il valore dell'annotazione sul nome della risorsa indirizzo IPv4 o IPv6, non sull'indirizzo IP stesso.
  • Per i servizi LoadBalancer a doppio stack, imposta il valore dell'annotazione sul nome della risorsa dell'indirizzo IPv4 statico e sul nome della risorsa dell'intervallo di indirizzi IPv6 statici separati da una virgola.

Puoi specificare un indirizzo IPv4 statico, un intervallo di indirizzi IPv6 statici o entrambi per i servizi LoadBalancer interni ed esterni solo IPv4, solo IPv6 e a doppio stack. L'annotazione richiede GKE 1.29 o versioni successive e i seguenti requisiti aggiuntivi:

  • Per utilizzare questa annotazione con un servizio LoadBalancer interno, devi creare il servizio LoadBalancer interno in un cluster dopo aver attivato l'impostazione secondaria GKE.
  • Per utilizzare questa annotazione con un servizio LoadBalancer esterno, devi includere l'annotazione cloud.google.com/l4-rbs: "enabled" nel manifest del servizio quando crei il servizio LoadBalancer esterno.

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 Network Service Tiers, come indicato nella tabella di questa sezione. Inoltre:

  • Gli indirizzi IPv6 statici sono in realtà intervalli di indirizzi IPv6 di /96, ma GKE configura i nodi in modo da accettare i pacchetti solo sul primo indirizzo IPv6 (/128) nell'intervallo /96.

  • Affinché due o più servizi Internal LoadBalancer 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 inoltro per i bilanciatori del carico di rete passthrough interni supportano fino a cinque singoli numeri di porta oppure possono essere configurate per utilizzare tutte le porte.

Quando un servizio LoadBalancer interno ha più di cinque spec.ports[] specificati, GKE configura la regola di forwarding per il bilanciatore del carico di rete passthrough interno in modo da utilizzare tutte le porte.

Le regole di inoltro con lo stesso indirizzo IP e protocollo non possono avere porte sovrapposte. Ciò significa che non puoi creare più servizi LoadBalancer interni che condividono lo stesso indirizzo IP, protocollo e porte. Ad esempio:

  • Se crei un servizio bilanciatore del carico interno utilizzando la porta TCP 80, non puoi creare un altro servizio utilizzando le porte TCP 80, 81 e 90 perché la porta 80 si sovrappone.
  • Se un servizio di bilanciatore del carico interno utilizza le porte TCP 80, 8080 e 90, non puoi creare un altro servizio che utilizzi TCP su tutte le porte, in quanto anche in questo caso le porte si sovrapporrebbero.

Per ulteriori informazioni, consulta Regole di inoltro 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 nel manifest del servizio LoadBalancer manca l'annotazione cloud.google.com/l4-rbs: "enabled".

Le regole di inoltro 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 di cui il Servizio ha bisogno, 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 pool di destinazione che specifica le porte 80 e 443 nel relativo manifest del servizio utilizza una regola di inoltro del bilanciatore del carico con un intervallo di porte di 80-443. Questo intervallo di porte impedisce ad altri servizi bilanciatori del carico esterni di utilizzare le porte 80, 443 e i numeri 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 cloud.google.com/l4-rbs: "enabled". Le regole di inoltro per i bilanciatori del carico di rete passthrough esterni basati su servizio di backend supportano fino a cinque numeri di porta distinti o un intervallo di porte contiguo.

Network Service Tiers Non configurabile: gli indirizzi interni sono sempre di livello Premium.

Configurabile per indirizzi IPv4 esterni regionali statici. 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 specificato nell'annotazione cloud.google.com/network-tier del manifest del servizio LoadBalancer, se presente nel manifest, oppure
  • Il livello predefinito del progetto, se l'annotazione cloud.google.com/network-tier non è presente nel manifest del servizio LoadBalancer.

Il livello predefinito del progetto è Premium, a meno che non lo abbia configurato diversamente.

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 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 prenoti l'indirizzo autonomamente, i log del progetto possono contenere voci sulle risorse indirizzo create e rimosse poco dopo. Questo fa parte del normale provisioning del servizio e dovrebbe essere previsto.

Subnet del bilanciatore del carico

Puoi configurare un servizio LoadBalancer interno in modo che utilizzi un indirizzo IPv4 temporaneo o statico, un intervallo di indirizzi IPv6 o entrambi in una subnet personalizzata situata nella stessa regione e nella stessa rete VPC del cluster. Utilizza una sottorete personalizzata per un servizio LoadBalancer interno per:

  • Raggruppa i bilanciatori del carico di rete passthrough interni creati dai servizi LoadBalancer interni di due o più cluster GKE nella stessa rete VPC e nella stessa regione.
  • Crea servizi LoadBalancer interni i cui bilanciatori del carico di rete passthrough interni hanno indirizzi IPv4 distinti dagli indirizzi IPv4 dei nodi del cluster.
  • In un cluster dual-stack, crea servizi LoadBalancer interni i cui bilanciatori del carico di rete passthrough interni hanno intervalli di indirizzi IPv6 separati dagli indirizzi IPv6 dei nodi e dei pod del cluster. Una sottorete LoadBalancer personalizzata è obbligatoria per supportare i servizi LoadBalancer interni se la sottorete del cluster ha un intervallo di indirizzi IPv6 esterni.

Puoi configurare un servizio LoadBalancer esterno in modo che utilizzi un intervallo di indirizzi IPv6 temporaneo o statico in una subnet personalizzata situata nella stessa regione e nella stessa rete VPC del cluster. Utilizza una sottorete personalizzata per creare servizi LoadBalancer esterni i cui bilanciatori del carico di rete passthrough esterni hanno intervalli di indirizzi IPv6 distinti dagli indirizzi IPv6 del nodo e del pod del cluster. Una subnet LoadBalancer personalizzata è obbligatoria per supportare i servizi LoadBalancer esterni in un cluster a doppio 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 il manifest di un 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 LoadBalancer 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 LoadBalancer solo IPv4, solo IPv6 o a doppio stack. Puoi specificare una subnet personalizzata per un servizio LoadBalancer esterno solo IPv6 o a doppio stack. L'annotazione richiede GKE 1.29 o versioni successive e i seguenti requisiti aggiuntivi:

  • Per utilizzare questa annotazione per specificare una sottorete personalizzata per un servizio LoadBalancer interno, devi creare il servizio LoadBalancer interno in un cluster dopo aver attivato il sottoinsieme GKE.
  • Per utilizzare questa annotazione per specificare una sottorete personalizzata per un servizio LoadBalancer esterno, devi includere l'annotazione cloud.google.com/l4-rbs: "enabled" nel manifest del servizio quando crei il servizio LoadBalancer esterno.

Subnet e indirizzo IPv4 per un servizio LoadBalancer interno

La tabella seguente descrive le combinazioni valide di specifica della subnet e indirizzo IPv4 per un servizio LoadBalancer interno solo IPv4 o a doppio 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 principale della subnet personalizzata. Subnet personalizzata e indirizzo IPv4 temporaneo: GKE utilizza un indirizzo IPv4 interno non allocato nell'intervallo di indirizzi IPv4 primario della subnet personalizzata.
Subnet del cluster Subnet del cluster e indirizzo IPv4 statico: l'indirizzo IPv4 interno statico deve essere stato creato nell'intervallo di indirizzi IPv4 principale della subnet del cluster. Subnet del cluster e indirizzo IPv4 temporaneo: GKE utilizza un indirizzo IPv4 interno non allocato nell'intervallo di indirizzi IPv4 primario della subnet del cluster.

Intervallo di indirizzi IPv6 e subnet per un servizio LoadBalancer interno

La tabella seguente descrive le combinazioni valide di specifica della subnet e di intervallo di indirizzi IPv6 per un servizio di bilanciatore del carico interno 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 in modo da accettare solo 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 dual-stack personalizzata
  • Deve trovarsi nella stessa rete VPC e nella stessa regione del cluster.
  • Deve avere un intervallo di indirizzi IPv6 interno (tipo di accesso INTERNAL).
  • Deve essere specificato utilizzando l'annotazione networking.gke.io/load-balancer-subnet.
Subnet personalizzata e intervallo di indirizzi IPv6 statici: l'intervallo di indirizzi IPv6 interno statico /96 deve essere stato creato nell'intervallo di indirizzi IPv6 interno /64 della subnet personalizzata. Subnet personalizzata e intervallo di indirizzi IPv6 effimeri: GKE utilizza un intervallo di indirizzi IPv6 /96 interno non allocato dall'intervallo di indirizzi IPv6 /64 interno della subnet personalizzata.
Subnet a stack doppio del cluster
  • Deve avere un intervallo di indirizzi IPv6 interno (tipo di accesso INTERNAL).
Subnet del cluster e intervallo di indirizzi IPv6 statici: l'intervallo di indirizzi IPv6 interno statico /96 deve essere stato creato nell'intervallo di indirizzi IPv6 interno /64 della subnet del cluster. Subnet del cluster e intervallo di indirizzi IPv6 effimeri: GKE utilizza un intervallo di indirizzi IPv6 interno /96 non allocato dall'intervallo di indirizzi IPv6 interno /64 della subnet del cluster.

Subnet e indirizzo IPv4 per un servizio LoadBalancer esterno

Per i servizi LoadBalancer esterni solo IPv4 e a doppio stack, l'indirizzo IPv4 esterno, che si tratti di un indirizzo IPv4 esterno statico o di un indirizzo IPv4 esterno temporaneo, non proviene da una subnet.

Intervallo di indirizzi IPv6 e subnet per un servizio LoadBalancer esterno

La tabella seguente descrive le combinazioni valide di specifica della subnet e intervallo di indirizzi IPv6 per un servizio LoadBalancer esterno 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 /96 esterno, GKE configura i nodi in modo da accettare solo 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 dual-stack personalizzata
  • Deve trovarsi nella stessa rete VPC e nella stessa regione del cluster.
  • Deve avere un intervallo di indirizzi IPv6 esterni (tipo di accesso EXTERNAL).
  • Deve essere specificato utilizzando l'annotazione networking.gke.io/load-balancer-subnet.
Subnet personalizzata e intervallo di indirizzi IPv6 statici: l'intervallo di indirizzi IPv6 /96 esterno statico deve essere stato creato nell'intervallo di indirizzi IPv6 /64 esterno della subnet personalizzata. Gli intervalli di indirizzi IPv6 esterni statici possono essere creati solo nel livello Premium. Subnet personalizzata e intervallo di indirizzi IPv6 effimeri: GKE utilizza un intervallo di indirizzi IPv6 /96 esterno non allocato dall'intervallo di indirizzi IPv6 /64 esterno della subnet personalizzata.
Subnet a stack doppio del cluster
  • Deve avere un intervallo di indirizzi IPv6 esterni (tipo di accesso EXTERNAL).
Subnet del cluster e intervallo di indirizzi IPv6 statici: l'intervallo di indirizzi IPv6 /96 esterno statico deve essere stato creato nell'intervallo di indirizzi IPv6 /64 esterno 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 effimeri: GKE utilizza un intervallo di indirizzi IPv6 /96 esterno non allocato dall'intervallo di indirizzi IPv6 /64 esterno 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 è disattivato, 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 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:

Tutte le regole di port forwarding

Le regole di inoltro per i bilanciatori del carico di rete passthrough interni supportano cinque numeri di porta univoci o tutte le porte.

In GKE, un servizio bilanciatore del carico interno può supportare fino a 100 porte nel spec.ports[].port del servizio. Se un servizio LoadBalancer interno 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 da corrispondere a tutte le porte. Quando configuri una regola di forwarding per l'utilizzo di tutte le porte, GKE crea solo regole firewall di autorizzazione in entrata per le porte specifiche configurate in spec.ports[].port nel servizio.

Per ulteriori informazioni sulle regole di inoltro del bilanciatore del carico di rete passthrough interno e sulle specifiche delle porte valide, consulta Regole di inoltro e specifiche delle porte.

Servizio LoadBalancer con stack doppio IPv4/IPv6

Puoi creare un servizio LoadBalancer interno o esterno che può essere a stack singolo (solo IPv4 o solo IPv6) o a doppio stack. I servizi LoadBalancer in stack singolo creano una singola regola di forwarding con un indirizzo IPv4 o IPv6. I servizi LoadBalancer a doppio stack creano due regole di inoltro: una con un indirizzo IPv4 e un'altra con un indirizzo IPv6. Per creare un servizio LoadBalancer a doppio stack IPv4/IPv6, esegui il deployment in un cluster a doppio stack IPv4/IPv6 e completa una delle seguenti operazioni, a seconda del tipo di bilanciatore del carico utilizzato:

Per ogni servizio, puoi definire le specifiche ipFamilyPolicy e ipFamilies. Per saperne di più, consulta IPv4/IPv6 a doppio stack.

Limitazioni dei servizi LoadBalancer dual-stack

  • I servizi LoadBalancer con indirizzi IPv6 sono supportati solo nei cluster con tipo di stack ipv4-ipv6. Per ulteriori informazioni, scopri come utilizzare un indirizzo IP a doppio stack per un cluster nativo VPC.
  • Non è possibile eseguire l'upgrade dei servizi LoadBalancer creati con un indirizzo single-stack ai servizi dual-stack.

  • I servizi LoadBalancer creati con indirizzi a doppio stack possono essere modificati in modo da avere un singolo stack in base alle seguenti condizioni:

    • Un servizio con ipFamilies ["IPv4","IPv6"] può essere modificato in un servizio con ipFamilies IPv4, ma non IPv6.
    • Un servizio con ipFamilies ["IPv6","IPv4"] può essere modificato in un servizio con ipFamilies IPv6, ma non IPv4.