Istio on GKE

Istio on GKE es un módulo adicional para GKE que le permite crear rápidamente un clúster con todos los componentes que necesita para crear y ejecutar una malla de servicios de Istio en un solo paso. Una vez instalado, los componentes del plano de control de Istio se mantienen actualizados automáticamente. Esto significa que no deberá preocuparse por realizar actualizaciones a nuevas versiones. También puede usar el complemento para instalar Istio en un clúster existente.

¿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 brinda lo siguiente:

  • 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, conmutación por error y la inyección de errores
  • Una capa de política y 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 identidad sólida.

Configura el control de acceso de Istio, las reglas de enrutamiento y así sucesivamente con 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.

Puede encontrar mucha más información sobre Istio en nuestra descripción general y leer la documentación completa de código abierto en istio.io.

¿Qué es Istio on GKE?

Istio on GKE es una herramienta que proporciona instalación y actualización automatizadas de Istio en tu clúster de GKE. Cuando actualizas GKE, el complemento se actualiza de forma automática a la versión más reciente de Istio 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 destacar que, cuando se usa Istio en GKEE, Istio se ejecuta dentro de tu clúster. No hay un Acuerdo de Nivel de Servicio (ANS) en los componentes de Istio que se ejecutan en tu clúster.

¿Debo usar Istio on GKE?

Si bien Istio en GKE administra la instalación y las actualizaciones, usa 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 este complemento en producción. Anthos Service Mesh o Open de código abierto son mejores opciones para las cargas de trabajo de producción.

Entre las limitaciones del complemento, se incluyen las siguientes:

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

  • Existen limitaciones fuertes sobre la configuración del plano de control. Debes revisar estas limitaciones antes de usar el complemento Istio on GKE en producción.

Si necesitas usar una versión de código abierto más reciente de Istio, o deseas tener un mayor control sobre la configuración de tu plano de control de Istio (lo que puede suceder en algunos casos prácticos de producción), te recomendamos usar el versión de código abierto de Istio en lugar del complemento Istio on GKE.

Si ya no deseas usar nuestra funcionalidad de instalación automática por algún motivo, puedes desinstalar el complemento. Puedes ver cómo hacerlo en Desinstalar Istio on GKE.

¿Qué está instalado?

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

  • Piloto , que es responsable del descubrimiento de servicios y la configuración de losEnvoy proxies de sidecar para administrar la malla de serviciostráfico.
  • Los componentes Mixer de Istio-Policy y de Istio-Telemetry que realizan una aplicación forzosa de las políticas de uso y recopilan datos de telemetría a través de la malla de servicios
  • La puerta de enlace de entrada de Istio, que proporciona un punto de entrada para el tráfico desde fuera del clúster.
  • (Solo versiones de Istio 1.0): La puerta de enlace de salida de Istio, que permite que las funciones de Istio, como la supervisión y las reglas de enrutamiento, se apliquen al tráfico que sale de la malla La puerta de enlace de salida de Istio no se instala de forma predeterminada en la versión 1.1 y posteriores.
  • Istio-Citadel, que automatiza la administración de claves y certificados para Istio
  • Galley, que proporciona servicios de administración de configuración para Istio

La instalación también te permite agregar el proxy de archivo adicional 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.

Puedes obtener más información sobre la instalación y la desinstalación del complemento y las opciones de instalación en Instala Istio on GKE.

Asistencia de Cloud Monitoring

Para los clústeres con Google Kubernetes Engine Monitoring habilitado, el adaptador de Stackdriver para Istio se instala junto con los componentes principales descritos anteriormente. El adaptador puede enviar métricas, registros y seguimientos de datos desde tu malla a Cloud Logging, Cloud Monitoring o Cloud Trace, lo que permite la capacidad de integración del comportamiento de tus servicios en elGoogle Cloud Console. Una vez que habilites una característica específica de Cloud Logging, Cloud Monitoring o Cloud Trace para tu proyecto y clúster, esos datos se enviarán desde tu malla de forma predeterminada. Ten en cuenta que el complemento Istio on GKE establece de forma automática los niveles de acceso en el grupo de nodos del clúster para Cloud Monitoring, Logging y Trace.

Supervisión

Si la API de Cloud Monitoring está habilitada en tu proyecto de Google Cloud, la malla de Istio enviará de forma automática las métricas relacionadas con tus servicios (como la cantidad de bytes que recibe un en particular) a Monitoring, donde aparecerá en el Explorador de métricas. Puedes usar estas métricas para crear paneles y alertas personalizados que te permiten supervisar tus servicios en el tiempo y recibir alertas cuando, por ejemplo, un servicio se está acercando a un número específico de solicitudes. También puedes combinar estas métricas con filtros y agregaciones con 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. Ingresa el nombre del recurso supervisado en el cuadro de texto Find resource type and metric.

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 enviará registros a Logging de forma automática, donde aparecerán 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 registro, como cómo exportar registros a BigQuery.

Seguimiento

Puedes habilitar Cloud Trace para que tu malla de Istio envíe de forma automática los datos de seguimiento a Cloud Trace, en el que aparece en el visualizador de seguimiento. Ten en cuenta que, a fin de aprovechar al máximo el seguimiento distribuido para ayudar a detectar cuellos de botella en el rendimiento, necesitarás cambiar las cargas de trabajo a los encabezados de seguimiento de instrumentos. Puedes averiguar cómo hacerlo en la guía de 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 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 y en el complementos. La actualización de los componentes del plano de control de Istio se administra como parte de este proceso.
  • Actualización de nodo: El proceso de actualización de nodos puede ser automático (habilitar; recomendado) o manual, que actualiza los componentes de Kubernetes en los nodos trabajadores para que se sincronicen con la misma versión de el nodo principal. La actualización del archivo adicional 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 (no necesariamente más actualizada). La versión se selecciona en función de la observabilidad y el rendimiento observados en las implementaciones de código abierto durante un período. Las actualizaciones de la versión se anuncian con anticipación en el grupo istio-gke-announce. En general, las actualizaciones de la versión se implementan de forma gradual en todas las versiones de GKE durante un período de dos o más semanas, a partir de la versión más reciente.

Las versiones del plano de control se prueban para tener retrocompatibilidad con las últimas dos versiones anteriores del plano de datos (proxy de archivo adicional). Una vez que hayas actualizado el clúster de GKE, te recomendamos que actualices los archivos adicionales a la versión actual del plano de control lo antes posible, ya sea mediante el reinicio de los pods (con la inyección automática habilitada) o la repetición manual inyectando la versión adecuada.

Istio on GKE no permite el control de usuario sobre 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. Puedes ver las opciones de instalación predeterminadas en los manifiestos de tu versión de Istio en GKE (el manifiesto que se aplica depende del modo mTLS que elegiste y Cloud Logging, Cloud Monitoring o Cloud) configuración de seguimiento). Por ejemplo, puedes encontrar las opciones de instalación de la versión 1.0.3gke.3 en la consola en storage/browser/gke-release/istio/release/1.0.3-gke.3/manifests/. El administrador del complemento de Kubernetes revertirá cualquier modificación a estas opciones, excepto la configuración especificada a continuación. Las opciones no editables se revierten cada minuto.

Las opciones de configuración que puedes (y, para las instalaciones de producción, deben) configurar mientras usas el complemento:

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

Averigua cómo establecer esta configuración en Configura tu plano de control.

En cada caso, la configuración que especificas se conserva cuando el complemento actualiza tu instalación.

¿Qué sigue?