Las puertas de enlace de Alibaba Cloud Service Mesh (ASM) son proxy de Envoy independientes que se ejecutan en el perímetro de la malla, separados de los proxy sidecar que acompañan a sus cargas de trabajo. Funcionan como puntos de entrada y salida dedicados donde usted aplica reglas de enrutamiento, directivas de seguridad y configuración de observability. Todo esto se gestiona mediante un único plano de control.
A diferencia de un controlador Ingress estándar de Kubernetes, las puertas de enlace de ASM exponen todas las funciones de gestión de tráfico de la malla de servicios: balanceo de carga en las capas 4 a 7, mTLS, autorización detallada y enrutamiento con reconocimiento de protocolo. Usted define el comportamiento de la puerta de enlace mediante recursos de puerta de enlace de Istio o la API Gateway de Kubernetes, y luego vincula servicios virtuales para el enrutamiento de capa 7.
ASM ofrece tres tipos de puertas de enlace:
|
Tipo de puerta de enlace |
Función |
Cuándo usarla |
|
Puerta de enlace de entrada |
Enruta el tráfico entrante hacia los servicios dentro de la malla. Opera en la capa 7 y distribuye solicitudes HTTP a distintos servicios de Kubernetes según rutas, encabezados de host u otros atributos de la solicitud. |
Cuando necesite exponer servicios a internet o a una red interna mediante un único punto de entrada con balanceo de carga de capa 7, terminación TLS y control de acceso. |
|
Puerta de enlace de salida |
Enruta el tráfico saliente desde los servicios de la malla hacia endpoints externos a través de un punto de salida centralizado. |
Para aplicar directivas de seguridad al tráfico saliente y gestionar de forma centralizada el enrutamiento hacia servicios externos. |
|
Puerta de enlace de Istio |
Recurso de configuración que define cómo un load balancer en el perímetro de la malla maneja las conexiones HTTP y TCP entrantes o salientes. Vincúlele un servicio virtual para habilitar el enrutamiento de capa 7. |
Diseñado para escenarios donde se definen puertos, protocolos y configuraciones TLS de un load balancer, y después se adjuntan reglas de enrutamiento mediante servicios virtuales. |
Puerta de enlace de entrada
Una puerta de enlace de entrada proporciona un punto de entrada unificado para el tráfico entrante en la capa 7. Enruta las solicitudes HTTP del mismo puerto TCP a distintos servicios de Kubernetes según las rutas URL, los encabezados de host y otros atributos de la solicitud.
Despliegue y gestión de puertas de enlace de entrada
|
Función |
Descripción |
Referencia |
|
Crear una puerta de enlace de entrada |
Despliegue una puerta de enlace de entrada en un clúster de Kubernetes como punto de entrada único para el acceso desde internet o la red interna. Gestione la puerta de enlace desde la consola de ASM. |
|
|
Puertas de enlace serverless |
Despliegue puertas de enlace en modo serverless, gestionadas por completo mediante ASM. Estas puertas de enlace manejan picos de tráfico con escalado automático, sin depender de clústeres de Container Service for Kubernetes (ACK). En comparación con las puertas de enlace estándar de ASM que se ejecutan en clústeres de ACK, ofrecen mayor estabilidad, mejor elasticidad y menor costo. |
|
|
Compatibilidad con Network Load Balancer (NLB) |
Asocie una instancia de NLB a una puerta de enlace de entrada para obtener balanceo de carga de capa 4 con escalado automático. De forma predeterminada, establecer |
Protocolos compatibles
|
Función |
Descripción |
Referencia |
|
Enrutamiento de tráfico (GUI) |
Cree reglas de destino y servicios virtuales mediante una interfaz gráfica, sin necesidad de escribir YAML. |
|
|
Migración de tráfico TCP |
Migre el tráfico TCP sin interrupciones para mantener la continuidad del negocio al optimizar la topología de red, escalar horizontalmente los servidores de aplicaciones o limitar el tráfico. |
|
|
gRPC |
Acceda a los servicios gRPC de su malla a través de una puerta de enlace de entrada con control de acceso y gobernanza de servicios. |
|
|
Transcodificación gRPC-JSON |
Utilice ASMGrpcJsonTranscoder para convertir solicitudes HTTP con cuerpos JSON en solicitudes gRPC. Esto permite que los clientes HTTP/JSON accedan a servicios gRPC. |
|
|
WebSocket |
Acceda a servicios WebSocket mediante una puerta de enlace de entrada. WebSocket proporciona comunicación full-duplex sobre una única conexión TCP en la capa de aplicación. |
Gestión de tráfico
|
Función |
Descripción |
Referencia |
|
Limitación local |
Limite el tráfico en el nivel de puerta de enlace o de servicio para proteger el sistema contra sobrecargas durante los picos de tráfico. |
|
|
Limitación global |
Aplique límites de velocidad a rutas específicas en una puerta de enlace de entrada para manejar ráfagas de tráfico, evitar la sobrecarga de servicios y defenderse de ataques. |
|
|
Cortacircuitos |
Configure cortacircuitos a nivel de ruta mediante servicios virtuales y reglas de destino para lograr una gobernanza de tráfico no intrusiva. |
|
|
API Gateway |
Defina reglas de enrutamiento con la API Gateway de Kubernetes, un proyecto de código abierto de la comunidad SIG-NETWORK orientado a redes de servicios expresivas, extensibles y basadas en roles. |
|
|
Modo de controlador Ingress |
Utilice una puerta de enlace de ASM como controlador Ingress de Kubernetes para exponer servicios en un clúster. |
|
|
Duplicación de tráfico |
Duplique el tráfico de producción hacia un clúster de pruebas o una versión de servicio para validar cambios sin afectar el entorno de producción. |
|
|
Afinidad de sesión |
Enrute todas las solicitudes de un mismo usuario o sesión al mismo servidor de backend. Resulta útil para mantener el estado en carritos de compras, sesiones de inicio de sesión y configuraciones personalizadas. |
Gestión de TLS y certificados
Todos los datos entre una puerta de enlace de entrada y un proxy sidecar viajan por un túnel mTLS. Si inyectó proxy sidecar en su aplicación, configure la terminación TLS en la puerta de enlace de entrada para mantener el cifrado de extremo a extremo.
|
Función |
Descripción |
Referencia |
|
HTTPS con carga dinámica de certificados |
Habilite HTTPS en una puerta de enlace de entrada con actualizaciones de certificados en tiempo real. Configure claves privadas, certificados de servidor y certificados raíz sin reiniciar las puertas de enlace ni montar volúmenes de secretos. Gestione varios certificados y sus claves privadas para distintos hosts. |
|
|
Paso directo de TLS |
Reenvíe el tráfico cifrado directamente a los servicios de backend sin terminar TLS en la puerta de enlace. Utilice esta opción cuando no haya proxy sidecar inyectados o cuando otras circunstancias requieran cifrado de extremo a extremo en la capa de aplicación. |
|
|
Listener HTTPS en CLB |
Cree un listener HTTPS al vincular un certificado a la instancia de CLB de una puerta de enlace de entrada. El listener descifra las solicitudes HTTPS, las convierte a HTTP y las reenvía al pod de la puerta de enlace. |
|
|
Gestión de certificados |
Sincronice certificados entre varios clústeres de una instancia de ASM. Consulte los detalles de los certificados y configure alertas de vencimiento. |
|
|
Aplicación de versiones de TLS |
Deshabilite las versiones antiguas de TLS (1.0 y 1.1) y exija TLS 1.2 o posterior para prevenir ataques de intermediario y filtraciones de datos. |
|
|
mTLS para gRPC |
Configure Mutual TLS (mTLS) en servicios gRPC para exigir autenticación bidireccional y cifrado de extremo a extremo. |
|
|
Vinculación de certificados a dominios |
Vincule un certificado a un nombre de dominio desde la consola y luego acceda al dominio por HTTPS a través de la puerta de enlace de entrada. |
|
|
Integración con WAF |
Conecte una puerta de enlace de entrada a una instancia de Web Application Firewall (WAF) y personalice los campos del registro de acceso para consultar los encabezados agregados por WAF. |
|
|
Integración con cert-manager |
Utilice cert-manager para emitir y gestionar certificados de las puertas de enlace de ASM, lo que habilita el acceso HTTPS a los servicios. |
Autorización y control de acceso
|
Función |
Descripción |
Referencia |
|
Control de acceso basado en IP |
Configure una lista de bloqueados o de permitidos para autorizar o denegar solicitudes según direcciones IP de origen, nombres de dominio, puertos o bloques IP remotos. |
|
|
Autorización personalizada |
Defina directivas de control de acceso basadas en nombres de dominio, rutas y métodos HTTP para restringir el acceso a servicios específicos. |
|
|
Inicio de sesión único (SSO) basado en OIDC |
Configure el inicio de sesión único (SSO) de OpenID Connect (OIDC) con Alibaba Cloud IDaaS u otros proveedores de identidad compatibles con OIDC. Acceda a varios sistemas con una sola identidad, sin modificar sus aplicaciones. |
|
|
Autenticación JWT |
Valide tokens web JSON (JWT) en los encabezados de solicitud para autenticar usuarios en el nivel de la puerta de enlace. Solo las solicitudes con un JWT válido se reenvían a los servicios de backend. |
|
|
Autenticación JWT de usuario final |
Autentique el origen de las solicitudes en la puerta de enlace de entrada mediante la verificación de JWT en los encabezados. |
|
|
Integración con OPA |
Integre un motor de Open Policy Agent (OPA) con una puerta de enlace de entrada para definir directivas de autorización detalladas basadas en identidades de usuario o en el contenido de las solicitudes. |
|
|
SSO con IDaaS |
Implemente el inicio de sesión único para todas las aplicaciones de una instancia de ASM mediante Alibaba Cloud IDaaS, sin modificar el código. |
|
|
SSO con Keycloak |
Utilice Keycloak autogestionado como proveedor de identidad para implementar el inicio de sesión único en las aplicaciones de una instancia de ASM. |
|
|
CORS |
Configure directivas de uso compartido de recursos de origen cruzado (CORS) en un servicio virtual para permitir el acceso entre dominios de clientes y servicios. |
|
|
Restricción de IP con proxy de capa 7 |
Restrinja el acceso de direcciones IP específicas a las aplicaciones, ya sea con un proxy de capa 7 entre el cliente y la puerta de enlace de ASM o sin él. |
Redes y configuración
|
Función |
Descripción |
Referencia |
|
Puerta de enlace de Istio compartida |
Configure un solo recurso de puerta de enlace de Istio para varias puertas de enlace de entrada y simplifique así la configuración. |
|
|
Varias instancias de CLB |
Asocie múltiples instancias de CLB a una sola puerta de enlace de entrada para aumentar la capacidad de balanceo de carga. |
|
|
Extracción de IP de cliente |
Extraiga la dirección IP original del cliente de los encabezados de solicitud HTTP para habilitar directivas de control de acceso basadas en IP. |
|
|
Compatibilidad con IPv6 |
Cree una puerta de enlace de entrada con una dirección IPv6 para obtener mayor seguridad en comparación con IPv4. |
|
|
Acceso a CLB desde pods |
Si los pods del plano de datos no alcanzan la dirección IP de CLB de una puerta de enlace de entrada, acceda mediante la IP del clúster o el nombre de la puerta de enlace. |
|
|
Deshabilitar HTTP/2 |
Deshabilite HTTP/2 en una puerta de enlace de entrada con HTTPS activado cuando las limitaciones de HTTP/2 del lado del cliente no se puedan resolver mediante configuración. |
Puerta de enlace de salida
Una puerta de enlace de salida proporciona un punto de salida centralizado para el tráfico que abandona la malla. Enrute todo el tráfico saliente a través de una puerta de enlace dedicada para obtener visibilidad y control sobre las comunicaciones externas.
Gestione las puertas de enlace de salida desde la consola de ASM o mediante la API de Kubernetes.
|
Función |
Descripción |
Referencia |
|
Crear una puerta de enlace de salida |
Despliegue una puerta de enlace de salida en un clúster de Kubernetes como punto de salida centralizado para el tráfico de internet o de la red interna. |
|
|
Enrutar todo el tráfico saliente |
Configure una puerta de enlace de salida para gestionar de forma centralizada todo el tráfico saliente, con fines de control de seguridad y enrutamiento. |
|
|
Directiva de tráfico de salida (CRD) |
Defina directivas de tráfico de salida mediante campos de CustomResourceDefinition (CRD). Requiere la versión 1.16.4 o posterior de ASM. |
Puerta de enlace de Istio
Una puerta de enlace de Istio es un recurso de configuración que define un load balancer ejecutándose en el perímetro de la malla. Especifica qué puertos, protocolos y configuraciones TLS expone dicho load balancer. Vincule un servicio virtual a una puerta de enlace de Istio para agregar reglas de enrutamiento de capa 7.
|
Función |
Descripción |
Referencia |
|
Gestionar puertas de enlace de Istio |
Cree, modifique y elimine puertas de enlace de Istio desde la consola de ASM. |
Alta disponibilidad
ASM admite varias estrategias para mantener la alta disponibilidad de las puertas de enlace y minimizar la pérdida de tráfico durante actualizaciones, operaciones de escalado y fallas.
|
Función |
Descripción |
Referencia |
|
Configuración de puerta de enlace de alto rendimiento |
Configure una puerta de enlace de ASM para lograr alto rendimiento y alta disponibilidad. |
Configure a high-performance and high-availability ASM gateway |
|
Programación de pods |
Programe los pods de la puerta de enlace en nodos específicos para aislarlos de los pods de aplicación y mejorar la disponibilidad. |
|
|
Despliegue de puerta de enlace serverless |
Despliegue una puerta de enlace serverless de ASM en nodos virtuales con Elastic Container Instance para cargas de trabajo elásticas que no requieren mantenimiento de nodos. |
|
|
Antiafinidad de pods |
Distribuya los pods de la puerta de enlace entre distintos nodos o zonas de disponibilidad mediante directivas de antiafinidad de pods. |
|
|
Apagado controlado |
Evite la pérdida de tráfico durante el escalado horizontal descendente o los reinicios continuos al permitir que las solicitudes en curso se completen dentro de una ventana de tiempo configurada. |
|
|
Entrada multiclúster |
Despliegue servicios en varios clústeres y configure una puerta de enlace de entrada unificada para gestionar el tráfico hacia todos ellos. |
|
|
Actualización canary |
Actualice una puerta de enlace de ASM de forma incremental: inicie una nueva versión del pod de la puerta de enlace, compruebe el reenvío de tráfico y luego complete la actualización total. Puede revertir el proceso en cualquier momento si surgen problemas. |
Observability
Supervise el tráfico de las puertas de enlace mediante registros de acceso y métricas, con integración nativa a los servicios de observability de Alibaba Cloud.
|
Función |
Descripción |
Referencia |
|
Registros de acceso |
Genere registros de acceso en la puerta de enlace (impresos en la salida estándar con campos personalizables) y recopílelos en Simple Log Service para almacenamiento, análisis y visualización. |
|
|
Métricas |
Genere métricas personalizables en la puerta de enlace y recopílelas en Managed Service for Prometheus para almacenamiento, análisis y visualización. |
Procesamiento de solicitudes
|
Función |
Descripción |
Referencia |
|
Encabezados de respuesta HTTP |
Agregue encabezados de respuesta HTTP para aplicaciones web mediante un filtro de Envoy y mejore así la seguridad de la aplicación. |
|
|
Compresión de datos |
Habilite la compresión de datos en una puerta de enlace de ASM para reducir el tamaño de las respuestas y mejorar el tiempo de respuesta. |
Migración desde puertas de enlace existentes
Si actualmente utiliza una puerta de enlace de entrada de Istio autogestionada o NGINX Ingress Controller, migre el tráfico a una puerta de enlace de entrada de ASM para gestionarlo de forma centralizada desde el plano de control de ASM.
|
Ruta de migración |
Referencia |
|
De puerta de enlace de entrada de Istio autogestionada a ASM |
|
|
De NGINX Ingress Controller a ASM |
|
|
De configuraciones de NGINX a ASM |