En esta página, se proporciona una descripción general de cómo funciona Service de varios clústeres (MCS). Si deseas obtener información sobre cómo usar MCS, consulta Configura Service de varios clústeres.
Descripción general de MCS
El objeto Service conocido de Kubernetes te permite descubrir y acceder a un servicio dentro de las combinaciones de un solo clúster de Kubernetes. Sin embargo, a veces es posible que quieras dividir las aplicaciones en varios clústeres para abordar los requisitos de administración de estado, privacidad, escalabilidad, disponibilidad y soberanía de los datos. Con MCS, puedes compilar aplicaciones de Kubernetes que abarquen varios clústeres.
MCS es un mecanismo de invocación y detección de Service de varios clústeres para Google Kubernetes Engine (GKE) que aprovecha el objeto de Service existente. Los Service habilitados con esta característica pueden detectarse y acceder a través de clústeres con una IP virtual, lo que coincide con el comportamiento de un Service de ClusterIP al que se puede acceder en un clúster. Al igual que tus Service existentes, el MCS es compatible con las API abiertas e impulsadas por la comunidad, lo que garantiza que las cargas de trabajo sean portátiles.
MCS es una función de GKE. MCS configura las zonas y los registros de Cloud DNS para cada servicio exportado en tus clústeres de flota. Una flota te permite agrupar y normalizar de forma lógica tus clústeres de GKE, lo que facilita la administración de la infraestructura y habilita el uso de funciones de varios clústeres, como MCS. Puedes obtener más información sobre los beneficios de las flotas y cómo crearlas en la documentación de administración de flotas.
Los servicios exportados sin importar el tipo siempre tienen un registro de Cloud DNS, y los servicios de tipo sin interfaz gráfica exportados tienen registros para cada pod de backend con un nombre de host, incluidos los pods en StatefulSets. El uso de Cloud DNS genera cargos adicionales. Se te facturará según 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 Service. MCS importa automáticamente el Service a cada clúster de la flota. Cuando MCS importa un Service, crea lo siguiente:
- Un recurso personalizado ServiceImport con el mismo espacio de nombres y nombre que el Service.
- Un objeto de Endpoints que usa el mismo espacio de nombres que el Service y un nombre aleatorio.
Beneficios de usar MCS
El uso de MCS te brinda los siguientes beneficios:
- Alta disponibilidad: ejecutar el mismo Service en todos los clústeres en varias regiones te proporciona una tolerancia a errores mejorada. Si un Service en un clúster no está disponible, la solicitud puede conmutar por error y entregarse desde otros clústeres. Con MCS, es posible administrar la comunicación entre Service en clústeres para mejorar la disponibilidad de tus aplicaciones en contenedores.
- Servicios con y sin estado: Los servicios con y sin estado tienen diferentes dependencias operativas y complejidades, y presentan diferentes compensaciones operativas. Por lo general, la ausencia de la administración de estados facilita el escalamiento, la actualización y la migración de una carga de trabajo con una mayor disponibilidad. MCS te permite separar los clústeres para cargas de trabajo con estado y sin estado, y hacerlos independientes, aislados y más fáciles de administrar.
- Service compartidos: Es común crear clústeres de Kubernetes separados para obtener una mayor disponibilidad, una mejor administración de los Service con estado y sin estado, y un cumplimiento más sencillo de los requisitos de soberanía de los datos. Sin embargo, muchos Service, como la supervisión con Prometheus o el uso de la administración de secretos con Vault, a menudo, se comparten entre todos los clústeres. En lugar de que cada clúster requiera su propia réplica de Service local, MCS facilita la configuración de Service compartidos comunes en un clúster separado que usan todos los clústeres funcionales.
- Migración: Modernizar una aplicación existente en una arquitectura basada en microservicio en contenedores a menudo requiere que implementes Service en varios clústeres de Kubernetes. MCS te proporciona un mecanismo para ayudar a conectar la comunicación entre esos Service, lo que facilita la migración de tus aplicaciones. Esto es muy útil, ya que puedes implementar el mismo Service en dos clústeres diferentes y el tráfico puede cambiar de un clúster o una aplicación a otro.
¿Qué sigue?
- Obtén más información sobre Ingress de varios clústeres, que proporciona Services para las direcciones de tráfico norte-sur y este-oeste.
- Obtén más información sobre la Cloud Service Mesh, que te brinda un control más preciso sobre el enrutamiento y la forma de tráfico.