Share via


Descrição geral do MetalLB para clusters do Kubernetes

Aplica-se a: Azure Stack HCI, versão 23H2

Quando configurar o cluster do AKS Arc, precisa de uma forma de tornar os seus serviços acessíveis fora do cluster. O LoadBalancer tipo é ideal para esta acessibilidade, mas o IP externo permanece pendente. A extensão MetalLB Arc é uma ferramenta que lhe permite gerar IPs externos para as suas aplicações e serviços. Os clusters do Kubernetes compatíveis com o Arc podem ser integrados com o MetalLB com a Arc Networking extensão k8s.

Para tornar os seus serviços acessíveis fora do cluster, o MetalLB precisa de endereços IP. O MetalLB trata de atribuir e libertar estes endereços conforme necessário quando cria serviços, mas distribui apenas os IPs que estão nos conjuntos configurados. Quando o MetalLB atribui um endereço IP externo a um serviço, informa a rede fora do cluster de que este IP pertence ao cluster. Esta comunicação é efetuada através de protocolos de rede padrão, como o ARP ou o BGP.

  • Modo de camada 2 (ARP): no modo de camada 2, um nó K8s no cluster assume a propriedade do serviço e utiliza protocolos de deteção de endereços padrão (ARP para IPv4) para tornar esses IPs acessíveis na rede local. Do ponto de vista da LAN, o computador de anúncios tem simplesmente vários endereços IP.
  • BGP: no modo BGP, todos os computadores no cluster estabelecem sessões de peering BGP com routers próximos que controla e informem esses routers como reencaminhar o tráfego para os IPs de serviço. A utilização do BGP permite um verdadeiro balanceamento de carga em vários nós e um controlo de tráfego detalhado devido aos mecanismos de política do BGP.

O MetalLB tem dois componentes:

  • Controlador: responsável pela alocação de IP para cada serviço de type=loadbalancer.
  • Orador: responsável por anunciar o IP através ARP de ou BGP protocolo. Para satisfazer o requisito de elevada disponibilidade (HA), a implementação de orador é um daemonset.

Nota

  • Os pods de orador utilizam a rede de anfitrião; Ou seja, o IP é o IP do nó, para que possam enviar diretamente mensagens de difusão através da interface de rede do anfitrião.
  • O pod do controlador é um pod normal que reside em qualquer nó no cluster.

Arquitetura metalLB

  • No modo ARP, um dos pods dos altifalantes é selecionado como líder. Em seguida, anuncia o IP através de uma mensagem de difusão do ARP, vinculando o IP ao endereço MAC do nó onde se encontra. Assim, todo o tráfego atinge primeiro um nó e, em seguida, o kube-proxy distribui-o uniformemente para todos os pods de back-end do serviço.
  • No modo BGP, todos os nós de cluster estabelecem ligações com todos os elementos de rede BGP criados no BGP Peers separador. Normalmente, um elemento de rede BGP é um comutador TOR. Para difundir as informações de encaminhamento do BGP, os elementos de rede BGP têm de ser configurados para que reconheçam o IP e o ASN dos nós de cluster. Quando utiliza o BGP com o ECMP (Equal-Cost MultiPath), o tráfego atinge uniformemente todos os nós e, por conseguinte, consegue um verdadeiro balanceamento de carga.

Comparar os modos MetalLB L2 (ARP) e BGP

A escolha entre o modo L2 e BGP com MetalLB depende dos seus requisitos específicos, infraestrutura de rede e cenários de implementação:

Aspeto MetalLB no modo L2 (ARP) MetalLB no modo BGP
Descrição geral No modo de camada 2, um nó K8s assume a responsabilidade de anunciar um serviço à rede local. Do ponto de vista da rede, parece que o nó K8s tem vários endereços IP atribuídos à respetiva interface de rede. No modo BGP, cada nó K8s no cluster estabelece uma sessão de peering BGP com os routers de rede e utiliza essa sessão de peering para anunciar os IPs dos serviços de cluster externo.
Atribuição de endereços IP Os conjuntos de endereços IP metallLB têm de estar na mesma sub-rede que os nós K8s. Os conjuntos de endereços IP metallLB podem estar numa rede diferente dos nós K8s.
Complexidade da configuração Baixo. Uma vez que está a fornecer endereços IP na mesma rede que os nós do Kubernetes, só precisa de especificar um CIDR ip ou conjunto IP durante a configuração do MetalLB. Elevada. A configuração do BGP requer conhecimento do protocolo BGP e uma compreensão da sua infraestrutura de rede.
Escalabilidade Limitado a redes de Camada 2, adequadas para implementações K8s de pequena a média dimensão. Adequado para topologias de rede complexas e implementações K8s em larga escala.
Compatibilidade com a rede de infraestrutura Funciona com qualquer rede, mas pode causar inundações de ARP em grandes clusters K8s, uma vez que um único IP é utilizado para todos os serviços e a largura de banda de entrada do serviço está limitada à largura de banda de um único nó. Requer suporte BGP na infraestrutura de rede.
Engenharia de tráfego Controlo limitado sobre o encaminhamento de tráfego. Controlo detalhado sobre o encaminhamento de tráfego com atributos BGP.
Conectividade externa Requer mais configuração para conectividade externa. Fornece conectividade totalmente integrada com redes externas através do encaminhamento BGP.

Passos seguintes