Questa architettura di riferimento fornisce una soluzione altamente disponibile e scalabile che utilizza Cloud Service Mesh e gateway Envoy per gestire il traffico di rete per le applicazioni Windows in esecuzione su Google Kubernetes Engine (GKE). Spiega come gestire questo traffico di rete utilizzando un servizio che può indirizzare il traffico ai pod e a un proxy open source compatibile con xDS. L'utilizzo di un'architettura come questa può contribuire a ridurre i costi e migliorare la gestione della rete.
Questo documento è rivolto ad architetti cloud, amministratori di rete e professionisti IT responsabili della progettazione e della gestione di applicazioni Windows in esecuzione su GKE.
Architettura
Il seguente diagramma mostra un'architettura per la gestione della rete per le applicazioni Windows in esecuzione su GKE mediante Cloud Service Mesh e i gateway Envoy:
L'architettura include i seguenti componenti:
- Un cluster GKE regionale con pool di nodi Windows e Linux.
- Due applicazioni Windows in esecuzione in due pod GKE distinti.
- Ogni applicazione è esposta da un servizio Kubernetes di tipo
ClusterIP
e da un gruppo di endpoint di rete (NEG).
- Ogni applicazione è esposta da un servizio Kubernetes di tipo
- Cloud Service Mesh crea e gestisce le route del traffico per
gli NEG per ogni pod GKE. Ogni percorso è mappato a un
scope
specifico.scope
identifica in modo univoco un gateway di ingresso Cloud Service Mesh. - Percorsi HTTP che mappano i servizi di backend per Cloud Service Mesh.
- Pod contenitore Envoy che fungono da gateway Envoy per il cluster GKE.
- Gateway Envoy in esecuzione su nodi Linux. I gateway sono configurati per indirizzare il traffico alle applicazioni Windows tramite i servizi corrispondenti. Envoy è configurato per utilizzare il parametro
scope
per caricare i dettagli di configurazione dei servizi Cloud Service Mesh pertinenti. - Un bilanciatore del carico delle applicazioni interno che termina il traffico SSL e indirizza tutto il traffico in entrata esterno ai gateway Envoy.
Prodotti utilizzati
Questa architettura di riferimento utilizza i seguenti prodotti Google Cloud e di terze parti:
Prodotti Google Cloud
- Cloud Load Balancing: un portafoglio di bilanciatori del carico scalabili, globali e regionali ad alte prestazioni.
- Google Kubernetes Engine (GKE): un servizio Kubernetes che puoi utilizzare per eseguire il deployment e gestire applicazioni containerizzate su larga scala utilizzando l'infrastruttura di Google.
- Cloud Service Mesh: una suite di strumenti che ti aiuta a monitorare e gestire un mesh di servizi affidabile on-premise o su Google Cloud.
Prodotti di terze parti
- Envoy Gateway: gestisce un proxy Envoy come gateway per applicazioni autonomo o basato su Kubernetes.
- API Gateway: un progetto Kubernetes ufficiale incentrato sul routing L4 e L7 in Kubernetes.
Caso d'uso
Il caso d'uso principale di questa architettura di riferimento è gestire il traffico di rete per le applicazioni Windows in esecuzione su GKE. Questa architettura offre i seguenti vantaggi:
Gestione della rete semplificata: i gateway Cloud Service Mesh ed Envoy forniscono una gestione della rete semplificata tramite un control plane centralizzato che gestisce il traffico di rete verso le applicazioni. Queste applicazioni possono essere applicazioni Linux o Windows eseguite su GKE o Compute Engine. L'utilizzo di questo schema di gestione della rete semplificata riduce la necessità di configurazione manuale.
Scalabilità e disponibilità avanzate: per soddisfare le tue esigenze in evoluzione, utilizza Cloud Service Mesh e i gateway Envoy per scalare le tue applicazioni Linux e Windows. Puoi anche utilizzare i gateway Envoy per fornire disponibilità elevata alle tue applicazioni bilanciando il carico del traffico su più pod.
Maggiore sicurezza: utilizza i gateway Envoy per aggiungere funzionalità di sicurezza alle tue applicazioni Linux e Windows, come terminazione SSL, autenticazione e limitazione della frequenza.
Costi ridotti: sia Cloud Service Mesh sia i gateway Envoy possono contribuire a ridurre i costi di gestione del traffico di rete per le applicazioni Linux e Windows.
Note sul layout
Questa sezione fornisce indicazioni per aiutarti a sviluppare un'architettura che soddisfi i tuoi requisiti specifici di sicurezza, affidabilità, costi ed efficienza.
Sicurezza
- Reti sicure: l'architettura utilizza un bilanciatore del carico delle applicazioni interno per criptare il traffico in entrata verso i container Windows. La crittografia in transito contribuisce a evitare la fuga di dati.
- Container Windows: i container Windows contribuiscono a fornire un ambiente sicuro e isolato per le applicazioni containerizzate.
Affidabilità
- Bilanciamento del carico: l'architettura utilizza più livelli di Cloud Load Balancing per distribuire il traffico tra i gateway Envoy e i container Windows.
- Tolleranza di errore: questa architettura è a tolleranza di errore senza single point of failure. Questo design contribuisce ad assicurare che sia sempre disponibile, anche se uno o più componenti si guastano.
- Scalabilità automatica: l'architettura utilizza la scalabilità automatica per scalare automaticamente il numero di gateway Envoy e contenitori Windows in base al carico. La scalabilità automatica contribuisce ad assicurare che i gateway e le applicazioni possano gestire i picchi di traffico senza problemi di prestazioni.
- Monitoraggio: l'architettura utilizza Google Cloud Managed Service per Prometheus e Suite operativa di Google Cloud per monitorare lo stato dei gateway Envoy e dei container Windows. Il monitoraggio ti aiuta a identificare i problemi in anticipo e potentially prevent them from disrupting your applications.
Ottimizzazione dei costi
- Scegli i tipi di istanze giusti per i tuoi carichi di lavoro: quando scegli i tipi di istanze, prendi in considerazione i seguenti fattori:
- Il numero di vCPU e la memoria richieste dalle tue applicazioni
- Il carico del traffico previsto per le tue applicazioni
- La necessità per gli utenti di disporre di applicazioni altamente disponibili
Utilizza la scalabilità automatica: la scalabilità automatica può aiutarti a risparmiare scalando automaticamente i carichi di lavoro di Windows verticalmente e orizzontalmente.
La scalabilità verticale regola le richieste e i limiti dei container in base all'utilizzo da parte del cliente.
- Automatizza la scalabilità verticale con la scalabilità automatica dei pod verticali.
La scalabilità orizzontale aggiunge o rimuove i pod Kubernetes per soddisfare la domanda.
- Automatizza la scalabilità orizzontale con la scalabilità automatica orizzontale dei pod.
Utilizza i gateway Cloud Service Mesh ed Envoy: i gateway Cloud Service Mesh ed Envoy possono aiutarti a risparmiare denaro in quanto indirizzano il traffico in modo efficiente alle tue applicazioni Windows. L'utilizzo di un routing più efficiente può contribuire a ridurre la quantità di larghezza di banda che devi acquistare. Inoltre, può contribuire a migliorare il rendimento di queste applicazioni.
Utilizza reti Virtual Private Cloud (VPC) condivise: le reti Virtual Private Cloud condivise ti consentono di condividere un singolo VPC tra più progetti. La condivisione può aiutarti a risparmiare riducendo il numero di VPC che devi creare e gestire.
Efficienza operativa
- Più domini con un unico bilanciatore del carico interno: l'architettura utilizza bilanciatori del carico delle applicazioni interni per scaricare il traffico SSL. Ogni proxy di destinazione HTTPS può supportare più certificati SSL (fino al numero massimo supportato) per gestire più applicazioni con domini diversi.
- Infrastructure as Code (IaC): per gestire l'infrastruttura, l'architettura può essere implementata utilizzando l'IaC. La IaC contribuisce ad assicurare che la tua infrastruttura sia coerente e ripetibile.
Deployment
Per eseguire il deployment di questa architettura, consulta Eseguire il deployment di applicazioni Windows in esecuzione su Kubernetes gestito.
Passaggi successivi
- Scopri di più sui prodotti Google Cloud utilizzati in questa guida di progettazione:
- Per altre architetture di riferimento, diagrammi e best practice, visita il Cloud Architecture Center.
Collaboratori
Autore: Eitan Eibschutz | Technical Solutions Consultant dello staff
Altri collaboratori:
- John Laham | Solution Architect
- Kaslin Fields | Developer Advocate
- Maridi (Raju) Makaraju | Technical Lead per l'idoneità all'assistenza
- Valavan Rajakumar | Key Enterprise Architect
- Victor Moreno | Product Manager, Cloud Networking