Servizi multi-cluster


Questa pagina fornisce una panoramica del funzionamento dei servizi multi-cluster GKE. Per informazioni su come utilizzare MCS, consulta Configurazione dei servizi multi-cluster.

Panoramica di MCS

L'oggetto familiare Service di Kubernetes consente di scoprire e accedere a un servizio all'interno dei 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 distribuite su più cluster.

MCS è un meccanismo di rilevamento e chiamata di servizi tra cluster per Google Kubernetes Engine (GKE) che sfrutta l'oggetto Service esistente. I servizi abilitati con questa funzionalità sono rilevabili e accessibili su cluster con un IP virtuale, corrispondente al comportamento di un servizio ClusterIP accessibile in un cluster. Come i servizi esistenti, MCS è compatibile con le API aperte e basate sulla community, in modo 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 consente di raggruppare e normalizzare logicamente i cluster GKE, semplificando l'amministrazione dell'infrastruttura e consentendo l'uso di funzionalità multi-cluster come MCS. Per saperne di più sui vantaggi dei parchi risorse e su come crearli, consulta la documentazione sulla gestione del parco risorse.

I servizi esportati, indipendentemente dal tipo, hanno sempre un record Cloud DNS, mentre i servizi di tipo headless esportati hanno record per ogni pod di backend con un nome host, inclusi i pod negli oggetti StatefulSet. L'utilizzo di Cloud DNS comporta costi aggiuntivi. I costi ti vengono addebitati 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 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 su cluster in più regioni offre una maggiore tolleranza agli errori. Se un servizio in un cluster non è disponibile, è possibile che la richiesta venga sottoposta a failover e possa essere gestita da altri cluster. Con MCS, è possibile gestire le comunicazioni tra i servizi nei vari cluster, per migliorare la disponibilità delle applicazioni containerizzate.
  • Servizi stateful e stateless: i servizi stateful e stateless hanno dipendenze e complessità operative diverse e presentano diversi compromessi operativi. In genere, l'assenza di gestione dello stato semplifica la scalabilità, l'upgrade e la migrazione di un carico di lavoro con disponibilità maggiore. MCS consente di separare i cluster per i carichi di lavoro stateful e stateless e renderli indipendenti, isolati e più facili da gestire.
  • Servizi condivisi: capita di creare cluster Kubernetes separati per ottenere una maggiore disponibilità, una migliore gestione dei servizi stateful e stateless e una più facile conformità ai requisiti di sovranità dei dati. Tuttavia, molti servizi, come il monitoraggio con Prometheus o l'utilizzo della gestione dei secret con Vault, vengono spesso condivisi tra tutti i cluster. Anziché ogni cluster richiede la propria replica del servizio locale, MCS semplifica la configurazione dei 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 richiede spesso il deployment dei servizi in più cluster Kubernetes. MCS fornisce un meccanismo per collegare le comunicazioni 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ò passare da un cluster o un'applicazione a un altro.

Passaggi successivi

  • Scopri di più su Ingress multi-cluster, che fornisce servizi per le direzioni del traffico da nord-sud e est-ovest.
  • Scopri di più su Cloud Service Mesh, che offre un controllo più granulare su routing e formato di traffico.