Questa pagina fornisce una panoramica del funzionamento di GKE multi-cluster Services (MCS). Per scoprire come utilizzare MCS, vedi Configurazione di multi-cluster Services.
Panoramica di MCS
Il noto oggetto Service di Kubernetes ti consente di rilevare e accedere a un servizio entro i confini 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 Service Discovery e chiamata di servizi cross-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, che corrisponde al comportamento di un servizio ClusterIP accessibile in un cluster. Come i tuoi servizi esistenti, MCS è compatibile con API open source e basate sulla community, garantendo la portabilità dei tuoi carichi di lavoro.
MCS è una funzionalità di GKE. MCS configura le zone DNS e i record Cloud DNS per ogni servizio esportato nei tuoi cluster fleet. Un parco risorse consente di raggruppare e normalizzare logicamente i cluster GKE, semplificando l'amministrazione dell'infrastruttura e consentendo l'utilizzo di funzionalità multi-cluster come MCS. Puoi scoprire di più sui vantaggi dei parchi risorse e su come crearli nella 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 in StatefulSet. L'utilizzo di Cloud DNS comporta costi aggiuntivi. La fatturazione viene effettuata 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 risorse. 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 affidabilità: l'esecuzione dello stesso servizio in più cluster in più regioni offre una migliore tolleranza agli errori. Se un servizio in un cluster non è disponibile, la richiesta può essere sottoposta a failover e gestita da altri cluster. Con MCS è possibile gestire la comunicazione tra i servizi nei 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 semplifica lo scale up, l'upgrade e la migrazione di un carico di lavoro con una disponibilità maggiore. MCS ti consente di separare i cluster per i workload stateful e stateless e di renderli indipendenti, isolati e più facili da gestire.
- Servizi condivisi: è prassi comune creare cluster Kubernetes separati per ottenere una maggiore disponibilità, una migliore gestione dei servizi stateful e stateless 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. Anziché richiedere a ogni cluster la propria replica del servizio locale, 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 containerizzati spesso richiede il deployment di servizi su più cluster Kubernetes. MCS fornisce un meccanismo per aiutare a colmare la comunicazione tra questi servizi, semplificando la migrazione delle applicazioni. Ciò è particolarmente utile in quanto puoi eseguire il deployment dello stesso servizio in due cluster diversi e il traffico può spostarsi da un cluster o un'applicazione a un altro.
Passaggi successivi
- Scopri di più sulla configurazione dei servizi multicluster.
- Leggi una panoramica di Ingress multi-cluster.
- Scopri come scegliere una soluzione di bilanciamento del carico multicluster.
- Scopri di più sulla gestione del parco risorse.
- Scopri di più sulla migrazione ai servizi GKE multi-cluster.