Administra y escala las redes para las aplicaciones de Windows que se ejecutan en Kubernetes administrado

Last reviewed 2024-08-14 UTC

Esta arquitectura de referencia proporciona una solución escalable y con alta disponibilidad 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). En él, se explica cómo administrar ese tráfico de red con un servicio que puede enrutar el tráfico a Pods y a un proxy de código abierto compatible con xDS. El uso de 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 nube, administradores de red y profesionales de TI que son 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 mediante Cloud Service Mesh y las puertas de enlace de Envoy:

Los datos fluyen a través de un balanceador de cargas de aplicaciones interno y una puerta 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
  • Cloud Service Mesh crea y administra las rutas de tráfico a los NEG de cada Pod de GKE. Cada ruta se asigna a un scope específico. Ese scope identifica de forma única una puerta de enlace de entrada de Cloud Service Mesh.
  • Las rutas HTTP que se asignan a los servicios de backend de Cloud Service Mesh
  • Pods de contenedores 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 para cargar los detalles de configuración de los servicios relevantes de Cloud Service Mesh.
  • 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 de Google Cloud y de terceros:

Google Cloud products

  • 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: Un paquete de herramientas que te ayuda a supervisar y administrar una malla de servicios confiable de forma local o en Google Cloud.

Productos de terceros

  • Puerta de enlace de Envoy: Administra un proxy de Envoy como una puerta de enlace de aplicaciones independiente o basada en Kubernetes.
  • API de Gateway: Es un proyecto oficial de Kubernetes enfocado en el enrutamiento de L4 y L7 en Kubernetes.

Caso de uso

El caso de uso principal 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 red simplificada: Las puertas de enlace de Cloud Service Mesh y Envoy proporcionan una administración de red simplificada a través de un plano de control centralizado que administra el tráfico de red a las aplicaciones. Estas aplicaciones pueden ser de Linux o Windows que se ejecutan en GKE o Compute Engine. El uso de este esquema de administración de red simplificado reduce la necesidad de configuración manual.

Mayor escalabilidad y disponibilidad: Para satisfacer tus demandas cambiantes, usa las puertas de enlace de Cloud Service Mesh y 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 mediante el balanceo de cargas del tráfico en varios Pods.

Mayor seguridad: Usa las puertas de enlace de Envoy para agregar funciones de seguridad a tus aplicaciones de Linux y Windows, como la terminación de SSL, la autenticación y el límite de frecuencia.

Reducción de costos: Tanto las puertas de enlace de Cloud Service Mesh como las de Envoy pueden ayudar a reducir los costos de administración del tráfico de red para 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 seguras: 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 escalar 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 para 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 los problemas de forma anticipada y, posiblemente, 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.

  • Usa las puertas de enlace de Cloud Service Mesh y Envoy: Las puertas de enlace de Cloud Service Mesh y Envoy pueden ayudarte a ahorrar dinero enrrutando el tráfico de forma 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 VPC 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?

Colaboradores

Autor: Eitan Eibschutz | Consultor de soluciones técnicas del personal

Otros colaboradores: