Balanceamento de carga do Cloud Service Mesh

O Cloud Service Mesh usa proxies sidecar ou gRPC sem proxy para oferecer balanceamento de carga global para os seus microsserviços internos. Pode implementar microsserviços internos (com base em proxy sidecar ou gRPC sem proxy) com instâncias em várias regiões. A Cloud Service Mesh fornece informações de estado, encaminhamento e back-end aos proxies sidecar ou gRPC sem proxy, o que lhes permite realizar o encaminhamento de tráfego ideal para instâncias de aplicações em várias regiões da nuvem para um serviço.

No diagrama seguinte, o tráfego de utilizadores entra numa implementação Google Cloud através de um equilibrador de carga global externo. O balanceador de carga externo distribui o tráfego para o microsserviço de front-end em us-central1 ou asia-southeast1, consoante a localização do utilizador final.

A implementação interna inclui três microsserviços globais: Front End, Shopping Cart e Payments. Cada serviço é executado em grupos de instâncias geridos (MIGs) em duas regiões: us-central1 e asia-southeast1. O Cloud Service Mesh usa um algoritmo de balanceamento de carga global que direciona o tráfego do utilizador na Califórnia para os microsserviços implementados em us-central1. As solicitações do utilizador em Singapura são direcionadas para os microsserviços em asia-southeast1.

Um pedido de utilizador recebido é encaminhado para o microsserviço de front-end. O proxy de serviço instalado no anfitrião com o front-end direciona o tráfego para o carrinho de compras. O proxy sidecar instalado no anfitrião com o carrinho de compras direciona o tráfego para o microsserviço de pagamentos. Num ambiente gRPC sem proxy, a sua aplicação gRPC processaria a gestão de tráfego.

Cloud Service Mesh numa implementação de balanceamento de carga global.
Cloud Service Mesh numa implementação de equilíbrio de carga global (clique para aumentar)

No exemplo seguinte, se o Cloud Service Mesh receber resultados da verificação de estado que indicam que as instâncias de máquinas virtuais (VM) que executam o microsserviço do carrinho de compras em us-central1 não estão em bom estado, o Cloud Service Mesh indica ao proxy sidecar dos microsserviços de front-end que transfiram o tráfego para o microsserviço do carrinho de compras em execução em asia-southeast1. Uma vez que o dimensionamento automático está integrado com a gestão de tráfego no Google CloudCloud Service Meshasia-southeast1, o MIG notifica o asia-southeast1 do tráfego adicional e o MIG aumenta de tamanho.

O Cloud Service Mesh deteta que todos os back-ends do microsserviço Payments estão em bom estado, pelo que o Cloud Service Mesh indica ao proxy do Envoy para enviar uma parte do tráfego, até à capacidade configurada pelo cliente, para asia-southeast1 e encaminhar o resto para us-central1.

Failover com o Cloud Service Mesh numa implementação de balanceamento de carga global.
Failover com o Cloud Service Mesh numa implementação de balanceamento de carga global (clique para aumentar)

Componentes de balanceamento de carga no Cloud Service Mesh

Durante a configuração do Cloud Service Mesh, configura vários componentes de balanceamento de carga:

  • O serviço de back-end, que contém valores de configuração.
  • Uma verificação de funcionamento, que fornece verificações de funcionamento para as VMs e os pods do Google Kubernetes Engine (GKE) na sua implementação.
  • Com as APIs de encaminhamento de serviços, um recurso Mesh ou Gateway e um recurso Route.
  • Com as APIs de equilíbrio de carga, uma regra de encaminhamento global, que inclui o endereço VIP, um proxy de destino e um mapa de URLs.

Um proxy sidecar compatível com a API xDS (como o Envoy) é executado numa instância de VM de cliente ou num pod do Kubernetes. O Cloud Service Mesh funciona como o plano de controlo e usa as APIs xDS para comunicar diretamente com cada proxy. No plano de dados, a aplicação envia tráfego para o endereço IP virtual configurado na regra de encaminhamento ou no recurso Mesh. O proxy sidecar ou a sua aplicação gRPC intercepta o tráfego e redireciona-o para o back-end adequado.

O diagrama seguinte mostra uma aplicação em execução em VMs do Compute Engine ou pods do GKE, os componentes e o fluxo de tráfego numa implementação da Cloud Service Mesh. Mostra o Cloud Service Mesh e os recursos do Cloud Load Balancing que são usados para determinar o encaminhamento do tráfego. O diagrama mostra as APIs de equilíbrio de carga mais antigas.

Recursos do Cloud Service Mesh a serem configurados.
Recursos do Cloud Service Mesh a configurar (clique para aumentar)

O que se segue?