Complemento de malla de servicios basado en Istio para Azure Kubernetes Service

Istio aborda los retos a los que se enfrentan los desarrolladores y operadores con una arquitectura distribuida o de microservicios. El complemento de malla de servicios basado en Istio proporciona una integración oficialmente admitida y probada para Azure Kubernetes Service (AKS).

¿Qué es una malla de servicios?

Las aplicaciones modernas se diseñan normalmente como colecciones distribuidas de microservicios, en las que cada colección de microservicios realiza una función empresarial discreta. Una malla de servicios es un nivel de infraestructura dedicada que puede agregar a sus aplicaciones. Permite agregar de forma transparente capacidades como la observabilidad, la administración del tráfico y la seguridad, sin agregarlas a su propio código. El término malla de servicios describe tanto el tipo de software que se usa para implementar este patrón, como el dominio de seguridad o de red que se crea cuando se usa ese software.

A medida que la implementación de servicios distribuidos, como en un sistema basado en Kubernetes, crece en tamaño y complejidad, puede volverse más difícil de entender y administrar. Es posible que tenga que implementar capacidades como el descubrimiento, el equilibrio de carga, la recuperación de errores, las métricas y la supervisión. Una malla de servicios también puede abordar requisitos operativos más complejos, como pruebas A/B, implementaciones canarias, limitación de velocidad, control de acceso, cifrado y autenticación descentralizada.

La comunicación entre servicios es lo que hace posible una aplicación distribuida. El enrutamiento de esta comunicación, tanto dentro de los clústeres de aplicaciones como entre ellos, se vuelve cada vez más complejo a medida que aumenta el número de servicios. Istio ayuda a reducir esta complejidad a la vez que alivia la carga de los equipos de desarrollo.

¿Qué es Istio?

Istio es una malla de servicios de código abierto que se superpone de forma transparente a las aplicaciones distribuidas existentes. Las potentes funciones de Istio proporcionan una forma uniforme y más eficiente de proteger, conectar y supervisar los servicios. Istio permite el equilibrio de carga, la autenticación de servicio a servicio y la supervisión, con pocos o ningún cambio en el código del servicio. Su potente plano de control aporta características vitales, entre las que se incluyen:

  • Comunicación segura de servicio a servicio en un clúster con cifrado TLS, autenticación y autorización sólidas basadas en identidad.
  • Equilibrio de carga automático para el tráfico HTTP, gRPC, WebSocket y TCP
  • Control específico del comportamiento del tráfico, con reglas de enrutamiento enriquecidas, reintentos, conmutaciones por error e inyección de errores
  • Una API de configuración y capa de directiva conectable que admite controles de acceso, límites de velocidad y cuotas
  • Métricas, registros y seguimientos automáticos para todo el tráfico de un clúster, incluida la entrada y salida del clúster

¿En qué se diferencia el complemento de Istio de código abierto?

Este complemento de malla de servicios usa Istio de código abierto y se basa en él. El complemento ofrece las siguientes ventajas adicionales:

  • Las versiones de Istio se prueban y verifican para que sean compatibles con las versiones admitidas de Azure Kubernetes Service.
  • Microsoft se encarga del escalado y la configuración del plano de control de Istio.
  • Microsoft ajusta el escalado de componentes AKS como coredns cuando se habilita Istio.
  • Microsoft proporciona un ciclo de vida administrado (actualizaciones) para los componentes de Istio cuando lo activa el usuario.
  • Verificación de la configuración de entrada externa e interna.
  • Verificado para trabajar con servicio administrado para Azure Monitor para Prometheus y Azure Managed Grafana.
  • El Soporte técnico de Azure oficial proporcionado para el complemento.

Limitaciones

El complemento de malla de servicios basado en Istio para AKS tiene las siguientes limitaciones:

  • El complemento no funciona en clústeres AKS que usen el Complemento de malla de servicios abiertos para AKS.
  • El complemento no funciona en clústeres AKS que ya tienen Istio instalado fuera de la instalación del complemento.
  • El complemento no admite la adición de pods asociados a nodos virtuales que se van a agregar en la malla.
  • Istio no admite contenedores de Windows Server.
  • La personalización de la malla basada en los siguientes recursos personalizados está bloqueada por ahora - EnvoyFilter, ProxyConfig, WorkloadEntry, WorkloadGroup, Telemetry, IstioOperator, WasmPlugin
  • La API de puerta de enlace para la puerta de enlace de entrada de Istio o la administración del tráfico de malla (GAMMA) aún no se admiten con el complemento Istio.

Pasos siguientes