Proxies de destino para Cloud Service Mesh

Este documento se aplica solo a Cloud Service Mesh con las APIs de balanceo de cargas. Te recomendamos que uses las APIs de enrutamiento de servicios para implementar Cloud Service Mesh.

Cuando configuras Cloud Service Mesh, uno de los recursos que configuras es el proxy de destino. En el contexto de Cloud Service Mesh, los proxies de destino tienen dos propósitos principales:

  • Definir el protocolo que usan los clientes de Cloud Service Mesh cuando abren una conexión a los backends o extremos asociados con un servicio

  • Trabajar con reglas de reenvío y mapas de URL para crear un mapa de reglas de enrutamiento. El mapa de reglas de enrutamiento proporciona funciones adicionales, como reglas de enrutamiento, según el tipo de proxy de destino. Las selecciones no válidas se ocultan en la interfaz de usuario o la API las rechaza.

Tipos de proxy de destino y protocolos de solicitud

Cloud Service Mesh genera diferentes opciones de configuración para sus clientes según el tipo de proxy de destino que establezcas. Cuando configuras un tipo de proxy de destino, el cliente de Cloud Service Mesh usa un protocolo de solicitud específico.

Proxy de destino Protocolo de solicitud
HTTPS Los clientes inician conexiones HTTPS
HTTP Los clientes inician conexiones HTTP
gRPC Los clientes inician conexiones de gRPC
TCP Los clientes inician conexiones TCP

No estás restringido a elegir un solo tipo. Por ejemplo, tu aplicación podría querer usar HTTP cuando se direcciona a algunos servicios, pero usa TCP cuando se direcciona a otros servicios. Para este caso de uso, debes crear un proxy HTTP de destino y un proxy TCP de destino.

Combinaciones de recursos válidas en un mapa de reglas de enrutamiento

Para evitar configuraciones incorrectas, Cloud Service Mesh solo te permite crear mapas de reglas de enrutamiento que se vean de la siguiente manera:

  • Regla de reenvío > Proxy HTTPS de destino global > Mapa de URL > uno o más servicios de backend
  • Regla de reenvío > Proxy HTTP de destino global > Mapa de URL > uno o más servicios de backend
  • Regla de reenvío > Proxy de gRPC de destino global > Mapa de URL > uno o más servicios de backend
  • Regla de reenvío > Proxy TCP de destino global > un servicio de backend

Si usas la consola de Google Cloud para configurar un proxy HTTP de destino, el proxy de destino se configura de forma implícita como parte de la configuración del mapa de reglas de enrutamiento. Aún no se admite la configuración del proxy TCP en la consola de Google Cloud.

Si usas la CLI de Google Cloud o las API, debes configurar el proxy de destino de forma explícita.

Control del tráfico

En las siguientes secciones, se describen las formas de manejar el tráfico según el tipo de proxy de destino que uses.

Usa un proxy HTTP o HTTPS de destino

Cuando configuras servicios basados en HTTP o HTTPS, por lo general, cada instancia de servicio tiene un proxy de Envoy implementado junto a él. Cloud Service Mesh configura este proxy de Envoy. Es parte de tu plano de datos de malla de servicios y controla el tráfico de la siguiente manera.

El proxy de Envoy recibe la solicitud saliente. Luego, compara la dirección IP y el puerto de destino de la solicitud con la dirección IP y el puerto que se configura en cada regla de reenvío que hace referencia a un proxy HTTP o HTTPS de destino. Si se encuentra una coincidencia, el proxy de Envoy evalúa la solicitud según el mapa de URL correspondiente del proxy de destino.

Usa un proxy TCP de destino

Cuando configuras servicios basados en TCP, por lo general, cada instancia de servicio tiene un proxy de Envoy implementado junto a él. Cloud Service Mesh configura este proxy de Envoy. Es parte de tu plano de datos de malla de servicios y controla el tráfico de la siguiente manera.

El proxy de Envoy recibe la solicitud saliente. Luego, compara la dirección IP y el puerto de destino de la solicitud con la dirección IP y el puerto configurados en cada regla de reenvío que hace referencia a un proxy TCP de destino. Cada regla de reenvío enruta el tráfico de TCP a un proxy de destino que apunta a un servicio de backend predeterminado. El servicio de backend especifica una verificación de estado y determina el backend adecuado.

Usa un proxy de gRPC de destino

Cuando configuras servicios basados en gRPC, por lo general, las instancias de servicio, no tienen proxies de Envoy implementados junto con ellas. En cambio, Cloud Service Mesh configura la biblioteca de gRPC. La biblioteca es parte del plano de datos de la malla de servicios y controla el tráfico de la siguiente manera.

La biblioteca de gRPC compara el hostname[:port] especificado en el URI con las reglas de host en todos los mapas de URL a los que hace referencia un proxy de gRPC de destino. Si se encuentra una coincidencia, la biblioteca de gRPC evaluará la solicitud según las reglas de ruta de acceso asociadas a la regla de host correspondiente.

Recursos del proxy de destino

Para agregar, borrar, enumerar y obtener información sobre los proxies de destino, puedes usar la API de REST o la CLI de gcloud.

Además, para obtener información sobre un proxy de destino, puedes usar los siguientes comandos de gcloud:

gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] list
gcloud compute [target-http-proxies | target-tcp-proxies | target-grpc-proxies] describe TARGET_PROXY_NAME

APIs

Para obtener descripciones de las propiedades y los métodos disponibles cuando trabajas con proxies de destino a través de la API de REST, consulta los siguientes recursos que admite Cloud Service Mesh:

CLI de gcloud

Para obtener más información sobre la CLI de Google Cloud, consulta los siguientes recursos:

¿Qué sigue?