Compartilhar via


Visão geral do MetalLB para clusters kubernetes

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

Ao configurar o cluster do AKS Arc, você precisa de uma maneira de tornar seus serviços acessíveis fora do cluster. O LoadBalancer tipo é ideal para essa acessibilidade, mas o IP externo permanece pendente. A extensão MetalLB Arc é uma ferramenta que permite gerar IPs externos para seus aplicativos e serviços. Os clusters kubernetes habilitados para Arc podem se integrar ao MetalLB usando a Arc Networking extensão k8s.

Para tornar seus serviços acessíveis fora do cluster, o MetalLB precisa de endereços IP. O MetalLB cuida da atribuição e liberação desses endereços conforme necessário quando você cria serviços, mas distribui apenas IPs que estão em seus pools configurados. Quando o MetalLB atribui um endereço IP externo a um serviço, ele informa à rede fora do cluster que esse IP pertence ao cluster. Essa comunicação é feita usando protocolos de rede padrão, como ARP ou BGP.

  • Modo de Camada 2 (ARP): no modo de camada 2, um nó K8s no cluster assume a propriedade do serviço e usa protocolos de descoberta de endereço padrão (ARP para IPv4) para tornar esses IPs acessíveis na rede local. Do ponto de vista da LAN, o computador locutor simplesmente tem vários endereços IP.
  • BGP: no modo BGP, todos os computadores no cluster estabelecem sessões de emparelhamento BGP com roteadores próximos que você controla e informam a esses roteadores como encaminhar o tráfego para os IPs de serviço. O uso do BGP permite o balanceamento de carga verdadeiro em vários nós e o controle de tráfego refinado devido aos mecanismos de política do BGP.

O MetalLB tem dois componentes:

  • Controlador: responsável por alocar IP para cada serviço de type=loadbalancer.
  • Locutor: responsável por anunciar o IP usando ARP o protocolo ou BGP . Para atender ao requisito de alta disponibilidade (HA), a implantação do locutor é um daemonset.

Observação

  • Os pods do locutor usam a rede de host; Ou seja, seu IP é o IP do nó, para que eles possam enviar mensagens de transmissão diretamente por meio do adaptador de rede do host.
  • O pod do controlador é um pod normal que reside em qualquer nó no cluster.

Arquitetura do MetalLB

  • No modo ARP, um dos pods do alto-falante é selecionado como o líder. Em seguida, ele anuncia o IP usando uma mensagem de transmissão ARP, associando o IP com o endereço MAC do nó em que ele reside. Assim, todo o tráfego primeiro atinge um nó e, em seguida, kube-proxy o espalha uniformemente para todos os pods de back-end do serviço.
  • No modo BGP, todos os nós de cluster estabelecem conexões com todos os pares BGP criados na BGP Peers guia. Normalmente, um par BGP é um comutador TOR. Para transmitir as informações de roteamento bgp, os pares BGP devem ser configurados para que eles reconheçam o IP e o ASN dos nós de cluster. Quando você usa BGP com ECMP (MultiPath de Custo Igual), o tráfego atinge uniformemente todos os nós e, portanto, obtém o verdadeiro balanceamento de carga.

Comparar os modos ARP (MetalLB L2) e BGP

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

Aspecto Modo MetalLB em L2 (ARP) MetalLB no modo BGP
Visão geral No modo de camada 2, um nó K8s assume a responsabilidade de anunciar um serviço para a rede local. Do ponto de vista da rede, parece que o nó K8s tem vários endereços IP atribuídos ao adaptador de rede. No modo BGP, cada nó K8s em seu cluster estabelece uma sessão de emparelhamento BGP com seus roteadores de rede e usa essa sessão de emparelhamento para anunciar os IPs de serviços de cluster externos.
Atribuição de endereço IP Os pools de endereços IP do MetallLB devem estar na mesma sub-rede que os nós K8s. Os pools de endereços IP do MetallLB podem estar em uma rede diferente dos nós K8s.
Complexidade da configuração Baixa: Como você está fornecendo endereços IP na mesma rede que os nós do Kubernetes, você só precisa especificar um CIDR ip ou um pool de IP ao configurar o MetalLB. Alta: A configuração do BGP requer conhecimento do protocolo BGP e uma compreensão da infraestrutura de rede.
Escalabilidade Limitado a redes de Camada 2, adequado para implantações K8s de pequeno a médio porte. Adequado para topologias de rede complexas e implantaçõ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, já que um único IP é usado para todos os serviços e a largura de banda de entrada do serviço é limitada à largura de banda de um único nó. Requer suporte a BGP na infraestrutura de rede.
Engenharia de tráfego Controle limitado sobre o roteamento de tráfego. Controle refinado sobre o roteamento de tráfego usando atributos BGP.
Conectividade externa Requer mais configuração para conectividade externa. Fornece conectividade perfeita com redes externas usando o roteamento BGP.

Próximas etapas