Questa architettura di riferimento fornisce una soluzione scalabile e a disponibilità elevata 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 il traffico di rete utilizzando un servizio in grado di instradare il traffico verso i pod e verso 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 è destinato agli architetti cloud, agli amministratori di rete e ai 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 del networking per le applicazioni Windows in esecuzione su GKE utilizzando 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 separati.
- Ogni applicazione viene esposta da un servizio Kubernetes di tipo
ClusterIP
e da un gruppo di endpoint di rete (NEG).
- Ogni applicazione viene esposta da un servizio Kubernetes di tipo
- Cloud Service Mesh crea e gestisce le route del traffico verso
i NEG per ogni pod GKE. Ogni percorso è mappato a un
scope
specifico.scope
identifica in modo univoco un gateway in entrata Cloud Service Mesh. - Route HTTP che vengono mappate ai servizi di backend per Cloud Service Mesh.
- Envoy Pod container 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 che
corrispondono a queste applicazioni. 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:
Google Cloud prodotti
- 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 delle 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 è la gestione del traffico di rete per le applicazioni Windows in esecuzione su GKE. Questa architettura offre i seguenti vantaggi:
Gestione di rete semplificata: i gateway Cloud Service Mesh ed Envoy forniscono una gestione di rete semplificata tramite un control plane centralizzato che gestisce il traffico di rete verso le applicazioni. Queste applicazioni possono essere Linux o Windows ed essere eseguite su GKE o Compute Engine. L'utilizzo di questo schema di gestione della rete semplificato 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 alta disponibilità per le 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.
Considerazioni sulla progettazione
Questa sezione fornisce indicazioni per aiutarti a sviluppare un'architettura che soddisfi i tuoi requisiti specifici di sicurezza, affidabilità, costi ed efficienza.
Sicurezza
- Networking sicuro: 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 prevenire la perdita 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 e non ha un singolo punto di errore. Questo design contribuisce a garantire che sia sempre disponibile, anche se uno o più componenti non funzionano.
- Scalabilità automatica: l'architettura utilizza la scalabilità automatica per scalare automaticamente il numero di gateway Envoy e container Windows in base al carico. La scalabilità automatica contribuisce a garantire 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 di integrità dei gateway Envoy e dei container Windows. Il monitoraggio ti aiuta a identificare i problemi in anticipo e potenzialmente a evitare che interrompano le tue applicazioni.
Ottimizzazione dei costi
- Scegli i tipi di istanza giusti per i tuoi carichi di lavoro: considera i
seguenti fattori quando scegli i tipi di istanza:
- Il numero di vCPU e la quantità di memoria richiesti dalle tue applicazioni
- Il carico di traffico previsto per le tue applicazioni
- La necessità per gli utenti di disporre di applicazioni ad alta disponibilità
Utilizza la scalabilità automatica: la scalabilità automatica può aiutarti a risparmiare denaro scalando automaticamente i carichi di lavoro Windows in verticale e in orizzontale.
Lo scale verticale regola le richieste e i limiti dei container in base all'utilizzo dei clienti.
- Automatizza lo scaling verticale con la scalabilità automatica pod verticale.
Lo scaling orizzontale aggiunge o rimuove pod Kubernetes per soddisfare la domanda.
- Automatizza la scalabilità orizzontale con la scalabilità automatica orizzontale dei pod.
Utilizza Cloud Service Mesh e i gateway Envoy: Cloud Service Mesh e i gateway Envoy possono aiutarti a risparmiare denaro instradando in modo efficiente il traffico alle tue applicazioni Windows. L'utilizzo di un routing più efficiente può contribuire a ridurre la quantità di larghezza di banda che devi acquistare. Può anche 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 denaro riducendo il numero di VPC da creare e gestire.
Efficienza operativa
- Più domini con un singolo 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 massimo supportato) per gestire più applicazioni con domini diversi.
- Infrastructure as Code (IaC): per gestire l'infrastruttura, l'architettura può essere implementata utilizzando IaC. IaC contribuisce a garantire che la tua infrastruttura sia coerente e ripetibile.
Deployment
Per eseguire il deployment di questa architettura, consulta Esegui il deployment di applicazioni Windows in esecuzione su Kubernetes gestito.
Passaggi successivi
- Scopri di più sui prodotti Google Cloud utilizzati in questa guida alla progettazione:
- Per ulteriori architetture di riferimento, diagrammi e best practice, esplora il Cloud Architecture Center.
Collaboratori
Autore: Eitan Eibschutz | Staff Technical Solutions Consultant
Altri collaboratori:
- John Laham | Solutions Architect
- Kaslin Fields | Developer Advocate
- Maridi (Raju) Makaraju | Supportability Tech Lead
- Valavan Rajakumar | Key Enterprise Architect
- Victor Moreno | Product Manager, Cloud Networking