Este documento descreve como os gateways de vários clusters funcionam no Google Kubernetes Engine (GKE). Os gateways de vários clusters são uma solução de rede eficaz que lhe permite gerir o tráfego de serviços implementados em vários clusters do GKE.
Este documento destina-se a arquitetos da nuvem e especialistas em redes que concebem e arquitetam a rede da respetiva organização. Para saber mais sobre as funções comuns e exemplos de tarefas que referimos no conteúdo, consulte o artigo Funções de utilizador e tarefas comuns do GKE Enterprise. Google Cloud
Vista geral
O gateway de vários clusters é configurado através de recursos da API Gateway do Kubernetes. O controlador do GKE Gateway monitoriza estes recursos (Gateway, HTTPRoute) e aprovisiona e mantém automaticamente aGoogle Cloud infraestrutura de balanceamento de carga global necessária. Esta infraestrutura oferece gestão de tráfego avançada para serviços implementados em vários clusters do GKE numa frota. Os gateways multicluster usam a infraestrutura de balanceamento de carga global do Google Cloud para fornecer um único ponto de entrada unificado para as suas aplicações. Google CloudEsta abordagem tem as seguintes vantagens:
- Simplifica a gestão
- Melhora a fiabilidade
- Ativa capacidades de gestão de tráfego avançadas
Capacidades de gestão de tráfego
Os gateways de vários clusters oferecem capacidades avançadas para gerir o tráfego em vários clusters. Pode implementar estratégias de encaminhamento sofisticadas, como implementações faseadas e estratégias azul-verde, para implementar alterações em segurança. Para um controlo detalhado, pode usar a correspondência baseada em cabeçalhos para testar alterações com uma pequena percentagem de tráfego ou dividir o tráfego por ponderação para mudar gradualmente os pedidos entre diferentes back-ends de clusters.
Os gateways de vários clusters também permitem espelhar o tráfego, o que envia uma cópia dos pedidos de utilizadores ativos para um novo serviço para testar o desempenho sem afetar os utilizadores. Para garantir a fiabilidade e evitar sobrecargas, os gateways de vários clusters suportam a comutação por falha baseada no estado de funcionamento e o equilíbrio de carga baseado na capacidade, que distribui pedidos com base na capacidade definida dos seus serviços.
Como funciona o gateway de vários clusters
Todos os clusters do GKE que participam numa configuração de gateway de vários clusters têm de estar registados numa frota. Uma frota oferece um agrupamento lógico de clusters, o que permite uma gestão e uma comunicação consistentes entre os clusters. Um cluster do GKE na frota é designado como o cluster de configuração.
O config cluster funciona como um ponto de controlo centralizado para a configuração do gateway de vários clusters. Implementa todos os recursos da API Gateway de vários clusters, como Gateway e HTTPRoute, apenas neste cluster designado.
O controlador do GKE Gateway
monitoriza o servidor da API Kubernetes do cluster de configuração para estes recursos.
Para escolher um cluster de configuração, considere um cluster do GKE altamente disponível, como um cluster regional. Isto garante que as atualizações dos recursos da API Gateway podem ser reconciliadas continuamente pelo controlador.
O controlador de gateway de vários clusters usa serviços de vários clusters (MCS) para descobrir e aceder a serviços do Kubernetes em vários clusters do GKE numa frota. O MCS é uma funcionalidade do GKE que permite a deteção de serviços e a conetividade entre serviços executados em diferentes clusters do GKE numa frota.
O MCG usa o MCS para descobrir que serviços estão disponíveis em que clusters para encaminhar o tráfego externo para os serviços. O controlador do MCG usa recursos da API MCS para agrupar pods num único serviço endereçável e que abrange vários clusters.
Com base nas configurações que definiu nos recursos da API Gateway, o controlador do gateway do GKE fornece um balanceador de carga de aplicações externo ou um balanceador de carga de aplicações interno. Este equilibrador de carga funciona como a interface para a sua aplicação e distribui o tráfego diretamente para os pods em bom estado de funcionamento na sua frota, independentemente da respetiva localização.
Os seguintes passos de nível superior descrevem o processo de implementação de um gateway de vários clusters:
Defina um gateway: numa configuração de gateway com vários clusters, cria um recurso de gateway que define o ponto de entrada para o seu 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 aplicações externo global ou um balanceador de carga de aplicações interno regional. No GKE, as seguintes GatewayClasses implementam Gateways de vários clusters:
gke-l7-global-external-managed-mc: aprovisiona um balanceador de carga de aplicações externo global.gke-l7-regional-external-managed-mc: aprovisiona um balanceador de carga de aplicações externo regional.gke-l7-cross-regional-internal-managed-mc: aprovisiona um balanceador de carga de aplicações interno.gke-l7-rilb-mc: aprovisiona um balanceador de carga de aplicações interno.gke-l7-gxlb-mc: aprovisiona um balanceador de carga de aplicações clássico.
O Gateway também define como o balanceador de carga escuta o tráfego recebido, especificando que ouvintes de rede (portas e protocolos) expor. Para mais informações sobre as classes de gateway suportadas pelo GKE, consulte os serviços multicluster.
Anexe HTTPRoutes à Gateway: os recursos HTTPRoute definem como o tráfego HTTP/S recebido é encaminhado para serviços de back-end específicos. Os HTTPRoutes estão anexados a recursos de gateway e especificam regras com base em nomes de anfitriões, caminhos, cabeçalhos e muito mais. O HTTPRoute também suporta funcionalidades avançadas de gestão de tráfego, como a divisão e a replicação de tráfego.
Criar balanceador de carga: quando implementa recursos Gateway e HTTPRoute, o controlador do GKE Gateway interpreta estes objetos da API e, por sua vez, configura dinamicamente a infraestrutura de balanceamento de carga necessária. Google Cloud Em seguida, o balanceador de carga direciona o tráfego para os Pods corretos, independentemente do cluster em que os Pods se encontram. Este processo oferece uma forma altamente eficiente e escalável de encaminhar o tráfego.
Fluxo de tráfego
O diagrama seguinte ilustra como um Gateway de vários clusters funciona como um equilibrador de carga centralizado para aplicações que são executadas em dois clusters do GKE em diferentes regiões:
O comportamento do equilibrador de carga é configurado com base nas regras definidas nos recursos HTTPRoute. Quando o tráfego de utilizadores chega ao endereço IP do balanceador de carga Google Cloud aprovisionado Google Cloud (conforme definido pelo recurso Gateway), o balanceador de carga, que é um proxy gerido pela Google, encaminha o tráfego. Este proxy (um proxy de front-end da Google ou um proxy regional) direciona o tráfego para o ponto final do serviço de back-end adequado no cluster do GKE correto, com base nos seguintes critérios:
- Verificações de funcionamento
- Regras de divisão de tráfego
- Capacidade
O tráfego flui diretamente para o agrupamento ideal no cluster selecionado.
O que se segue?
- Saiba como ativar gateways multicluster.
- Leia uma vista geral sobre como os Gateways funcionam no GKE.