Descripción general de Istio on GKE

¿Qué es Istio?

Istio es una malla de servicios abierta que proporciona una manera uniforme de conectar, administrar y proteger los microservicios. Admite la administración de flujos de tráfico entre servicios, la aplicación de políticas de acceso y la agregación de datos de telemetría, sin necesidad de realizar cambios en el código del microservicio.

Istio te proporciona los siguientes beneficios:

  • Balanceo de cargas automático para tráfico HTTP, gRPC, WebSocket, MongoDB y TCP
  • Control detallado del comportamiento del tráfico con reglas de enrutamiento enriquecidas, reintentos, inyección de errores y conmutación por error
  • Una API y una capa de políticas configurables que admitan controles de acceso, límites de frecuencia y cuotas.
  • Métricas, registros y seguimientos automáticos para todo el tráfico dentro de un clúster, que incluye el ingreso y la salida del clúster.
  • Comunicación segura entre servicios en un clúster con autenticación y autorización basadas en identidad sólida.

Configura el control de acceso de Istio, las reglas de enrutamiento, etc., mediante una API personalizada de Kubernetes, ya sea a través de kubectl o la herramienta de línea de comandos de Istio istioctl, que proporciona validación adicional.

Puede obtener más información sobre Istio en la documentación de código abierto establecida en istio.io.

¿Qué es Anthos Service Mesh?

Recomendamos que los clientes de Google Cloud usen la malla de servicios de Anthos, que es completamente compatible con la distribución de Istio de Google. Debido a que Anthos Service Mesh es compatible con las API de Istio, ofrece todos los beneficios de la malla de servicios de Istio y mucho más:

Anthos Service Mesh

Puedes instalar Anthos Service Mesh en Google Kubernetes Engine (GKE) como un servicio independiente. Para ello, no es necesario contar con una suscripción a Anthos. Para comenzar a explorar las funciones de Anthos Service Mesh, consulta la Guía de inicio rápido de Anthos Service Mesh para GKE.

¿Qué es Istio on GKE?

Istio en Google Kubernetes Engine es una herramienta que proporciona una instalación automatizada y una actualización de Istio en tu clúster de GKE. Cuando actualizas GKE, Istio on GKE se actualiza de forma automática a la versión más reciente de Istio compatible con GKE. Esto le permite administrar con facilidad la instalación y actualización de Istio como parte del ciclo de vida de los clústeres de GKE.

Es importante tener en cuenta que, cuando usas Istio on GKE, Istio se ejecuta en tu clúster. Los componentes de Istio que se ejecutan en el clúster no están cubiertos por ningún Acuerdo de Nivel de Servicio (ANS).

¿Debo usar Istio on GKE?

Si bien Istio on GKE administra la instalación y las actualizaciones, utiliza las opciones de instalación predeterminadas para el plano de control que limitan las opciones de configuración. Debido a estas limitaciones y el estado beta del producto, los clientes no deben usar Istio on GKE en producción. Anthos Service Mesh es una mejor opción para las cargas de trabajo de producción.

Las limitaciones de Istio on GKE incluyen las siguientes:

  • La versión de Istio instalada depende de la versión de GKE, por lo que no podrás actualizarlas por separado.

  • Existen limitaciones significativas con respecto a la configuración del plano de control. Debido a estas limitaciones, te recomendamos que no uses Istio on GKE en producción.

  • Si bien este instalador de complementos es parte de GKE, la instalación resultante de Istio no es un producto compatible con Google. Para aquellos que desean un producto compatible, Anthos Service Mesh es una mejor opción.

Si necesitas usar una versión más reciente de Istio o quieres tener un mayor control sobre la configuración del plano de control de Istio (que puede suceder en algunos casos de uso de producción), te recomendamos que uses Anthos Service Mesh.

Si ya no desea usar nuestra funcionalidad de instalación automática por cualquier motivo, puede desinstalar Istio on GKE. Puedes descubrir cómo hacerlo en Desinstala Istio en GKE.

¿Qué se instala?

Cuando creas o actualizas un clúster con Istio on GKE, se instalan los siguientes componentes principales de Istio:

La instalación también te permite agregar el proxy de sidecar de Istio a tus cargas de trabajo de servicio, lo que les permite comunicarse con el plano de control y unirse a la malla de Istio.

Obtenga más información sobre cómo instalar y desinstalar Istio en GKE y sus opciones de instalación en Instala Istio on GKE.

Compatibilidad con Cloud Monitoring

Para los clústeres con Google Kubernetes Engine Monitoring habilitado, el adaptador Stackdriver de Istio se instala junto con los componentes principales descritos antes. El adaptador puede enviar datos de métricas, registros y seguimiento de la malla a Cloud Monitoring, Cloud Logging o Cloud Trace, lo que proporciona observabilidad del comportamiento de tus servicios en Google Cloud Console. Después de habilitar una función particular de Monitoring, Logging o Trace para tu proyecto y clúster, esos datos se envían desde la malla de forma predeterminada. Istio on GKE configura de forma automática los permisos de acceso en el grupo de nodos del clúster para Monitoring, Logging y Trace.

Monitoring

Si está habilitada la API de Cloud Monitoring en tu proyecto de Google Cloud, la malla de Istio enviará automáticamente a Monitoring las métricas relacionadas con tus servicios (como la cantidad de bytes que recibe un servicio en particular), y aparecerán en el Explorador de métricas. Puedes usar estas métricas para crear paneles y alertas personalizados que te permiten supervisar tus servicios con el paso del tiempo y recibir alertas cuando, por ejemplo, un servicio se está acercando a una cantidad específica de solicitudes. También puedes combinar estas métricas con filtros y agregaciones mediante las métricas integradas de Monitoring para obtener estadísticas nuevas sobre el comportamiento de tu servicio.

Para consultar las métricas de un recurso supervisado mediante el Explorador de métricas, haz lo siguiente:

  1. En Google Cloud Console, ve a Monitoring o usa el siguiente botón:
    Ir a Monitoring
  2. En el panel de navegación de Monitoring, haz clic en Explorador de métricas.
  3. En la barra de herramientas, selecciona la pestaña Explorador.
  4. Selecciona la pestaña Configuración.
  5. Expande el menú Selecciona una métrica y, luego, usa los submenús para seleccionar un tipo de recurso y una métrica. Por ejemplo, para graficar la utilización de CPU de una máquina virtual, haz lo siguiente:
    1. (Opcional) Para reducir las opciones del menú, ingresa parte del nombre de la métrica en la Barra de filtros. En este ejemplo, ingresa utilization.
    2. En el menú Recursos activos, selecciona Instancia de VM.
    3. En el menú Categorías de métricas activas, selecciona Instancia.
    4. En el menú Métricas activas, selecciona Uso de CPU.

Para obtener una lista completa de las métricas de Istio, consulta la documentación de Cloud Monitoring.

Logging

Si la API de Cloud Logging está habilitada en tu proyecto de Google Cloud, la malla de Istio envía registros a Logging de forma automática, donde aparecen en el Explorador de registros. Consulta la documentación de Cloud Logging para obtener más información sobre lo que puedes hacer con los datos de registros, como exportarlos a BigQuery.

Seguimiento

Puedes habilitar Cloud Trace para que la malla de Istio envíe datos de seguimiento a Trace, donde aparece en el lector de seguimiento. Para aprovechar al máximo el seguimiento distribuido y detectar cuellos de botella de rendimiento, debes cambiar las cargas de trabajo a los encabezados de seguimiento de instrumentos. Puedes descubrir cómo hacerlo en la guía Seguimiento distribuido de Istio.

¿Cómo funciona el proceso de actualización?

El ciclo de vida de Istio se administra como parte del proceso de actualización de GKE. En GKE, hay dos procesos de actualización:

  • Actualización de la instancia principal: El proceso de actualización de la instancia principal es automático y actualiza los componentes del plano de control de Kubernetes (servidor de API, programador, administrador del controlador, etc.) en el nodo principal, así como los complementos. La actualización de los componentes del plano de control de Istio se administra como parte de este proceso.
  • Actualización de los nodos: El proceso de actualización de los nodos puede ser automático (se debe habilitar, pero es la opción recomendada) o manual, que actualiza los componentes de Kubernetes en los nodos trabajadores para que se sincronicen con la misma versión del nodo principal. La actualización del proxy de sidecar de Istio se administra como parte de este proceso.

Istio on GKE actualiza de forma automática el plano de control a una versión estable reciente (pero no necesariamente la más nueva). La versión se selecciona según la estabilidad y el rendimiento observados en las implementaciones de código abierto durante un período. Las actualizaciones de versiones se anuncian con anticipación en el grupo istio-gke-announce. En general, las actualizaciones de versiones se lanzan de forma gradual en todas las versiones de GKE durante un período de dos o más semanas, comenzando con la versión más reciente.

Las versiones del plano de control se prueban para garantizar la retrocompatibilidad con las últimas dos versiones anteriores del plano de datos (proxy de sidecar). Después de actualizar el clúster de GKE, te recomendamos que actualices los sidecars a la versión actual del plano de control lo antes posible, ya sea reiniciando los Pods (con la inserción automática habilitada) o volviendo a insertar la versión adecuada de forma manual.

Istio on GKE no permite que el usuario controle la versión del plano de control.

Modifica la configuración del plano de control

Debido a que Istio on GKE controla cómo se instala y actualiza tu plano de control, no te permite editar la mayoría de las opciones de configuración del plano de control que se proporcionan en nuestra instalación. El administrador de complementos de Kubernetes revierte los cambios que se realicen en la configuración, excepto en las siguientes. Las opciones no editables se revierten cada minuto.

Los parámetros de configuración que puedes usar cuando usas Istio on GKE son los siguientes:

  • Escalamiento horizontal para los componentes del plano de control, ya sea mediante el ajuste de escala automático o la configuración manual de la cantidad de réplicas
  • Solicitudes de recursos para contenedores del plano de control
  • Presupuestos de interrupción de Pods para las implementaciones que deben mantenerse disponibles durante las actualizaciones, como la puerta de enlace de entrada de Istio proporcionada.

Descubre cómo establecer esta configuración en Configurar el plano de control.

En cada caso, la configuración que especifica se conserva cuando Istio actualiza en GKE la instalación de su instalación.

Próximos pasos