Questa pagina fornisce una panoramica del funzionamento di GKE multi-cluster Services (MCS). Per scoprire come utilizzare MCS, consulta Configurazione dei servizi multi-cluster.
Panoramica di MCS
L'oggetto Service familiare di Kubernetes ti consente di trovare e accedere a un servizio all'interno di un singolo cluster Kubernetes. Tuttavia, a volte potresti voler suddividere le applicazioni in più cluster per soddisfare i requisiti di gestione dello stato, privacy, scalabilità, disponibilità e sovranità dei dati. Con MCS, puoi creare applicazioni Kubernetes che si estendono su più cluster.
MCS è un meccanismo di scoperta e chiamata dei servizi tra cluster per Google Kubernetes Engine (GKE) che sfrutta l'oggetto Service esistente. I servizi abilitati con questa funzionalità sono rilevabili e accessibili tra i cluster con un IP virtuale, in modo simile al comportamento di un servizio ClusterIP accessibile in un cluster. Come i tuoi servizi esistenti, MCS è compatibile con le API aperte e basate sulla community, garantendo che i tuoi carichi di lavoro rimangano portabili.
MCS è una funzionalità di GKE. MCS configura le zone e i record Cloud DNS per ogni servizio esportato nei cluster del parco risorse. Un parco risorse ti consente di raggruppare e normalizzare i cluster GKE in modo logico, semplificando l'amministrazione dell'infrastruttura e consentendo l'utilizzo di funzionalità multi-cluster come MCS. Per scoprire di più sui vantaggi dei parchi risorse e su come crearli, consulta la documentazione sulla gestione dei parchi risorse.
I servizi esportati, indipendentemente dal tipo, hanno sempre un record Cloud DNS e i servizi di tipo headless esportati hanno record per ogni pod di backend con un nome host, inclusi i pod negli StatefulSet. L'utilizzo di Cloud DNS comporta costi aggiuntivi. La fatturazione avviene in base ai prezzi di Cloud DNS.
Per esportare un servizio con MCS, crea una risorsa personalizzata ServiceExport utilizzando lo stesso spazio dei nomi e lo stesso nome del servizio. MCS importa automaticamente il servizio in ogni cluster del parco. Quando MCS importa un servizio, crea:
- Una risorsa personalizzata ServiceImport che utilizza lo stesso spazio dei nomi e lo stesso nome del servizio.
- Un oggetto Endpoints che utilizza lo stesso spazio dei nomi del servizio e un nome casuale.
Vantaggi dell'utilizzo di MCS
L'utilizzo di MCS offre i seguenti vantaggi:
- Alta disponibilità: l'esecuzione dello stesso servizio in cluster in più regioni consente di migliorare la tolleranza agli errori. Se un servizio in un cluster non è disponibile, la richiesta può essere trasferita e gestita da altri cluster. Con MCS è possibile gestire la comunicazione tra i servizi nei vari cluster per migliorare la disponibilità delle applicazioni containerizzate.
- Servizi stateful e stateless: i servizi stateful e stateless hanno complessità e dipendenze operative diverse e presentano compromessi operativi diversi. In genere, l'assenza di gestione dello stato consente di scalare, eseguire l'upgrade e eseguire la migrazione di un carico di lavoro con una disponibilità superiore. MCS ti consente di separare i cluster per i carichi di lavoro stateful e stateless e di renderli indipendenti, isolati e più facili da gestire.
- Servizi condivisi: è comune creare cluster Kubernetes separati per ottenere una maggiore disponibilità, una gestione migliore dei servizi con stato e senza stato e una conformità più semplice ai requisiti di sovranità dei dati. Tuttavia, molti servizi, come il monitoraggio con Prometheus o l'utilizzo della gestione dei secret con Vault, sono spesso condivisi tra tutti i cluster. Invece di richiedere la propria replica del servizio locale, ogni cluster con MCS semplifica la configurazione di servizi condivisi comuni in un cluster separato utilizzato da tutti i cluster funzionali.
- Migrazione: la modernizzazione di un'applicazione esistente in un'architettura basata su microservizi containerizzata spesso richiede il deployment dei servizi su più cluster Kubernetes. MCS fornisce un meccanismo per aiutare a colmare il divario nella comunicazione tra questi servizi, semplificando la migrazione delle applicazioni. Questo è particolarmente utile perché puoi eseguire il deployment dello stesso servizio su due cluster diversi e il traffico può passare da un cluster o un'applicazione all'altro.
Passaggi successivi
- Scopri di più su Ingress multi-cluster, che fornisce servizi per le direzioni di traffico nord-sud ed est-ovest.
- Scopri di più su Cloud Service Mesh, che offre un controllo più granulare sul routing e sulla definizione del traffico.