Faça a gestão e a escalabilidade da rede para aplicações Windows executadas no Kubernetes gerido

Last reviewed 2024-08-14 UTC

Esta arquitetura de referência oferece uma solução altamente disponível e escalável que usa o Cloud Service Mesh e os gateways do Envoy para gerir o tráfego de rede para aplicações Windows executadas no Google Kubernetes Engine (GKE). Explica como gerir esse tráfego de rede através de um serviço que pode encaminhar o tráfego para pods e para um proxy compatível com xDS de código aberto. A utilização de uma arquitetura como esta pode ajudar a reduzir os custos e melhorar a gestão da rede.

Este documento destina-se a arquitetos da nuvem, administradores de rede e profissionais de TI responsáveis pela conceção e gestão de aplicações Windows executadas no GKE.

Arquitetura

O diagrama seguinte mostra uma arquitetura para gerir a rede de aplicações Windows executadas no GKE através da malha de serviços da nuvem e dos gateways do Envoy:

Os dados fluem através de um Application Load Balancer interno e de um gateway Envoy.

A arquitetura inclui os seguintes componentes:

  • Um cluster regional do GKE com pools de nós do Windows e do Linux.
  • Duas aplicações Windows em execução em dois pods do GKE separados.
  • O Cloud Service Mesh cria e gere as rotas de tráfego para os NEGs de cada pod do GKE. Cada rota é mapeada para um scope específico. Que scope identifica de forma exclusiva um gateway de entrada do Cloud Service Mesh.
  • Rotas HTTP que mapeiam os serviços de back-end para a malha de serviços na nuvem.
  • EnvoyEnvoy que atuam como um gateway do Envoy para o cluster do GKE.
  • Gateways Envoy que são executados em nós Linux. Os gateways estão configurados para direcionar o tráfego para as aplicações Windows através dos serviços que correspondem a essas aplicações. 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 aplicações interno que termina o tráfego SSL e direciona todo o tráfego de entrada externo para os gateways do Envoy.

Produtos usados

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

Google Cloud produtos

  • Cloud Load Balancing: um portefólio de balanceadores de carga globais, escaláveis e de elevado desempenho, bem como balanceadores de carga regionais.
  • Google Kubernetes Engine (GKE): um serviço Kubernetes que pode usar para implementar e operar aplicações em contentores em grande escala através da infraestrutura da Google.
  • Cloud Service Mesh: um conjunto de ferramentas que ajuda a monitorizar e gerir uma malha de serviços fiável no local ou no Google Cloud.

Produtos de terceiros

  • Envoy Gateway: gerencia um proxy Envoy como um gateway de aplicação autónomo ou baseado no Kubernetes.
  • API Gateway: Um projeto oficial do Kubernetes focado no encaminhamento L4 e L7 no Kubernetes.

Exemplo de utilização

O principal exemplo de utilização desta arquitetura de referência é gerir o tráfego de rede para aplicações Windows executadas no GKE. Esta arquitetura oferece as seguintes vantagens:

Gestão de rede simplificada: a malha de serviços na nuvem e as gateways Envoy oferecem uma gestão de rede simplificada através de um plano de controlo centralizado que gere o tráfego de rede para as aplicações. Estas aplicações podem ser aplicações Linux ou Windows executadas no GKE ou no Compute Engine. A utilização deste esquema de gestão de rede simplificado reduz a necessidade de configuração manual.

Escalabilidade e disponibilidade melhoradas: para satisfazer as suas exigências em constante mudança, use a malha de serviços na nuvem e os gateways do Envoy para dimensionar as suas aplicações Linux e Windows. Também pode usar gateways Envoy para oferecer alta disponibilidade às suas aplicações através do equilíbrio de carga do tráfego em vários pods.

Segurança melhorada: use gateways Envoy para adicionar funcionalidades de segurança às suas aplicações Linux e Windows, como a terminação SSL, a autenticação e a limitação de taxas.

Custos reduzidos: o Cloud Service Mesh e as gateways do Envoy podem ajudar a reduzir os custos de gestão do tráfego de rede para aplicações Linux e Windows.

Considerações de design

Esta secção fornece orientações para ajudar a desenvolver uma arquitetura que cumpra os seus requisitos específicos de segurança, fiabilidade, custo e eficiência.

Segurança

  • Rede segura: a arquitetura usa um Application Load Balancer interno para encriptar o tráfego recebido para os contentores do Windows. A encriptação em trânsito ajuda a evitar a fuga de dados.
  • Contentores Windows: os contentores Windows ajudam a oferecer um ambiente seguro e isolado para aplicações contentorizadas.

Fiabilidade

  • Balanceamento de carga: a arquitetura usa várias camadas do Cloud Load Balancing para distribuir o tráfego pelos gateways do Envoy e pelos contentores do Windows.
  • Tolerância a falhas: esta arquitetura é tolerante a falhas e não tem um único ponto de falha. Este design ajuda a garantir que está sempre disponível, mesmo que um ou mais componentes falhem.
  • Dimensionamento automático: a arquitetura usa o dimensionamento automático para dimensionar automaticamente o número de gateways Envoy e contentores Windows com base na carga. O dimensionamento automático ajuda a garantir que os gateways e as aplicações conseguem processar picos de tráfego sem sofrer problemas de desempenho.
  • Monitorização: a arquitetura usa o Google Cloud Managed Service for Prometheus e o Cloud Operations para monitorizar o estado dos gateways do Envoy e dos contentores Windows. A monitorização ajuda a identificar problemas antecipadamente e, potencialmente, a impedir que interrompam as suas aplicações.

Otimização de custos

  • Escolha os tipos de instâncias certos para as suas cargas de trabalho: tenha em atenção os seguintes fatores ao escolher os tipos de instâncias:
    • O número de CPUs virtuais e memória que as suas aplicações requerem
    • A carga de tráfego esperada para as suas aplicações
    • A necessidade de os utilizadores terem aplicações altamente disponíveis
  • Use a escala automática: a escala automática pode ajudar a poupar dinheiro ao escalar automaticamente as suas cargas de trabalho do Windows vertical e horizontalmente.

  • Use o Cloud Service Mesh e os gateways do Envoy: O Cloud Service Mesh e os gateways do Envoy podem ajudar a poupar dinheiro através do encaminhamento eficiente do tráfego para as suas aplicações Windows. A utilização de um encaminhamento mais eficiente pode ajudar a reduzir a quantidade de largura de banda que tem de comprar. Também pode ajudar a melhorar o desempenho dessas aplicações.

  • Use redes da nuvem virtual privada (VPC) partilhadas: as redes da nuvem virtual privada partilhadas permitem-lhe partilhar uma única VPC em vários projetos. A partilha pode ajudar a poupar dinheiro ao reduzir o número de VPCs que tem de criar e gerir.

Eficiência operacional

  • Vários domínios com um único balanceador de carga interno: a arquitetura usa balanceadores de carga de aplicações internos para descarregar o tráfego SSL. Cada proxy de destino HTTPS pode suportar vários certificados SSL (até ao máximo suportado) para gerir várias aplicações com domínios diferentes.
  • Infraestrutura como código (IaC): para gerir a infraestrutura, a arquitetura pode ser implementada através da IaC. A IaC ajuda a garantir que a sua infraestrutura é consistente e repetível.

Implementação

Para implementar esta arquitetura, consulte o artigo Implemente aplicações Windows executadas no Kubernetes gerido.

O que se segue?

Colaboradores

Autor: Eitan Eibschutz | Staff Technical Solutions Consultant

Outros colaboradores: