En esta página se ofrece una descripción general de cómo funcionan los servicios multiclúster (MCS) de GKE. Para saber cómo usar MCS, consulta Configurar servicios de varios clústeres.
Información general sobre MCS
El objeto Service de Kubernetes, que ya conoces, te permite descubrir y acceder a un servicio dentro de los límites de un solo clúster de Kubernetes. Sin embargo, en ocasiones puede que quieras dividir las aplicaciones en varios clústeres para cumplir los requisitos de gestión de estados, privacidad, escalabilidad, disponibilidad y soberanía de los datos. Con MCS, puedes crear aplicaciones de Kubernetes que abarquen varios clústeres.
MCS es un mecanismo de descubrimiento e invocación de servicios entre clústeres para Google Kubernetes Engine (GKE) que aprovecha el objeto Service. Los servicios habilitados con esta función se pueden descubrir y acceder a ellos en todos los clústeres con una IP virtual, lo que coincide con el comportamiento de un servicio ClusterIP accesible en un clúster. Al igual que tus servicios actuales, MCS es compatible con APIs abiertas y basadas en la comunidad, lo que garantiza que tus cargas de trabajo sigan siendo portátiles.
MCS es una función de GKE. MCS configura zonas y registros de Cloud DNS para cada servicio exportado en tus clústeres de flota. Una flota te permite agrupar y normalizar lógicamente tus clústeres de GKE, lo que facilita la administración de la infraestructura y permite usar funciones multiclúster, como MCS. Puede consultar más información sobre las ventajas de las flotas y cómo crearlas en la documentación sobre gestión de flotas.
Los servicios exportados, independientemente de su tipo, siempre tienen un registro de Cloud DNS, y los servicios exportados de tipo sin encabezado tienen registros para cada pod de backend con un nombre de host, incluidos los pods de StatefulSets. El uso de Cloud DNS conlleva cargos adicionales. Se te factura conforme a los precios de Cloud DNS.
Para exportar un servicio con MCS, crea un recurso personalizado ServiceExport con el mismo espacio de nombres y nombre que el servicio. MCS importa automáticamente el servicio a cada clúster de la flota. Cuando MCS importa un servicio, crea lo siguiente:
- Un recurso personalizado ServiceImport que usa el mismo espacio de nombres y nombre que el servicio.
- Un objeto Endpoints que usa el mismo espacio de nombres que el servicio y un nombre aleatorio.
Ventajas de usar MCS
Usar MCS te ofrece las siguientes ventajas:
- Alta disponibilidad: si ejecutas el mismo servicio en clústeres de varias regiones, se mejora la tolerancia a fallos. Si un servicio de un clúster no está disponible, la solicitud puede conmutar por error y servirse desde otros clústeres. Con MCS, es posible gestionar la comunicación entre servicios de diferentes clústeres para mejorar la disponibilidad de tus aplicaciones en contenedores.
- Servicios con estado y sin estado: los servicios con estado y sin estado tienen diferentes dependencias y complejidades operativas, y presentan diferentes ventajas y desventajas operativas. Normalmente, la ausencia de gestión de estados facilita la escalada, la actualización y la migración de una carga de trabajo con mayor disponibilidad. MCS te permite separar los clústeres de cargas de trabajo con y sin reconocimiento del estado, así como hacer que sean independientes, aislados y más fáciles de gestionar.
- Servicios compartidos: es habitual crear clústeres de Kubernetes independientes para obtener una mayor disponibilidad, gestionar mejor los servicios con y sin estado, y cumplir más fácilmente los requisitos de soberanía de los datos. Sin embargo, muchos servicios, como la monitorización con Prometheus o el uso de la gestión de secretos con Vault, se suelen compartir entre todos los clústeres. En lugar de que cada clúster requiera su propia réplica de servicio local, MCS facilita la configuración de servicios compartidos comunes en un clúster independiente que utilizan todos los clústeres funcionales.
- Migración: para modernizar una aplicación y convertirla en una arquitectura basada en microservicios en contenedores, a menudo es necesario desplegar servicios en varios clústeres de Kubernetes. MCS te proporciona un mecanismo para facilitar la comunicación entre esos servicios, lo que simplifica la migración de tus aplicaciones. Esto es especialmente útil, ya que puedes desplegar el mismo servicio en dos clústeres diferentes y el tráfico puede pasar de un clúster o aplicación a otro.
Siguientes pasos
- Consulta más información sobre Multi Cluster Ingress, que proporciona servicios para las direcciones de tráfico norte-sur y este-oeste.
- Consulta más información sobre Cloud Service Mesh, que te ofrece un control más preciso sobre el enrutamiento y la limitación del tráfico.