Questa pagina mostra come controllare il modo in cui il traffico esterno raggiunge i servizi sui cluster Google Kubernetes Engine (GKE) utilizzando Network Service Tiers. 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 offre traffico sulla rete backbone premium di Google per una velocità e un'affidabilità superiori. Al contrario, il livello Standard utilizza le normali reti di provider di servizi internet (ISP) che offrono una soluzione più economica.
Questa pagina è rivolta agli architetti cloud e agli specialisti di networking che progettano e realizzano l'architettura della rete della loro organizzazione. Per saperne di più sui ruoli comuni e sulle attività di esempio a cui facciamo riferimento nei Google Cloud contenuti, consulta Ruoli e attività utente GKE comuni.
Come funziona 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 in modo che utilizzi il livello Standard o livello Premium. Google Cloud 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 node pool creati all'interno del cluster ereditano il livello di rete dalla configurazione a livello di progetto.Imposta un livello di rete durante la creazione di nuovi cluster: puoi configurare il livello di rete quando crei un nuovo cluster, indipendentemente dall'impostazione del livello nel tuo Google Cloud progetto. I nuovi node pool utilizzano il livello di rete a livello di cluster e questa configurazione viene mantenuta 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 sostituire 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 invece il livello Standard.
Se utilizzi i bilanciatori del carico delle applicazioni con Gateway, non puoi configurare Network Service Tiers. Network Service Tiers su Gateway è controllato dalla risorsa GatewayClass. Per saperne di più, consulta Indirizzo IP del 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 attività:
- Abilita l'API Google Kubernetes Engine. Abilita 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 il
gcloud components updatecomando. Le versioni precedenti di gcloud CLI potrebbero non supportare l'esecuzione dei comandi in questo documento.
Limitazioni
Si applicano le seguenti limitazioni:
- Puoi configurare le impostazioni del livello di rete solo a livello di progetto o di cluster. Non puoi configurare direttamente il livello di rete dei node pool.
- 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 il comando seguente:
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-defaultper la stessa impostazione del livello del tuo Google Cloud progetto,Standardper il livello Standard oPremiumper il livello Premium.
Esegui la migrazione di un cluster esistente a un livello diverso
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 il comando seguente:
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-defaultper la stessa impostazione del livello del tuo Google Cloud progetto,Standardper il livello Standard oPremiumper 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 TTL (Time to Live) 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 nel cluster per la regola di forwarding esterna e l'indirizzo IP. Se il livello di rete del cluster è impostato su network-default, il bilanciatore del carico utilizza il livello Premium. Puoi sostituire 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/network-tier: Standard
spec:
type: LoadBalancer
loadBalancerClass: networking.gke.io/l4-regional-external
selector:
app: store
ports:
- name: tcp-port
protocol: TCP
port: 8080
targetPort: 8080
```
Per saperne di più sui parametri utilizzati per i servizi LoadBalancer, consulta 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.