Questa pagina mostra come controllare il modo in cui il traffico esterno raggiunge i tuoi servizi sui cluster Google Kubernetes Engine (GKE) utilizzando i livelli di servizio di rete. Network Service Tiers ti consente di ottimizzare il traffico di rete per le prestazioni (livello Premium) o per il risparmio sui costi (livello Standard).
Il livello Premium invia il traffico sulla rete backbone premium di Google per velocità e affidabilità superiori. Al contrario, il livello Standard utilizza le normali reti dei provider di servizi internet (ISP), che offrono una soluzione più conveniente.
Questa pagina è rivolta agli architetti cloud e agli specialisti di networking che progettano e realizzano l'architettura di rete della loro organizzazione. Per scoprire di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei contenuti, consulta Ruoli utente e attività comuni di GKE. Google Cloud
Come funzionano i Network Service Tiers in GKE
Questa sezione mostra come gestire Network Service Tiers in GKE.
Imposta un livello di rete a livello di progetto: puoi impostare il livello di rete predefinito per il tuo progetto Google Cloud in modo che utilizzi il livello Standard o Premium. Tutti i nuovi cluster vengono creati con l'impostazione
network-default
, che eredita l'impostazione del livello a livello di progetto. Questa impostazione viene mantenuta durante gli upgrade del cluster. I pool di nodi creati all'interno del cluster ereditano il livello di rete dalla configurazione a livello di progetto.Imposta un livello di rete quando crei nuovi cluster: puoi configurare il livello di rete quando crei un nuovo cluster, indipendentemente dall'impostazione del livello nel tuo progetto Google Cloud . I nuovi node pool utilizzano il livello di rete a livello di cluster e questa configurazione persiste anche dopo l'upgrade dei node pool.
Imposta un livello di rete durante l'aggiornamento dei cluster: puoi configurare il livello di rete quando aggiorni un cluster esistente. I nuovi node pool e i nuovi servizi LoadBalancer ereditano la configurazione del livello aggiornata, mentre i node pool e i servizi esistenti continuano a utilizzare la configurazione del livello di rete originale. La configurazione del livello aggiornata viene mantenuta dopo l'upgrade del cluster.
Imposta un livello di rete durante l'aggiornamento dei servizi LoadBalancer: i servizi LoadBalancer ereditano il livello di rete del cluster. Tuttavia, puoi ignorare questa impostazione e aggiornare il livello di rete nel manifest del servizio.
Network Service Tiers e bilanciamento del carico
Per impostazione predefinita, i bilanciatori del carico di rete passthrough esterni utilizzano il livello Premium. Puoi aggiornare questa configurazione in modo che il servizio LoadBalancer utilizzi il livello standard.
Se utilizzi i bilanciatori del carico delle applicazioni con il gateway, non puoi configurare i Network Service Tiers. Network Service Tiers sul gateway sono controllati dalla risorsa GatewayClass. Per saperne di più, consulta Indirizzo IP gateway.
GKE Ingress per i bilanciatori del carico delle applicazioni esterni non supporta il livello Standard per il routing del traffico.
Prima di iniziare
Prima di iniziare, assicurati di aver eseguito le seguenti operazioni:
- Attiva l'API Google Kubernetes Engine. Attiva l'API Google Kubernetes Engine
- Se vuoi utilizzare Google Cloud CLI per questa attività,
installala e poi
inizializza
gcloud CLI. Se hai già installato gcloud CLI, scarica l'ultima
versione eseguendo
gcloud components update
.
Limitazioni
Si applicano le seguenti limitazioni:
- Puoi configurare le impostazioni del livello di rete solo a livello di progetto o cluster. Non puoi configurare direttamente il livello di rete dei pool di nodi.
- Il livello Standard non è supportato per gli indirizzi IPv4 o IPv6 a doppio stack esterni globali. Per saperne di più sui tipi di indirizzi IP, consulta Indirizzi IP.
Crea un cluster con Network Service Tiers
Per creare un cluster e specificare il livello di rete, esegui questo comando:
gcloud container clusters create CLUSTER_NAME \
--network-tier=NETWORK_TIER \
...
Sostituisci i seguenti valori:
CLUSTER_NAME
: il nome del tuo cluster.NETWORK_TIER
: l'impostazione del livello di rete. Utilizzanetwork-default
per la stessa impostazione del livello del tuo progetto Google Cloud ,Standard
per il livello Standard oPremium
per il livello Premium.
Esegui la migrazione di un cluster esistente a un altro livello
L'aggiornamento del livello di rete di un cluster non influisce sul livello di rete delle risorse esistenti. Le risorse esistenti continuano a utilizzare l'indirizzo IP associato al vecchio livello di rete. Per evitare interruzioni del servizio, segui questi passaggi quando esegui la migrazione del cluster a un nuovo livello di rete:
Aggiorna il cluster: per aggiornare un cluster esistente con un livello di rete, esegui questo comando:
gcloud container clusters update CLUSTER_NAME \ --network-tier=NETWORK_TIER \ ...
Sostituisci i seguenti valori:
CLUSTER_NAME
: il nome del tuo cluster.NETWORK_TIER
: l'impostazione del livello di rete. Utilizzanetwork-default
per la stessa impostazione del livello del tuo progetto Google Cloud ,Standard
per il livello Standard oPremium
per il livello Premium.
Crea nuovi node pool e servizi: affinché i client esterni utilizzino i nuovi indirizzi IP associati al nuovo livello di rete, devi creare nuovi node pool e nuovi servizi LoadBalancer. I nuovi node pool e i nuovi servizi LoadBalancer ereditano la configurazione del livello aggiornata, mentre i node pool e i servizi esistenti continuano a utilizzare la configurazione del livello di rete originale.
Aggiorna i record DNS: modifica i record DNS in modo che puntino ai nuovi indirizzi IP dei nuovi servizi LoadBalancer.
Attendi la propagazione del DNS: attendi la scadenza del Time to Live (TTL) del DNS per assicurarti che i client vengano indirizzati ai nuovi servizi ed evitare di pubblicare record obsoleti.
Aggiorna un bilanciatore del carico esterno con Network Service Tiers
Per i bilanciatori del carico di rete passthrough esterni, GKE utilizza per impostazione predefinita il livello di rete
configurato sul cluster per la regola di forwarding e l'indirizzo IP esterni. Se
il livello di rete del cluster è impostato su network-default
, il bilanciatore del carico utilizza
il livello Premium. Puoi ignorare questa impostazione configurando l'annotazione
cloud.google.com/network-tier
nel manifest del servizio. Ad esempio:
```yaml
apiVersion: v1
kind: Service
metadata:
name: store-v1-lb-svc
annotations:
cloud.google.com/l4-rbs: "enabled"
cloud.google.com/network-tier: Standard
spec:
type: LoadBalancer
selector:
app: store
ports:
- name: tcp-port
protocol: TCP
port: 8080
targetPort: 8080
```
Per ulteriori informazioni sui parametri utilizzati per i servizi LoadBalancer, vedi Parametri del servizio.
Indirizzo IP statico: quando crei un servizio con un indirizzo IP statico, il livello di rete dell'indirizzo IP statico deve corrispondere al livello di rete del servizio LoadBalancer. Se c'è una mancata corrispondenza, viene visualizzato il seguente messaggio di errore
quando esegui il comando kubectl describe service
:
Error syncing load balancer: failed to ensure load balancer: requested ip "standard-service" is neither static nor assigned to the LB
Passaggi successivi
- Leggi la panoramica di Network Service Tiers.
- Scopri come creare un bilanciatore del carico esterno basato su un servizio di backend.