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 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, inyección de errores y conmutación por error
  • Una capa configurable de política y API que admite controles de acceso, límites de frecuencia y cuotas
  • Métricas, registros y seguimientos automáticos para todo el tráfico de un clúster, incluidos el ingreso y la salida de él
  • Comunicación segura entre servicios en un clúster con autenticación y autorización basadas en identidad sólida

Puedes configurar el control de acceso de Istio y las reglas de enrutamiento, entre otros aspectos, 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.

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

¿Qué es Anthos Service Mesh?

Anthos Service Mesh es la distribución de completamente compatible de Istio. Debido a que Anthos Service Mesh es compatible con las API de Istio, proporciona todos los beneficios de la malla del servicio de Istio y más:

Anthos Service Mesh

Para comenzar a explorar las características de la malla de servicios de Anthos, consulta la guía de inicio rápido de Anthos Service Mesh para GKE.

¿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 manera automática a la versión de Istio más reciente compatible con GKE. Esto te permite administrar con facilidad la instalación y la 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, no se recomienda que los clientes usen este complemento en entornos de producción. Anthos Service Mesh es una mejor opción para las cargas de trabajo de producción.

Entre las limitaciones del complemento, se 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 el complemento 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 quienes desean un producto compatible, Anthos Service Mesh es una mejor opción.

Si necesitas usar una versión más reciente de Istio, o si deseas tener un mayor control sobre la configuración del plano de control de Istio (que puede suceder en algunos casos prácticos de producción), te recomendamos usar la . }Malla de servicios de Anthos.

Si ya no quieres usar nuestra función de instalación automática por algún motivo, puedes desinstalar el complemento. Descubre cómo hacerlo en Desinstalar Istio on 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.

Puedes obtener más información sobre la instalación y la desinstalación del complemento y las opciones de instalación en Instalar 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 descritos anteriormente. El adaptador puede enviar datos de métricas, registros y seguimientos desde tu malla a Cloud Logging, Cloud Monitoring o Cloud Trace, lo que brinda observabilidad del comportamiento de tus servicios en Google Cloud Console. Una vez que habilites una función específica de Cloud Logging, Cloud Monitoring o Cloud Trace en tu proyecto y clúster, los datos correspondientes se enviarán desde tu malla de forma predeterminada. Ten en cuenta que el complemento Istio on GKE establece de forma automática los permisos de acceso en el grupo de nodos del clúster para Cloud Monitoring, Logging y Trace.

Supervisión

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. 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 está habilitada la API de Cloud Logging en tu proyecto de Google Cloud, la malla de Istio enviará los registros a Logging automáticamente, y 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 registros, como exportarlos a BigQuery.

Seguimiento

Puedes habilitar Cloud Trace para que tu malla de Istio envíe automáticamente los datos de seguimientos a Cloud Trace y aparezcan en el visor de seguimientos. Ten en cuenta que, a fin de aprovechar al máximo el seguimiento distribuido para ayudar a detectar cuellos de botella en el rendimiento, deberás modificar las cargas de trabajo a fin de lograr la instrumentación de los encabezados de seguimiento. Descubre cómo hacerlo en la guía sobre 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). Una vez que hayas actualizado el clúster de GKE, te recomendamos que actualices los proxies de sidecar 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 reinyección manual de 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. Puedes ver las opciones de instalación predeterminadas en los manifiestos de tu versión de Istio on GKE (el manifiesto que se aplica depende del modo mTLS y la configuración de Cloud Logging, Cloud Monitoring o Cloud Trace que hayas elegido). Por ejemplo, puedes encontrar las opciones de instalación de la versión 1.0.3-gke.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 que realices en estas opciones, excepto las especificadas a continuación. Las opciones no editables se revierten cada minuto.

Estas son las opciones que puedes configurar cuando usas el complemento. Además, se recomienda hacerlo en instalaciones de producción.

  • 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 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 especifiques se conservará cuando el complemento actualice tu instalación.

Próximos pasos