Gerenciar e dimensionar a rede de aplicativos Windows executados em Kubernetes gerenciados

Last reviewed 2024-08-14 UTC

Esta arquitetura de referência oferece uma solução altamente disponível e escalonável que usa o Cloud Service Mesh e os gateways Envoy para gerenciar o tráfego de rede de aplicativos Windows executados no Google Kubernetes Engine (GKE). Ela explica como gerenciar esse tráfego de rede usando um serviço que pode rotear o tráfego para pods e para um proxy compatível com xDS de código aberto. Usar uma arquitetura como essa pode ajudar a reduzir custos e melhorar o gerenciamento de rede.

Este documento é destinado a arquitetos de nuvem, administradores de rede e profissionais de TI responsáveis por projetar e gerenciar aplicativos Windows executados no GKE.

Arquitetura

O diagrama a seguir mostra uma arquitetura para gerenciar a rede de aplicativos Windows executados no GKE usando gateways do Envoy e Cloud Service Mesh:

Os dados fluem por um balanceador de carga de aplicativo interno e um gateway do Envoy.

A arquitetura inclui os seguintes componentes:

  • Um cluster regional do GKE com pools de nós do Windows e do Linux.
  • Dois aplicativos do Windows em execução em dois pods do GKE separados.
  • O Cloud Service Mesh cria e gerencia as rotas de tráfego para os NEGs de cada pod do GKE. Cada rota é mapeada para um scope específico. Esse scope identifica exclusivamente um gateway de entrada do Cloud Service Mesh.
  • Rotas HTTP que mapeiam para os serviços de back-end para o Cloud Service Mesh.
  • Pods de contêiner do Envoy que funcionam como um gateway do Envoy para o cluster do GKE.
  • Gateways do Envoy que são executados em nós do Linux. Os gateways são configurados para direcionar o tráfego aos aplicativos Windows pelos serviços que correspondem a eles. O Envoy está configurado para usar o parâmetro scope para carregar os detalhes de configuração dos serviços relevantes do Cloud Service Mesh.
  • Um Balanceador de carga de aplicativo interno que encerra o tráfego SSL e direciona todo o tráfego de entrada externo para os gateways Envoy.

Produtos usados

Esta arquitetura de referência usa os seguintes produtos do Google Cloud e de terceiros:

Produtos do Google Cloud

  • Cloud Load Balancing: um portfólio de balanceadores de carga globais, regionais, escalonáveis, globais e de alto desempenho.
  • Google Kubernetes Engine (GKE): um serviço do Kubernetes que pode ser usado para implantar e operar aplicativos conteinerizados em escala usando a infraestrutura do Google.
  • Cloud Service Mesh: um pacote de ferramentas que monitora e gerencia uma malha de serviço local confiável ou no Google Cloud.

Produtos terceirizados

  • Gateway do Envoy: gerencia um proxy do Envoy como um gateway de aplicativo independente ou baseado no Kubernetes.
  • API Gateway: um projeto oficial do Kubernetes focado no roteamento L4 e L7 no Kubernetes.

Caso de uso

O principal caso de uso dessa arquitetura de referência é gerenciar o tráfego de rede para aplicativos Windows executados no GKE. Essa arquitetura oferece os seguintes benefícios:

Gerenciamento de rede simplificado: Cloud Service Mesh e gateways do Envoy oferecem um gerenciamento de rede simplificado por meio de um sistema de controle que gerencia o tráfego de rede para aplicativos. Esses aplicativos podem ser Linux ou Windows executados no GKE ou Compute Engine. O uso desse esquema simplificado de gerenciamento de rede reduz a necessidade de configuração manual.

Escalonamento e disponibilidade aprimorados: para atender às demandas em mudança, use o Cloud Service Mesh e gateways do Envoy para escalonar seus aplicativos Linux e Windows. Também é possível usar gateways do Envoy para oferecer alta disponibilidade para seus aplicativos com o balanceamento de carga do tráfego em vários pods.

Segurança aprimorada: use os gateways Envoy para adicionar recursos de segurança aos seus aplicativos Linux e Windows, como terminação SSL, autenticação e limitação de taxa.

Custos reduzidos: os gateways Envoy e Cloud Service Mesh podem ajudar a reduzir os custos de gerenciamento do tráfego de rede nos aplicativos Linux e Windows.

Considerações sobre o design

Esta seção fornece orientações para ajudar você a desenvolver uma arquitetura que atenda aos seus requisitos específicos de segurança, confiabilidade, custo e eficiência.

Segurança

  • Rede segura: a arquitetura usa um balanceador de carga de aplicativo interno para criptografar o tráfego de entrada para os contêineres do Windows. A criptografia em trânsito ajuda a evitar o vazamento de dados.
  • Contêineres do Windows: ajudam a fornecer um ambiente seguro e isolado para aplicativos conteinerizados.

Confiabilidade

  • Balanceamento de carga: a arquitetura usa várias camadas do Cloud Load Balancing para distribuir o tráfego entre os gateways do Envoy e os contêineres do Windows.
  • Tolerância a falhas: essa arquitetura é tolerante a falhas e não tem um ponto único de falha. Esse design ajuda a garantir que ele esteja sempre disponível, mesmo que um ou mais componentes falhem.
  • Escalonamento automático: a arquitetura usa escalonamento automático para escalonar o número de gateways do Envoy e contêineres do Windows com base na carga. O escalonamento automático garante que os gateways e os aplicativos podem lidar com picos de tráfego sem problemas de desempenho.
  • Monitoramento: a arquitetura usa o Google Cloud Managed Service para Prometheus e o Cloud Operations para monitorar a integridade dos gateways do Envoy e dos contêineres do Windows. O monitoramento ajuda a identificar problemas precocemente e antes que eles interrompam seus aplicativos.

Otimização de custos

  • Escolha os tipos de instância certos para suas cargas de trabalho: considere os seguintes fatores ao escolher os tipos de instância:
    • O número de vCPUs e a memória que seus aplicativos exigem
    • A carga de tráfego esperada para seus aplicativos
    • A necessidade de os usuários terem aplicativos altamente disponíveis
  • Usar o escalonamento automático: o escalonamento automático pode ajudar a economizar dinheiro ao escalar automaticamente as cargas de trabalho do Windows vertical e horizontalmente.

  • Usar o Cloud Service Mesh e os gateways do Envoy: o Cloud Service Mesh e os gateways do Envoy podem ajudar a economizar dinheiro ao rotear o tráfego de maneira eficiente para seus aplicativos Windows. Usar mais o roteamento eficiente reduz a largura de banda necessária. Esse uso também pode ajudar a melhorar o desempenho desses aplicativos.

  • Usar redes de nuvem privada virtual (VPC) compartilhadas: as redes de nuvem privada virtual compartilhadas permitem compartilhar uma VPC única em vários projetos. O compartilhamento pode ajudar a economizar dinheiro, reduzindo o número de VPCs que você precisa criar e gerenciar.

Eficiência operacional

  • Vários domínios com um único balanceador de carga interno: a arquitetura usa balanceadores de carga de aplicativo internos para descarregar o tráfego SSL. Cada proxy de destino HTTPS pode oferecer suporte a vários certificados SSL (até o máximo permitido) para gerenciar vários aplicativos com domínios diferentes.
  • Infraestrutura como código (IaC): para gerenciar a infraestrutura, a arquitetura pode ser implantada usando a IaC. A IaC ajuda a garantir que sua infraestrutura seja consistente e repetível.

Implantação

Para implantar essa arquitetura, consulte Implantar aplicativos Windows em execução em Kubernetes gerenciados.

A seguir

Colaboradores

Autor: Eitan Eibschutz | Consultor de soluções técnicas da equipe

Outros colaboradores: