Esta arquitectura de referencia proporciona una solución altamente disponible y escalable que usa Cloud Service Mesh y puertas de enlace de Envoy para administrar el tráfico de red de las aplicaciones de Windows que se ejecutan en Google Kubernetes Engine (GKE). Se explica cómo administrar ese tráfico de red con un servicio que puede enrutar el tráfico a los Pods y a un proxy de código abierto compatible con xDS. Usar una arquitectura como esta puede ayudar a reducir los costos y mejorar la administración de la red.
Este documento está dirigido a arquitectos de la nube, administradores de redes y profesionales de TI responsables de diseñar y administrar aplicaciones de Windows que se ejecutan en GKE.
Arquitectura
En el siguiente diagrama, se muestra una arquitectura para administrar las herramientas de redes de las aplicaciones de Windows que se ejecutan en GKE con Cloud Service Mesh y las puertas de enlace de Envoy:
La arquitectura incluye los siguientes componentes:
- Un clúster de GKE regional con grupos de nodos de Windows y Linux
- Dos aplicaciones de Windows que se ejecutan en dos Pods de GKE separados.
- Cada aplicación se expone a través de un Service de Kubernetes de tipo
ClusterIP
y un grupo de extremos de red (NEG).
- Cada aplicación se expone a través de un Service de Kubernetes de tipo
- Cloud Service Mesh crea y administra las rutas de tráfico a los NEG para cada Pod de GKE. Cada ruta se asigna a un
scope
específico. Esescope
identifica de forma única una puerta de enlace de entrada de Cloud Service Mesh. - Son rutas HTTP que se asignan a los servicios de backend de Cloud Service Mesh.
- Pods de contenedor de Envoy que actúan como una puerta de enlace de Envoy al clúster de GKE
- Puertas de enlace de Envoy que se ejecutan en nodos de Linux Las puertas de enlace están configuradas para dirigir el tráfico a las aplicaciones de Windows a través de los servicios que corresponden a esas aplicaciones. Envoy está configurado para usar el parámetro
scope
y cargar los detalles de configuración de los servicios de Cloud Service Mesh pertinentes. - Un balanceador de cargas de aplicaciones interno que finaliza el tráfico SSL y dirige todo el tráfico entrante externo a las puertas de enlace de Envoy.
Productos usados
En esta arquitectura de referencia, se usan los siguientes productos Google Cloud y de terceros:
Google Cloud productos
- Cloud Load Balancing: Una cartera de balanceadores de cargas escalables, globales y regionales de alto rendimiento.
- Google Kubernetes Engine (GKE): Un servicio de Kubernetes que puedes usar para implementar y operar aplicaciones en contenedores a gran escala con la infraestructura de Google.
- Cloud Service Mesh: Es un conjunto de herramientas que te ayuda a supervisar y administrar una malla de servicios confiable de forma local o en Google Cloud.
Productos de terceros
- Envoy Gateway: Administra un proxy de Envoy como una puerta de enlace de aplicaciones independiente o basada en Kubernetes.
- API de Gateway: Un proyecto oficial de Kubernetes centrado en el enrutamiento de L4 y L7 en Kubernetes.
Caso de uso
El principal caso de uso de esta arquitectura de referencia es administrar el tráfico de red para las aplicaciones de Windows que se ejecutan en GKE. Esta arquitectura proporciona los siguientes beneficios:
Administración de redes simplificada: Cloud Service Mesh y las puertas de enlace de Envoy proporcionan una administración de redes simplificada a través de un plano de control centralizado que administra el tráfico de red hacia las aplicaciones. Estas aplicaciones pueden ser de Linux o Windows, y se ejecutan en GKE o Compute Engine. El uso de este esquema simplificado de administración de redes reduce la necesidad de realizar configuraciones manuales.
Mayor escalabilidad y disponibilidad: Para satisfacer tus demandas cambiantes, usa Cloud Service Mesh y las puertas de enlace de Envoy para escalar tus aplicaciones de Linux y Windows. También puedes usar las puertas de enlace de Envoy para proporcionar alta disponibilidad a tus aplicaciones balanceando la carga del tráfico en varios Pods.
Seguridad mejorada: Usa puertas de enlace de Envoy para agregar funciones de seguridad a tus aplicaciones de Linux y Windows, como la finalización de SSL, la autenticación y la limitación de frecuencia.
Reducción de costos: Tanto Cloud Service Mesh como las puertas de enlace de Envoy pueden ayudar a reducir los costos de administración del tráfico de red para las aplicaciones de Linux y Windows.
Consideraciones del diseño
En esta sección, se proporciona orientación para ayudarte a desarrollar una arquitectura que cumpla con tus requisitos específicos de seguridad, confiabilidad, costo y eficiencia.
Seguridad
- Redes protegidas: La arquitectura usa un balanceador de cargas de aplicaciones interno para encriptar el tráfico entrante a los contenedores de Windows. La encriptación en tránsito ayuda a evitar la filtración de datos.
- Contenedores de Windows: Los contenedores de Windows ayudan a proporcionar un entorno seguro y aislado para las aplicaciones alojadas en contenedores.
Confiabilidad
- Balanceo de cargas: La arquitectura usa varias capas de Cloud Load Balancing para distribuir el tráfico entre las puertas de enlace de Envoy y los contenedores de Windows.
- Tolerancia a errores: Esta arquitectura es tolerante a errores y no tiene un punto único de fallo. Este diseño ayuda a garantizar que siempre esté disponible, incluso si falla uno o más de los componentes.
- Ajuste de escala automático: La arquitectura usa el ajuste de escala automático para ajustar automáticamente la cantidad de puertas de enlace de Envoy y contenedores de Windows según la carga. El ajuste de escala automático ayuda a garantizar que las puertas de enlace y las aplicaciones puedan controlar los picos de tráfico sin experimentar problemas de rendimiento.
- Supervisión: La arquitectura usa Google Cloud Managed Service for Prometheus y Cloud Operations para supervisar el estado de las puertas de enlace de Envoy y los contenedores de Windows. La supervisión te ayuda a identificar problemas de forma anticipada y, potencialmente, a evitar que interrumpan tus aplicaciones.
Optimización de costos
- Elige los tipos de instancias adecuados para tus cargas de trabajo: Ten en cuenta los siguientes factores cuando elijas los tipos de instancias:
- La cantidad de CPU virtuales y memoria que requieren tus aplicaciones
- La carga de tráfico esperada para tus aplicaciones
- La necesidad de que los usuarios tengan aplicaciones con alta disponibilidad
Usa el ajuste de escala automático: El ajuste de escala automático puede ayudarte a ahorrar dinero, ya que escala automáticamente tus cargas de trabajo de Windows de forma vertical y horizontal.
El ajuste de escala vertical ajusta las solicitudes y los límites de los contenedores según el uso del cliente.
- Automatiza el ajuste de escala vertical con el ajuste de escala automático vertical de Pods.
El ajuste de escala horizontal agrega o quita Pods de Kubernetes para satisfacer la demanda.
- Automatiza el ajuste de escala horizontal con el ajuste de escala automático horizontal de Pods.
Usa Cloud Service Mesh y puertas de enlace de Envoy: Cloud Service Mesh y las puertas de enlace de Envoy pueden ayudarte a ahorrar dinero, ya que enrutan el tráfico de manera eficiente a tus aplicaciones de Windows. Usar un enrutamiento más eficiente puede ayudarte a reducir la cantidad de ancho de banda que debes comprar. También puede ayudar a mejorar el rendimiento de esas aplicaciones.
Usa redes de nube privada virtual (VPC) compartidas: Las redes de nube privada virtual compartidas te permiten compartir una sola VPC en varios proyectos. El uso compartido puede ayudarte a ahorrar dinero, ya que reduce la cantidad de VPCs que necesitas crear y administrar.
Eficiencia operativa
- Varios dominios con un solo balanceador de cargas interno: La arquitectura usa balanceadores de cargas de aplicaciones internos para descargar el tráfico SSL. Cada proxy HTTPS de destino puede admitir varios certificados SSL (hasta el máximo admitido) para administrar varias aplicaciones con diferentes dominios.
- Infraestructura como código (IaC): Para administrar la infraestructura, la arquitectura se puede implementar con IaC. La IaC ayuda a garantizar que tu infraestructura sea coherente y repetible.
Implementación
Para implementar esta arquitectura, consulta Implementa aplicaciones de Windows que se ejecutan en Kubernetes administrado.
¿Qué sigue?
- Obtén más información sobre los productos de Google Cloud que se usan en esta guía de diseño:
- Para obtener más información sobre las arquitecturas de referencia, los diagramas y las prácticas recomendadas, explora Cloud Architecture Center.
Colaboradores
Autor: Eitan Eibschutz | Consultor de soluciones técnicas de personal
Otros colaboradores:
- John Laham | Arquitecto de soluciones
- Kaslin Fields | Developer Advocate
- Maridi (Raju) Makaraju | Líder de Tecnología de Asistencia
- Valavan Rajakumar | Arquitecto empresarial clave
- Victor Moreno | Gerente de producto, Herramientas de redes de Cloud