Este documento descreve como os gateways de vários clusters operam no Google Kubernetes Engine (GKE). Os gateways de vários clusters são uma solução de rede poderosa que permite gerenciar o tráfego de serviços implantados em vários clusters do GKE.
Este documento é destinado a arquitetos de nuvem e especialistas em redes que projetam e arquitetam a rede da organização. Para saber mais sobre papéis comuns e tarefas de exemplo referenciados no conteúdo do Google Cloud , consulte Tarefas e papéis de usuário comuns do GKE Enterprise.
Visão geral
O gateway de vários clusters é configurado usando os recursos da API Gateway do Kubernetes. O controlador de gateway do GKE monitora esses recursos (gateway, HTTPRoute) e provisiona e mantém automaticamente a infraestrutura de balanceamento de carga globalGoogle Cloud necessária. Essa infraestrutura oferece gerenciamento avançado de tráfego para serviços implantados em vários clusters do GKE em uma frota. Os gateways de vários clusters usam a infraestrutura global de balanceamento de carga do Google Cloudpara fornecer um único ponto de entrada unificado para seus aplicativos. Essa abordagem tem os seguintes benefícios:
- Simplifica o gerenciamento
- Melhora a confiabilidade
- Ativa recursos avançados de gerenciamento de tráfego
Recursos de gerenciamento de tráfego
Os gateways de vários clusters oferecem recursos avançados para gerenciar o tráfego em vários clusters. É possível implementar estratégias de roteamento sofisticadas, como lançamentos graduais e estratégias azul-verde, para implantar mudanças com segurança. Para um controle mais refinado, use a correspondência baseada em cabeçalho para testar mudanças com uma pequena porcentagem de tráfego ou divida o tráfego por peso para transferir gradualmente as solicitações entre diferentes back-ends de cluster.
Os gateways de vários clusters também permitem espelhar o tráfego, o que envia uma cópia das solicitações de usuários ativos para um novo serviço e testa o desempenho sem afetar os usuários. Para garantir a confiabilidade e evitar sobrecargas, os gateways de vários clusters oferecem suporte a failover com base na integridade e balanceamento de carga com base na capacidade, que distribui solicitações com base na capacidade definida dos seus serviços.
Como funciona o gateway de vários clusters
Todos os clusters do GKE que participam de uma configuração de gateway de vários clusters precisam ser registrados em uma frota. Uma frota oferece um agrupamento lógico de clusters, o que permite gerenciamento e comunicação consistentes entre eles. Um cluster do GKE na frota é designado como o cluster de configuração.
O cluster de configuração atua como um ponto de controle centralizado para sua
configuração de gateway de vários clusters. Você implanta todos os recursos da API Gateway de vários clusters, como Gateway e HTTPRoute, apenas nesse cluster designado.
O controlador de gateway do GKE
monitora o servidor da API Kubernetes do cluster de configuração em busca desses recursos.
Para escolher um cluster de configuração, considere um cluster do GKE altamente disponível, como um cluster regional. Isso garante que as atualizações nos recursos da API Gateway possam ser reconciliadas continuamente pelo controlador.
O controlador de gateway de vários clusters usa serviços de vários clusters (MCS) para descobrir e acessar serviços do Kubernetes em vários clusters do GKE em uma frota. O MCS é um recurso do GKE que permite a descoberta de serviços e a conectividade entre serviços executados em diferentes clusters do GKE em uma frota.
O MCG usa o MCS para descobrir quais serviços estão disponíveis em quais clusters para rotear o tráfego externo para os serviços. O controlador do MCG usa recursos da API MCS para agrupar pods em um único serviço endereçável e que abrange vários clusters.
Com base nas configurações definidas nos recursos da API Gateway, o controlador do GKE Gateway fornece um balanceador de carga de aplicativo externo ou interno. Esse balanceador de carga serve como front-end para seu aplicativo e distribui o tráfego diretamente para os pods íntegros em toda a frota, independentemente da localização deles.
As etapas gerais a seguir descrevem o processo para implantar um gateway de vários clusters:
Definir um gateway: em uma configuração de gateway de vários clusters, você cria um recurso de gateway que define o ponto de entrada do tráfego no cluster de configuração. O recurso Gateway especifica uma GatewayClass, que é um modelo para um tipo específico de balanceador de carga, como um balanceador de carga de aplicativo externo global ou um balanceador de carga de aplicativo interno regional. No GKE, as seguintes GatewayClasses implantam gateways de vários clusters:
gke-l7-global-external-managed-mc: provisiona um balanceador de carga de aplicativo externo global.gke-l7-regional-external-managed-mc: provisiona um balanceador de carga de aplicativo externo regional.gke-l7-cross-regional-internal-managed-mc: provisiona um balanceador de carga de aplicativo interno.gke-l7-rilb-mc: provisiona um balanceador de carga de aplicativo interno.gke-l7-gxlb-mc: provisiona um balanceador de carga de aplicativo clássico.
O gateway também define como o balanceador de carga detecta o tráfego de entrada ao especificar quais listeners de rede (portas e protocolos) expor. Para mais informações sobre as classes de gateway compatíveis com o GKE, consulte Serviços de vários clusters.
Anexe HTTPRoutes ao gateway: os recursos HTTPRoute definem como o tráfego HTTP/S de entrada é roteado para serviços de back-end específicos. As HTTPRoutes são anexadas aos recursos do Gateway e especificam regras com base em nomes de host, caminhos, cabeçalhos e muito mais. O HTTPRoute também é compatível com recursos avançados de gerenciamento de tráfego, como divisão e espelhamento de tráfego.
Criar balanceador de carga: quando você implanta recursos de gateway e HTTPRoute, o controlador de gateway do GKE interpreta esses objetos de API e, por sua vez, configura dinamicamente a infraestrutura de balanceamento de carga Google Cloud necessária. Em seguida, o balanceador de carga direciona o tráfego para os pods corretos, independente do cluster em que eles estão. Esse processo oferece uma maneira altamente eficiente e escalonável de rotear o tráfego.
Fluxo de tráfego
O diagrama a seguir ilustra como um gateway de vários clusters funciona como um balanceador de carga centralizado para aplicativos que são executados em dois clusters do GKE em regiões diferentes:
O comportamento do balanceador de carga é configurado com base nas regras definidas nos recursos HTTPRoute. Quando o tráfego do usuário chega ao endereço IP do balanceador de carga Google Cloud provisionado (conforme definido pelo recurso de gateway), o balanceador de carga, que é um proxy gerenciado pelo Google, encaminha o tráfego. Esse proxy (um proxy do Google Front End ou regional) direciona o tráfego para o endpoint do serviço de back-end apropriado no cluster correto do GKE, com base nos seguintes critérios:
- Verificações de integridade
- Regras de divisão de tráfego
- Capacidade
O tráfego flui diretamente para o pod ideal no cluster selecionado.
A seguir
- Saiba como ativar gateways de vários clusters.
- Leia uma visão geral de como os gateways funcionam no GKE.