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 quel traffico di rete utilizzando un servizio che può instradare il traffico ai pod e al traffico proxy open source compatibile con xDS. L'utilizzo di un'architettura come questa può aiutare a ridurre i costi e a migliorare la gestione della rete.
Questo documento è rivolto a cloud architect, amministratori di rete e IT professionisti 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 Windows di applicazioni in esecuzione su GKE Gateway Cloud Service Mesh e Envoy:
L'architettura include i seguenti componenti:
- Un cluster GKE a livello di regione con pool di nodi sia Windows che Linux.
- Due applicazioni Windows in esecuzione in due
di pod GKE.
- Ogni applicazione è esposta da un cluster Kubernetes di tipo
ClusterIP
e un servizio gruppo di endpoint di rete (NEG).
- Ogni applicazione è esposta da un cluster Kubernetes di tipo
- Cloud Service Mesh crea e gestisce le route del traffico verso
i NEG per ogni pod GKE. Ogni percorso è mappato
specifico per
scope
. Quelscope
identifica in modo univoco un gateway in entrata Cloud Service Mesh. - Route HTTP mappate ai 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
indirizzare il traffico verso le applicazioni Windows tramite i servizi che
corrisponde a quelle applicazioni. Envoy è configurato per utilizzare
scope
per caricare i dettagli di configurazione Cloud Service Mesh. - Un Bilanciatore del carico delle applicazioni interno che termina il traffico SSL e indirizza tutto il traffico esterno in entrata alla i gateway di 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 ed 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 semplificata della rete: Cloud Service Mesh e Envoy i gateway offrono una gestione semplificata della rete attraverso un controllo 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 alta disponibilità delle tue applicazioni bilanciando il carico del traffico tra più pod.
Sicurezza migliorata: utilizza i gateway Envoy per aggiungere funzionalità di sicurezza a Linux e le applicazioni Windows, come la terminazione, l'autenticazione e limitato.
Costi ridotti: sia i gateway Cloud Service Mesh che Envoy possono essere d'aiuto ridurre i costi di gestione del traffico di rete per Linux e Windows diverse applicazioni.
Note sul layout
Questa sezione fornisce indicazioni per aiutarti a sviluppare un'architettura che soddisfi le i tuoi requisiti specifici in termini di sicurezza, affidabilità, costi ed efficienza.
Sicurezza
- Networking protetto: l'architettura utilizza un bilanciatore del carico delle applicazioni interno per 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 aiutano a fornire una protezione un ambiente 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 Windows. containerizzati.
- 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 eseguire automaticamente scalare il numero di gateway Envoy e container Windows in base caricamento. 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 Cloud Operations 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 memoria richieste dalle tue applicazioni
- Il carico del traffico previsto per le tue applicazioni
- La necessità da parte degli utenti di avere applicazioni ad alta disponibilità
Utilizza la scalabilità automatica. La scalabilità automatica può aiutarti a risparmiare denaro la scalabilità automatica verticale e orizzontale dei carichi di lavoro Windows.
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. Utilizzo di più un routing efficiente può aiutare a ridurre la quantità di larghezza di banda necessaria acquisto. Inoltre, può contribuire a migliorare le prestazioni di queste applicazioni.
Utilizza reti Virtual Private Cloud (VPC) condivise: le reti Virtual Private Cloud condivise consentono di condividere un unico VPC in 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 destinazione HTTPS il proxy può supportare più certificati SSL (fino al limite 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 Centro architetture di Google Cloud.
Collaboratori
Autore: Eitan Eibschutz | Technical Solutions Consultant dello staff
Altri collaboratori:
- Mario Rossi | Architetto di soluzioni
- Campi di Kaslin | Consulente per gli sviluppatori
- Maridi (Raju) Makaraju | Supportability Tech Lead
- Valavan Rajakumar | Key Enterprise Architect
- Victor Moreno | Product Manager, Cloud Networking