
Pruebe los patios traseros en sus propios grupos: curl https://getbackyards.sh | sh && backyards install -a --run-demo
curl https://getbackyards.sh | sh && backyards install -a --run-demo
. Si está interesado, consulte los detalles de la última versión .
En junio,
presentamos Backyards , una
"malla de servicio" automatizada sobre nuestro
operador Istio . Simplifica enormemente la gestión de la malla de servicios en una infraestructura multi-nube e híbrida. Backyards está integrado en
la plataforma de gestión de contenedores Pipeline en Banzai Cloud, pero también está disponible como un producto
independiente . Por supuesto, la integración con Pipeline ofrece muchos beneficios específicos (como la
administración de aplicaciones en varias nubes ), pero Backyards funciona en cualquier instalación de Kubernetes.
En el
anuncio de Backyards, discutimos algunas de las funciones principales: crear una malla de servicio con unos pocos clics, monitorear aplicaciones a través de una representación gráfica única y administrar funciones Istio desde una interfaz de usuario conveniente. Luego mencionamos que la plataforma es capaz de administrar redes de servicios de clúster múltiple de Istio en implementaciones híbridas y de múltiples nubes.
En este artículo, veremos más de cerca esta característica: la
malla automatizada de servicios de múltiples clústeres .
Ya sea uno o más clústeres, un entorno multi-nube o híbrido, Backyards utiliza el mismo conjunto de características y una interfaz conveniente. Es extremadamente fácil comenzar con un clúster y luego, con unos pocos clics, expanda la malla de servicio a otros clústeres (multi-nube o nube híbrida).
Motivación
Los sistemas híbridos y multinube entran rápidamente en la vida cotidiana de las empresas. El interés y la toma de decisiones han crecido mucho desde que Google presentó
Anthos en abril de este año.
También notamos un aumento en tal interés en la mayoría de las empresas con las que discutimos este tema. Alguien prefiere procesar datos en sus propios centros de datos, accediendo a los servicios en la nube solo en los momentos de mayor carga. Otros buscan constantemente las tarifas más bajas y las mejores ofertas de los proveedores de la nube, aumentando la carga de trabajo solo cuando el precio lo permite. Todos necesitan una forma conveniente de moverse entre diferentes nubes a pedido de un cliente en particular, debido a regulaciones regulatorias o requisitos comerciales, así como para construir
varias topologías diferentes sobre esta infraestructura multi-nube e híbrida.
A medida que crecía la demanda de soluciones híbridas y de clúster múltiple, comenzamos a pensar cómo satisfacer las necesidades de nuestros clientes.
Los usuarios de tuberías trabajan con una o más nubes. Depende de qué funciones específicas necesiten. Se pueden distinguir tres funciones clave:
Antecedentes
Desde el principio, la plataforma Pipeline admitió la conexión de diferentes proveedores de la nube en diferentes niveles (clústeres, implementaciones y servicios). Esta siempre ha sido una de nuestras prioridades.
Al mismo tiempo, estábamos trabajando activamente en Istio. El
operador se lanzó por primera vez para simplificar la implementación y la administración de Istio, y luego
exploró sus capacidades de múltiples clústeres. Como resultado,
creamos Backyards, un producto automatizado para infraestructura multi-nube e híbrida , integrado en Pipeline, con el operador de código abierto Istio.
Patios traseros en Pipeline
En Pipeline, puede instalar una malla de servicio híbrida o de clúster múltiple y administrarla en un entorno local o en cualquier combinación de los cinco proveedores de nube que admitimos.La función de agrupar clústeres (grupo de clústeres) le permite formar grupos de clústeres, siempre que seleccione un clúster como el principal. Luego puede asociarlos con varias funciones, como la Multi-cluster Deployment
o la Service Mesh
.
Multi-cluster Deployment
permite implementar la aplicación simultáneamente en múltiples clústeres. Aquí no nos centramos en esta característica, pero se utilizará para implementar fácilmente la aplicación en varios clústeres. Lea más sobre esto en este artículo .
Este artículo analizará más de cerca la función de Service Mesh
. Instala Istio en el clúster principal y se une automáticamente a todos los clústeres del grupo mediante el operador Istio . Después de eso, obtienes una vista intercluster de tus servicios, y una malla multicluster desde el punto de vista de la administración prácticamente no es diferente de una convencional de clúster único.
Las funciones
Crear una malla de servicio
Comencemos creando un clúster en AWS utilizando la distribución Kubernetes ligera y certificada por CNCF:
PKE . A continuación, cree un servicio de malla Istio en este clúster.
Al crear una malla de servicio, también se forma un grupo de clúster en segundo plano.
Después de unos segundos, la "grilla" está instalada y lista para usar.

Implementación de aplicaciones
Ahora necesitamos una aplicación de demostración con microservicios para mostrar las capacidades de nuestro producto. Para fines de demostración, creamos un proyecto
AllSpark muy simple, y también hicimos un diagrama de Helm con una configuración preliminar de la implementación de AllSpark, que simula un sistema de reserva de entradas de cine. Todo se hace en nuestro
servicio de servicio en la
nube (SaaS) para diagramas de Helm .
Usando la función de
Multi-cluster Deployment
antes mencionada, implementaremos esta aplicación yendo a la pestaña
Multi Cluster Deployments
en la interfaz de usuario. Agregue el repositorio
https://charts.banzaicloud.io/gh/spotguidetest
al Pipeline, luego el diagrama
meshdemo
y haga clic en
DEPLOY
(para instalar todos los componentes, asegúrese de que todos los valores estén establecidos en
true
).

Era posible elegir una implementación simple en un clúster, pero indicamos una opción multiclúster, que será útil más adelante cuando trabaje con varios clústeres.
Resumen de malla de servicio
Si vuelve a la lista de malla de servicios y hace clic en el botón
observe
, aparecerá un panel de control. Dado que no hay tráfico en nuestra aplicación de prueba y no hay métricas en el sistema, aquí todavía no veremos ninguna visualización. La interfaz tiene una función de
test flight
que dirige el tráfico a los puntos finales seleccionados. Si hace clic en el botón
HTTP
en la esquina superior derecha, puede completar un formulario que contiene información sobre el punto final y enviar algo de tráfico de prueba a sus servicios. En nuestro ejemplo, el tráfico debe ir al servicio de portada en el puerto 8080.
Después de unos segundos, aparecerá un cronograma de sus servicios. Los nodos en él representan servicios o cargas de trabajo, y las flechas representan conexiones de red entre diferentes servicios. El gráfico se basa en las métricas de Istio que provienen de Prometheus.

Crear grupos adicionales
Extender la malla de servicios a clústeres adicionales, incluso desde varios proveedores de nube diferentes, solo requiere unos pocos clics. Creemos tres grupos adicionales en tres proveedores diferentes, es más interesante. Podemos implementar fácilmente otro clúster PKE en Azure, así como clústeres OKE y GKE.

Servicio de extensión de malla
Volvamos a la lista de malla de servicios, presione el botón
RESIZE MESH
y luego
ADD NEW CLUSTER
. Seleccione los grupos creados previamente y presione el botón
ADD
. Eso es todo

La expansión puede demorar varios minutos: cada grupo debe conectarse y alcanzar el estado
HEALTHY
.
Implementar una aplicación en múltiples clústeres
Ahora tenemos una malla de servicio en varios clústeres, y la función de
Multi-cluster Deployment
en Pipeline se activó anteriormente, por lo que es fácil implementar nuestros microservicios de demostración en estos clústeres. En este diagrama particular de Helm, puede activar y desactivar componentes fácilmente. Dado que la función de
Multi-cluster Deployment
admite la redefinición de parámetros para cada clúster, solo necesita editar la implementación y establecer qué componentes queremos ejecutar en cada clúster.
Para la implementación de múltiples clústeres, cambiamos la configuración de esta manera:
PKE AWS
services: true
istioresources: true
frontpage: true
catalog: true
bookings: true
PKE Azure
services: true
moviesv1: true
moviesv2: true
moviesv3: true
OKE
services: true
payments: true
notifications: true
GKE
services: true
analytics: true

Descripción general de la malla de servicio en varios clústeres
Nuevamente, seleccione el
test flight
en la interfaz para dirigir el tráfico adicional al punto final seleccionado previamente. Después de unos segundos, aparecerá algo similar al gráfico a continuación. Ahora nuestra aplicación se distribuye en
cuatro grupos en
cuatro proveedores diferentes.
Increíble , ¿verdad?

Configuración NRA
Antes de terminar este artículo, eche un vistazo a la última configuración:
Horizontal Pod Autoscaler . En la página de
Single-cluster Deployment
en Pipeline, puede configurar fácilmente HPA para cualquier implementación (en nuestro caso,
analytics-v1
).

Cuando instaló HPA y envió suficiente tráfico a sus servicios para comenzar a escalar automáticamente, verá cómo aparecen más y más pods en la interfaz que corresponde al proyecto
analytics-v1
. También verá un aumento en el flujo de consultas a lo largo de los bordes del gráfico, que se refleja en los números y en el grosor de los bordes.

Resumen
Gracias a Backyards at Pipeline, es fácil configurar una malla de servicio híbrida o multi-cluster. Luego puede implementar, rastrear, administrar y solucionar problemas de aplicaciones en múltiples clústeres utilizando una interfaz de usuario conveniente.
¡Pruébalo gratis !