Servizi multi-cluster


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

Panoramica di MCS

L'oggetto Service familiare di Kubernetes consente di scoprire un servizio e accedervi all'interno dei confini di un singolo cluster Kubernetes. Tuttavia, a volte potresti voler suddividere le applicazioni in più cluster per soddisfare requisiti di gestione dello stato, privacy, scalabilità, disponibilità e sovranità dei dati. Con MCS puoi creare applicazioni Kubernetes su più cluster.

MCS è un meccanismo di Service Discovery e di chiamata tra cluster per Google Kubernetes Engine (GKE) che sfrutta l'oggetto Service esistente. I servizi in cui è abilitata questa funzionalità sono rilevabili e accessibili nei cluster con un IP virtuale, il che corrisponde al comportamento di un servizio ClusterIP accessibile in un cluster. Proprio come i 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 tuoi cluster del parco risorse. Un parco risorse consente di raggruppare e normalizzare logicamente i cluster GKE, semplificando l'amministrazione dell'infrastruttura e abilitando 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 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 StatefulSet. L'utilizzo di Cloud DNS comporta costi aggiuntivi. Gli addebiti avvengono in base ai prezzi di Cloud DNS.

Per esportare un servizio con MCS, crea una risorsa ServiceExport personalizzata 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 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, la richiesta può avere un errore e può essere gestita da altri cluster. Con MCS è possibile gestire la comunicazione tra i servizi tra i cluster, per migliorare la disponibilità delle tue applicazioni containerizzate.
  • Servizi stateful e stateless: i servizi stateful e stateless hanno dipendenze e complessità operative diverse e presentano compromessi operativi diversi. In genere, l'assenza della gestione dello stato semplifica la scalabilità, l'upgrade e la migrazione di un carico di lavoro con disponibilità più elevata. MCS consente di separare i cluster per carichi di lavoro stateful e stateless e li rende indipendenti, isolati e più facili da gestire.
  • Servizi condivisi: di norma si creano cluster Kubernetes separati per ottenere maggiore disponibilità, una migliore gestione dei servizi stateful e stateless e una conformità più semplice con i 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é ogni cluster che richiede una propria replica di 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 richiede spesso il deployment di Servizi su più cluster Kubernetes. MCS fornisce un meccanismo per collegare i servizi, semplificando la migrazione delle applicazioni. Ciò è particolarmente utile perché puoi eseguire il deployment dello stesso servizio in due cluster diversi e il traffico può essere spostato da un cluster o da un'applicazione all'altra.

Passaggi successivi

  • Scopri di più su Multi Cluster Ingress, che fornisce servizi per le indicazioni di traffico da nord-sud e est-ovest.
  • Scopri di più su Anthos Service Mesh, che offre un controllo più granulare su routing e formato di traffico.