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, todo sin necesidad de cambios en el código de microservicio.

Istio te brinda 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, conmutaciones por error y la inserción de errores.
  • Una capa de política y una API configurables que admiten 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 de servicio a servicio en un clúster con autenticación y autorización basadas en la identidad.

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

Puedes 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 Anthos Service Mesh, la distribución de Istio completamente compatible de Google. Debido a que Anthos Service Mesh es compatible con las API de Istio, proporciona 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 el que no se necesita una suscripción a Anthos. Si deseas 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 instalación y actualización automáticas 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 GKE compatible con GKE. Esto te permite administrar con facilidad la instalación y actualización de Istio como parte del ciclo de vida del clúster 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 al 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.

Estas son algunas de las limitaciones de Istio on GKE:

  • La versión de Istio instalada está vinculada a la versión de GKE, y no puedes actualizarlas de forma independiente.

  • 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 deseas tener un mayor control sobre la configuración del plano de control de Istio (lo cual puede suceder en algunos casos prácticos de producción), te recomendamos que uses . Anthos Service Mesh

Si ya no deseas usar nuestra funcionalidad de instalación automática por algún motivo, puedes desinstalar Istio en GKE. Puedes obtener información sobre cómo hacer esto 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 las cargas de trabajo de servicio, lo que les permite comunicarse con el plano de control y unirse a la malla de Istio.

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

Compatibilidad con Cloud Monitoring

En el caso de los clústeres que tienen habilitado Google Kubernetes Engine Monitoring, el adaptador de Stackdriver para Istio se instala junto con los componentes principales que se describieron antes. El adaptador puede enviar datos de métricas, registros y seguimiento desde la malla a Cloud Monitoring, Cloud Logging o Cloud Trace, que proporciona observabilidad del comportamiento de tus servicios en Google Cloud Console. Después de habilitar una función en particular de Monitoring, Logging o Trace para tu proyecto y clúster, esos datos se envían desde la malla de forma predeterminada. Istio en 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 la API de Cloud Monitoring está habilitada en tu proyecto de Google Cloud, tu malla de Istio envía de forma automática métricas relacionadas con tus servicios (como la cantidad de bytes recibidos por un particular servicio) a Monitoring, donde aparecen 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 mediante filtros y agregaciones con 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. Selecciona la pestaña Configuración y, luego, ingresa o selecciona un Tipo de recurso y una Métrica.

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, tu malla de Istio envía registros de forma automática a Logging, donde aparecen en el Visor 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 de forma automática los datos de seguimiento a Trace, donde aparecen en el visualizador de seguimientos. Para aprovechar al máximo el seguimiento distribuido a fin de encontrar cuellos de botella en el rendimiento, debes cambiar las cargas de trabajo por instrumentos de encabezado de seguimiento. Puedes encontrar información sobre 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 tu clúster de GKE, te recomendamos que actualices los sidecars a la versión actual del plano de control lo antes posible, ya sea mediante el reinicio de los pods (con la inserción automática habilitada) o de nuevo de forma manual. inyectando la versión adecuada.

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 todos los cambios en la configuración, excepto los que se indican a continuación. Las opciones no editables se revierten cada minuto.

Las opciones de configuración que puedes establecer mientras usas Istio on GKE son las siguientes:

  • Escalamiento horizontal para los componentes del plano de control, ya sea mediante el ajuste de escala automático o mediante 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 implementaciones que necesitas mantener disponibles durante las actualizaciones, como la puerta de enlace de entrada de Istio proporcionada.

Puedes obtener información para establecer esta configuración en Configura el plano de control.

En cada caso, la configuración que especifiques se conservará cuando Istio on GKE actualice la instalación.

Próximos pasos