Kubernetes Multi-Clusters: How & Why To Use Them

Multi-Clústeres Kubernetes: Cómo y por qué utilizarlos

  • ITOps y DevOps
6 min de lectura Actualizado Jun 25, 2021

Puntos clave: Los multiclústeres de Kubernetes mejoran la escalabilidad y disponibilidad de las aplicaciones al distribuir las cargas de trabajo entre múltiples clústeres, mejorando la gestión de recursos y el cumplimiento normativo mientras reducen la latencia. Permite mejores experiencias de usuario y cumplimiento normativo mediante el aislamiento de aplicaciones.

  • Los multiclústeres mejoran la experiencia del usuario al reducir la latencia.
  • Facilitan el aislamiento de aplicaciones y el cumplimiento normativo en distintas regiones.

Los despliegues en contenedores ofrecen más mejoras en escalabilidad y disponibilidad que los despliegues tradicionales. Incluso con estas mejoras, las aplicaciones complejas pueden abrumar rápidamente los entornos contenedores sin una gestión adecuada. Kubernetes ayuda a las organizaciones a:

  • Orquestar eficazmente entornos contenedores
  • Gestiona eficientemente los recursos subyacentes y las demandas de los usuarios

Sin embargo, son situaciones en las que un único clúster Kubernetes no está capaz de gestionar la carga de la aplicación ni distribuirla adecuadamente a los usuarios finales. En tales casos, las soluciones Kubernetes multi-clúster son ideales para distribuir el trabajo entre múltiples clústeres.

En este artículo, echaremos un vistazo a las implementaciones multi-clúster de Kubernetes.

¿Qué es un multi-clúster Kubernetes?

Kubernetes multi-clúster es un entorno con múltiples clústeres Kubernetes. Se pueden configurar de varias maneras:

  • Dentro de un único huésped físico
  • Con diferentes hosts múltiples en el mismo centro de datos
  • En diferentes regiones dentro de un mismo proveedor de nube
  • Utilizando múltiples proveedores de nube y distribuidos en múltiples regiones para ofrecer un entorno multi-clúster verdaderamente global

Un entorno multi-clúster no está simplemente ejecutando múltiples clústeres Kubernetes.

En su lugar, debería consistir en estrategias adecuadas de despliegue de aplicaciones para distribuir y mantener la aplicación entre múltiples clústeres con herramientas y prácticas apropiadas integradas en el proceso DevOps.

(Ve cómo los contenedores y los K8 funcionan juntos.)

¿Por qué utilizar el multi-clúster Kubernetes?

Configurar y gestionar despliegues de Kubernetes multi-clúster no está una tarea fácil. Entonces, ¿por qué una organización destinaría recursos valiosos a esta tarea?

La razón: la experiencia del usuario.

Cuando se trata de mantener aplicaciones a gran escala con miles de usuarios, los multi-clústeres son el componente central para ofrecer una excelente experiencia de usuario. Veamos Ve todos los beneficios que ofrece un entorno multi-clúster.

Ventajas de los multiclústeres K8s

Mayor escalabilidad y disponibilidad

Con los multi-clústeres, los usuarios pueden distribuir la aplicación entre diferentes regiones, aumentando exponencialmente su disponibilidad. Con ello, los usuarios finales tendrán una experiencia mucho mejor interactuando con las aplicaciones con:

  • Menor latencia
  • Rendimiento más rápido

Lo mismo puede aplicarse para escalar en lugar de que un solo clúster intente gestionar todos los requisitos de escalado. Los despliegues multi-clúster son distribuidos en múltiples clústeres y escalan según la carga de un clúster específico. También reduce drásticamente el consumo de recursos de un solo clúster y conduce a una menor carga sobre servicios backend como bases de datos.

Aislamiento de aplicaciones

Los despliegues multi-clúster permiten a las organizaciones Lograr un aislamiento real de aplicaciones con clústeres Kubernetes separados. Pueden ser:

  • Diferentes clústeres para la preparación y producción (separación simple)
  • Diferentes clústeres que facilitan aplicaciones distintas

Con diferentes clústeres, cualquier fallo o cambio de configuración afecta solo a ese clúster específico. Este aislamiento ayuda a los usuarios a:

  • Problemas fáciles de diagnosticar
  • Experimenta con nuevas funciones
  • Realizar optimizaciones sin causar interrupciones en otros clústeres

Cumplimiento normativo

Con aplicaciones que sirven a usuarios de todo el mundo, una consideración importante están el cumplimiento de las normativas y políticas de diferentes regiones y países: políticas como el RGPD y la Ley de Privacidad del Consumidor de California (CCPA). Esto está especialmente presente cuando se están implicados datos de usuarios, ya que la mayoría de las regiones requieren que los datos residan dentro de límites geográficos.

Es importante destacar que las aplicaciones alojadas en un único clúster no podrían cumplir con todos estos requisitos de cumplimiento. Los despliegues multi-clúster, en cambio, Permite a las organizaciones cumplir estos requisitos ubicando el clúster Kubernetes en regiones geográficas específicas.

Las aplicaciones que atienden regiones geográficas específicas con clústeres Kubernetes aislados pueden:

  • Limitar el alcance de los requisitos regulatorios
  • Permite a las organizaciones dirigirse a clústeres específicos para cumplir diferentes requisitos y obtén el cumplimiento normativo con relativa facilidad

Configurar y gestionar despliegues multi-clúster puede ser una tarea compleja y que consume mucho tiempo. Afortunadamente, un entorno multi-clúster correctamente configurado puede Reduce la complejidad general de la gestión.

Con una gestión adecuada de clústeres, te puede tener mejor visibilidad con procesos estandarizados y prácticas DevOps adecuadas mientras gestionas toda la infraestructura y aplicaciones desde una ubicación centralizada. Esto puede ser un factor importante en la gestión del gasto operativo: los usuarios pueden asignar recursos de forma eficaz.

Además, en un entorno multiclúster, los problemas de producción son aislados a ese clúster específico. Eso significa que los desarrolladores solo necesitan investigar un alcance limitado para identificar y solucionar problemas sin afectar a otros clústeres. Lo crucial es que un fallo total del clúster no causaría ningún tiempo de inactividad en un entorno multiclúster. Los otros clústeres intervienen para garantizar la disponibilidad.

Los usuarios no son limitados a un despliegue multi-nube verdadero. Cuando son disponibles nuevas funciones o ahorros de costes con los nuevos proveedores de nube, los usuarios pueden transferir aplicaciones sin problemas, con modificaciones mínimas, entre diferentes proveedores o clústeres Kubernetes.

Aplicaciones distribuidas

Con el aumento de los requisitos de computación en el borde y la popularidad de los servicios de Internet de las Cosas (IoT), la computación distribuida se está convirtiendo en la solución preferida.

Un entorno Kubernetes multi-clúster es la plataforma ideal para eso.

Los desarrolladores pueden simplemente Crea aplicaciones contenedorizadas que pueden desplegarse en Kubernetes mientras proporcionan un potente motor de orquestación distribuido en múltiples regiones. Esto elimina la necesidad de adaptar aplicaciones a diferentes entornos e infraestructuras, ya que estos contenedores pueden actuar como nodos borde para facilitar una red IoT global.

Arquitectura multi-clúster Kubernetes

Cuando se trata de arquitectura multi-clúster, son dos consideraciones:

  • La configuración multi-clúster de Kubernetes
  • La arquitectura de la aplicación

Arquitectura multi-clúster Kubernetes

Principalmente son dos métodos para manejar un entorno Kubernetes multi-clúster:

  • El método federado centrado en Kubernetes
  • El método centrado en la red

Diferentes proveedores ofrecen variaciones y mejoras sobre estos métodos.

Un método centrado en Kubernetes utiliza herramientas como kubefed para gestionar múltiples clústeres Kubernetes desde una ubicación centralizada (clústeres federados). Otras herramientas como Shipper y Admiralty pueden facilitar:

  • Estrategias de despliegue
  • Orquestación multi-clúster
  • Distribución de la carga de trabajo

El método centrado en la red pretende proporcionar una red robusta que facilite la comunicación entre diferentes clústeres. Los clústeres actúan como entidades separadas, pero las aplicaciones pueden comunicarse entre sí mediante una red. El enfoque de red se está basado en principios de red mallada y ha adaptado los conceptos de malla de servicio a la infraestructura. Un ejemplo de este enfoque están:

La mayoría de las organizaciones prefieren el método centrado en la red debido a la falta de madurez de las configuraciones multi-clúster centradas en Kubernetes. Incluso con la mayor complejidad de gestionar una red mallada, este enfoque maneja eficazmente entornos multi-clúster con Pipelines automatizados y configuraciones estandarizadas con GitOps, reduciendo la complejidad de gestión.

Arquitectura de aplicaciones multi-clúster

Son dos arquitecturas de aplicaciones a considerar al desarrollar aplicaciones multiclúster: aplicaciones replicadas y aplicaciones basadas en servicios.

Arquitectura de aplicación replicada

Este enfoque replica la aplicación completa a través de múltiples clústeres Kubernetes y están la forma más sencilla de desplegar un entorno multiclúster. Con la aplicación completa distribuida en múltiples clústeres en diferentes regiones, los usuarios finales pueden ser dirigidos al clúster más cercano, ayudando a te a ambos:

  • Gestiona la carga de forma eficaz
  • Ofrecer la mejor experiencia de usuario

Acoplar esta arquitectura de aplicación replicada con una infraestructura de red adecuada y balanceadores de carga puede gestionar fallos de clúster con facilidad. Cuando un clúster enfrenta un problema, los usuarios pueden ser redirigidos a otro clúster sin afectar a la funcionalidad del usuario final o de la aplicación.

Arquitectura de aplicaciones basadas en servicios

Otra arquitectura de desarrollo está dividiendo la aplicación en múltiples componentes o servicios y distribuyéndolos entre clústeres. Proporciona el mejor aislamiento y es la mejor opción para obtener el cumplimiento normativo. Sin embargo, todo esto conlleva una mayor complejidad de la aplicación.

Con diferentes componentes ejecutándose en distintos clústeres, la capa de comunicación entre cada componente debe diseñarse para manejar el tráfico de usuarios y aplicaciones. Al configurar una arquitectura tolerante a fallos, las organizaciones necesitarán:

  1. Trata un conjunto de clústeres con diferentes componentes de la aplicación como una sola aplicación
  2. Replicáralo en otra región

Esto incrementa el número total de clústeres y los costes operativos.

Sin embargo, incluso con la mayor complejidad, este enfoque proporciona la mejor seguridad y rendimiento para la aplicación. Con su enfoque basado en componentes, el alcance regulatorio puede limitarse a un solo componente en una región definida sin necesidad de modificar toda la aplicación.

Este enfoque también permite la resolución de problemas y optimizaciones de objetivos para componentes específicos.

Plataformas para multi-clústeres de Kubernetes

Son muchas herramientas que soportan la configuración o gestión de entornos multi-clúster de Kubernetes. A continuación están una lista de estas plataformas.

  • Rancher está una plataforma de gestión de contenedores de nivel empresarial con soporte integrado para la gestión multi-clúster de Kubernetes en diversas plataformas, desde despliegue local hasta multi-nube.
  • Fleet están un proyecto GitOps a gran escala diseñado para facilitar y gestionar un entorno multi-clúster. Comenzó como una extensión de Rancher, pero desde entonces se ha desarrollado hasta convertirse en un proyecto propio.
  • Google Anthos está diseñado para extender el motor de Google Kubernetes a entornos híbridos y multiclúster. Esto permite a los usuarios ofrecer una experiencia Kubernetes coherente mientras cuentan con un entorno centralizado de gestión multiclúster.
  • Microsoft Azure Arch está diseñado para extender la gestión y los servicios de Azure en entornos híbridos y multi-nube. No está limitado a Kubernetes, sino que puede usarse para extiende clústeres de Kubernetes y Azure Arch, proporcionando una ubicación centralizada para gestionar, asegurar y gobernar el despliegue de Kubernetes multi-clúster.
  • VMWare Tanzu están la plataforma que ofrece VMWare para gestionar y proteger la infraestructura de Kubernetes en entornos multi-nube.

Los multi-clústeres ofrecen múltiples beneficios

Kubernetes multi-clústeres están un campo extenso compuesto por múltiples implementaciones y métodos de integración que dictan despliegues multi-clúster.

Con todas las ventajas que ofrece para aplicaciones a gran escala, están fundamental seleccionar te la arquitectura adecuada para tu entorno multi-clúster y pila de herramientas para gestiona el multi-clúster Kubernetes de forma centralizada.

Estas publicaciones son mías y no representan necesariamente la posición, estrategias u opinión de BMC.

Más de ITOps y DevOps

¿Te interesa saber más de BMC?

El Brief están nuestro correo mensual sobre el mainframe y la orquestación empresarial: investigación, historias de clientes, noticias de productos, eventos.

Al registrarse para esta oferta te son confirmar que te leído y aceptado la Política de Privacidad de BMC.

Tú te has suscrito a The Brief

El Brief abarca la orquestación de mainframe y empresa—BMC AMI y Control-M—y la investigación de analistas, despliegues de clientes y eventos en ambas áreas.