Ao usar o vSphere with Tanzu com a rede vDS, o HAProxy fornece balanceamento de carga para desenvolvedores que acessam o plano de controle do Tanzu Kubernetes e para serviços do Kubernetes do tipo balanceador de carga. Revise as topologias possíveis que você pode implementar para o balanceador de carga HAProxy.

Redes de carga de trabalho no Supervisor Cluster

Para configurar um Supervisor Cluster com a pilha de rede do vSphere, você deve conectar todos os hosts do cluster a um vSphere Distributed Switch. Dependendo da topologia que você implementar para as Supervisor Cluster Redes de Carga de Trabalho, crie um ou mais grupos de portas distribuídas. Você designa os grupos de portas como Redes de Carga de Trabalho para vSphere Namespaces.

Antes de adicionar um host a um Supervisor Cluster, você deve adicioná-lo a todos os vSphere Distributed Switches que fazem parte do cluster.

As redes de carga de trabalho fornecem conectividade aos nós dos clusters Tanzu Kubernetes e às VMs de plano de controle do Supervisor Cluster. A rede de carga de trabalho que fornece conectividade às VMs do plano de controle do Kubernetes é chamada de rede de carga de trabalho primária. Cada Supervisor Cluster deve ter uma rede de carga de trabalho primária. Você deve designar um dos grupos de portas distribuídas como a rede de carga de trabalho primária para o Supervisor Cluster.
Observação: As redes de carga de trabalho só são adicionadas quando você ativa o Supervisor Cluster e não podem ser adicionadas mais tarde.

As VMs de plano de controle do Kubernetes no Supervisor Cluster usam três endereços IP do intervalo de endereços IP que é atribuído à rede de carga de trabalho primária. Cada nó de um cluster Tanzu Kubernetes tem um endereço IP separado atribuído do intervalo de endereços da Rede de Carga de Trabalho que é configurado com o namespace onde o cluster Tanzu Kubernetes é executado.

Alocação de Intervalos de IPs

Ao planejar a topologia de rede do Supervisor Cluster com o balanceador de carga do Proxy HA, planeje ter dois tipos de intervalos de IP:
  • Um intervalo para alocar IPs virtuais para o HAProxy. O intervalo de IPs que você configura para os servidores virtuais do HAProxy é reservado pelo dispositivo do balanceador de carga. Por exemplo, se o intervalo de IP virtual for 192.168.1.0/24, todos os hosts nesse intervalo não serão acessíveis para tráfego diferente do tráfego de IP virtual.
    Observação: Você não deve configurar um gateway dentro do intervalo de IPs virtuais do HAProxy, pois todas as rotas para esse gateway falharão.
  • Um intervalo de IPs para os nós dos clusters Supervisor Cluster e Tanzu Kubernetes. Cada VM de plano de controle do Kubernetes no Supervisor Cluster tem um endereço IP atribuído, que perfaz um total de três endereços IP. Cada nó de um cluster Tanzu Kubernetes também tem um IP separado atribuído. Você deve atribuir um intervalo de IP exclusivo a cada rede de carga de trabalho no Supervisor Cluster que você configurar para um namespace.

Um exemplo de configuração com uma rede / 24:

  • Rede: 192.168.120.0/24
  • HAProxy VIPs: 192.168.120.128/25
  • 1 endereço IP para a interface de carga de trabalho do HAProxy: 192.168.120.5

Dependendo dos IPs que estão livres nos primeiros 128 endereços, você pode definir intervalos de IP para Redes de Carga de Trabalho no Supervisor Cluster, por exemplo:

  • 192.168.120.31-192.168.120.40 para a rede de carga de trabalho primária
  • 192.168.120.51-192.168.120.60 para outra rede de carga de trabalho
Observação: Os intervalos que você define para Redes de Carga de Trabalho não devem se sobrepor ao intervalo VIP do HAProxy.

Topologia de rede HAProxy

Há duas opções de configuração de rede para implantar o HAProxy: Padrão (Default) e Front-end (Frontend). A rede padrão tem 2 NICs: uma para a rede de gerenciamento e uma para a rede de carga de trabalho. A rede de front-end tem 3 NICs: rede de gerenciamento, rede de carga de trabalho e a rede de front-end para clientes. A tabela lista e descreve as características de cada rede.

Para instalações de produção, é recomendável implantar o balanceador de carga HAProxy usando a configuração de Rede de front-end (Frontend Network). Se você implantar o balanceador de carga HAProxy usando a configuração Padrão (Default), é recomendável atribuir um tamanho de bloco de endereço IP / 24 à rede de carga de trabalho. Para ambas as opções de configuração, o DHCP não é recomendado.
Rede Características
Gerenciamento(Management)
O Cluster de Supervisor usa a rede de gerenciamento para se conectar e programar o balanceador de carga HAProxy.
  • O endpoint da API do HAProxy Data Plane está vinculado à interface de rede conectada à rede de gerenciamento.
  • O endereço IP de gerenciamento atribuído à VM do plano de controle do HAProxy deve ser um IP estático na rede de gerenciamento para que o Cluster de Supervisor possa se conectar de forma confiável à API do balanceador de carga.
  • O gateway padrão para a VM HAProxy deve estar nesta rede.
  • As consultas DNS devem ocorrer nesta rede.
Carga de trabalho (Workload)
A VM do plano de controle do HAProxy usa a rede de carga de trabalho para acessar os serviços nos nós do cluster do supervisor e do Tanzu Kubernetes.
  • A VM do plano de controle do HAProxy encaminha o tráfego para os nós de cluster do Supervisor e do Tanzu Kubernetes nessa rede.
  • Se a VM do plano de controle do HAProxy for implantada no modo padrão (dois NICs), a rede de carga de trabalho deverá fornecer as redes lógicas usadas para acessar os serviços do balanceador de carga.
  • Na configuração Padrão (Default), os IPs virtuais do balanceador de carga e os IPs do nó do cluster Kubernetes virão dessa rede. Eles serão definidos como intervalos separados e não sobrepostos na rede.
Front-end (Frontend) (opcional)

Clientes externos (como usuários ou aplicativos) que acessam cargas de trabalho de cluster usam a rede de front-end para acessar serviços de balanceamento de carga de back-end usando endereços IP virtuais.

  • A rede de front-end só é usada quando a VM do plano de controle do HAProxy é implantada com três NICs.
  • Recomendado para instalações de produção.
  • A rede de front-end é onde você expõe o endereço IP virtual (VIP). O HAProxy balanceará e encaminhará o tráfego para o back-end apropriado.

O diagrama abaixo ilustra uma implantação do HAProxy usando uma topologia de rede de front-end (Frontend Network). O diagrama indica onde os campos de configuração são esperados durante o processo de instalação e configuração.

Supervisor Cluster

Supervisor Cluster

  • VMs de plano de controle do Kubernetes
  • Os nós dos clusters Tanzu Kubernetes.
  • O intervalo de IPs virtuais do HAProxy no qual os serviços externos e os usuários de DevOps se conectam. Nessa configuração, o HAProxy é implantado com duas NICs virtuais (configuração padrão (Default)), uma conectada à rede de gerenciamento e uma segunda conectada à rede de carga de trabalho primária. Você deve planejar a alocação de IPs virtuais em uma sub-rede separada da rede de carga de trabalho primária.
Supervisor Cluster vSphere Namespaces Supervisor Cluster Tanzu Kubernetes
Figura 1. Supervisor Cluster Suportado por uma rede

Cluster de supervisor com suporte de uma rede
O caminho de tráfego para usuários de DevOps ou aplicativos externos é o seguinte:
  1. O usuário DevOps ou o serviço externo envia o tráfego para um IP virtual na sub-rede Workload Network do grupo de portas distribuídas.
  2. O HAProxy faz o balanceamento de carga do tráfego de IP virtual para o IP do nó do Tanzu Kubernetes ou para o IP da VM do plano de controle. O HAProxy reivindica o endereço IP virtual para que possa balancear a carga do tráfego proveniente desse IP.
  3. A VM do plano de controle ou o nó do cluster Tanzu Kubernetes entrega o tráfego aos pods de destino em execução no cluster Supervisor Cluster ou Tanzu Kubernetes, respectivamente.

Supervisor Cluster Topologia com uma rede de carga de trabalho isolada e proxy de alta disponibilidade com duas NICs virtuais

Nessa topologia, você configura redes para os seguintes componentes:
  • VMs de plano de controle do Kubernetes. Uma rede de carga de trabalho primária para lidar com o tráfego para VMs de plano de controle do Kubernetes.
  • Tanzu Kubernetes nós do cluster. Uma rede de carga de trabalho. que você atribui a todos os namespaces no Supervisor Cluster. Essa rede conecta os nós do cluster Tanzu Kubernetes.
  • IPs virtuais do HAProxy. Nessa configuração, a VM HAProxy é implantada com duas NICs virtuais (configuração padrão (Default)). Você pode conectar a VM HAProxy à Rede de Carga de Trabalho Primária ou à Rede de Carga de Trabalho que você usa para namespaces. Você também pode conectar o HAProxy a uma rede de VM que já existe no vSphere e é roteável para as redes primária e de carga de trabalho.
O Supervisor Cluster está conectado ao grupo de portas distribuídas que suporta a Rede de Carga de Trabalho Primária e os clusters Tanzu Kubernetes estão conectados a um grupo de portas distribuídas que apoiam a Rede de Carga de Trabalho. Os dois grupos de portas devem ser roteáveis na camada 3. Você pode implementar o isolamento de camada 2 por meio de VLANs. A filtragem de tráfego de Camada 3 é possível por meio de gateways e firewalls de IP.
Figura 2. Supervisor Cluster com uma rede de carga de trabalho isolada

Cluster de supervisor com uma rede de carga de trabalho isolada
O caminho de tráfego para usuários de DevOps ou serviço externo é o seguinte:
  1. O usuário DevOps ou o serviço externo envia o tráfego para um IP virtual. O tráfego é roteado para a rede na qual o HAProxy está conectado.
  2. O HAProxy faz o balanceamento de carga do tráfego de IP virtual para o IP do nó do Tanzu Kubernetes ou para a VM de plano de controle. O HAProxy está reivindicando o endereço IP virtual para que ele possa balancear a carga do tráfego proveniente desse IP.
  3. A VM do plano de controle ou o nó do cluster Tanzu Kubernetes entrega o tráfego aos pods de destino em execução no cluster Tanzu Kubernetes.

Supervisor Cluster Topologia com várias redes de carga de trabalho e proxy de alta disponibilidade com duas NICs virtuais

Nessa topologia, você pode configurar um grupo de portas para atuar como a rede de carga de trabalho primária e um grupo de portas dedicado para servir como a rede de carga de trabalho para cada namespace. O HAProxy é implantado com duas NICs virtuais (configuração padrão (Default)) e você pode conectá-lo à rede de carga de trabalho primária ou a qualquer uma das redes de carga de trabalho. Você também pode usar uma rede de VM existente que é roteável para as Redes Primária e de Carga de Trabalho.

O caminho de tráfego para os usuários DevOps e serviços externos nesta topologia é o mesmo que com a topologia de rede de carga de trabalho isolada.
Figura 3. Supervisor Cluster Suportado por várias redes de carga de trabalho isoladas

Cluster de supervisor com suporte por várias redes de carga de trabalho isoladas

Supervisor Cluster Topologia com várias redes de carga de trabalho e proxy de alta disponibilidade com três NICs virtuais

Nessa configuração, você implanta a VM HAProxy com três NICs virtuais, conectando assim o HAProxy a uma rede de front-end. Os usuários de DevOps e os serviços externos podem acessar o HAProxy por meio de IPs virtuais na rede de front-end. A implantação do proxy HA com três NICs virtuais é recomendada para ambientes de produção.
Figura 4. HAProxy implantado com três NICs virtuais

HAProxy implantado com três NICs virtuais

Selecionando entre as topologias possíveis

Antes de selecionar entre cada uma das topologias possíveis, avalie as necessidades do seu ambiente:

  1. Você precisa de isolamento de camada 2 entre os clusters Supervisor Cluster e Tanzu Kubernetes?
    1. Não: a topologia mais simples com uma rede de carga de trabalho atendendo a todos os componentes.
    2. Sim: a topologia de rede de carga de trabalho isolada com uma rede primária e uma rede de carga de trabalho separadas.
  2. Você precisa de mais isolamento de camada 2 entre seus clusters Tanzu Kubernetes?
    1. Não: topologia de rede de carga de trabalho isolada com redes primárias e de carga de trabalho separadas.
    2. Sim: topologia de várias redes de carga de trabalho com uma rede de carga de trabalho separada para cada namespace e uma rede de carga de trabalho primária dedicada.
  3. Deseja impedir que seus usuários de DevOps e serviços externos sejam roteados diretamente para VMs de plano de controle do Kubernetes e Tanzu Kubernetes nós de cluster?
    1. Não: configuração de dois NIC HAProxy.
    2. Sim: três NIC HAProxy configuração. Essa configuração é recomendada para ambientes de produção