Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: AKS no Azure Local
Ao configurar o cluster AKS Arc, você precisa de uma maneira de tornar os serviços acessíveis fora do cluster. O tipo LoadBalancer é ideal para essa acessibilidade, mas o IP externo continua pendente. A extensão MetalLB do Kubernetes habilitado pelo Azure Arc é uma ferramenta que permite gerar IPs externos para seus aplicativos e serviços. Os clusters do Kubernetes habilitados para Arc podem se integrar ao MetalLB usando a extensão do MetalLB para Kubernetes habilitado para Azure Arc.
Para tornar os serviços acessíveis fora do cluster, o MetalLB precisa de endereços IP. O MetalLB se encarrega de atribuir e liberar esses endereços conforme necessário quando você cria serviços, mas distribui somente os IPs que estão nos pools configurados. Quando o MetalLB atribui um endereço IP externo a um serviço, informa à rede fora do cluster que esse IP pertence ao cluster. Essa comunicação é feita usando protocolos de rede padrão, como Protocolo de Resolução de Endereço (ARP) ou BGP (Border Gateway Protocol).
- 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) a fim de tornar esses IPs acessíveis na rede local. Do ponto de vista da LAN, a máquina que faz o anúncio 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 os computadores 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 a mecanismos de política BGP.
O MetalLB tem dois componentes:
- Controlador: responsável por alocar um IP para cada serviço do
type=loadbalancer. - Locutor: responsável por anunciar o IP usando o protocolo
ARPouBGP. Para atender ao requisito de HA (alta disponibilidade), a implantação do alto-falante é um daemonset.
Observação
- Os pods de alto-falante usam a rede 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ó do cluster.
- No modo ARP, um dos pods de alto-falante é selecionado como líder. Em seguida, o sistema anuncia o IP usando uma mensagem de broadcast ARP, vinculando o IP ao endereço MAC do nó em que reside. Assim, todo o tráfego atinge primeiro um nó e, em seguida, o 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 guia Pares BGP . Normalmente, um par BGP é um comutador TOR. Para transmitir as informações de roteamento BGP, os pares BGP devem ser configurados para reconhecer o IP e o ASN dos nós do cluster. Quando você usa BGP com ECMP (Equal-Cost MultiPath), o tráfego atinge todos os nós de modo uniforme e, assim, obtém o balanceamento de carga real.
Comparar os modos MetalLB L2 (ARP) e BGP
A escolha entre o modo L2 e BGP com MetalLB depende de seus requisitos específicos, da infraestrutura de rede e dos cenários de implantação:
| Aspecto | MetalLB no modo L2 (ARP) | MetalLB no modo BGP |
|---|---|---|
| Visão geral | No modo de camada 2, um nó K8s assume a responsabilidade de publicitar um serviço na rede local. Do ponto de vista da rede, parece que o nó K8s tem vários endereços IP atribuídos ao seu adaptador de rede. | No modo BGP, cada nó K8s em seu cluster estabelece uma sessão de pareamento BGP com seus roteadores de rede e usa essa sessão de pareamento para anunciar os IPs de serviços de cluster externos. |
| Atribuição de endereço IP | Os pools de endereços IP do MetalLB devem estar na mesma sub-rede que os nós K8s. | Os pools de endereços IP do MetalLB 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, só precisa especificar um CIDR de IP ou pool de IP ao configurar o MetalLB. | Alta. A configuração do BGP exige 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 e médio porte. | Adequado para topologias de rede complexas e implantações K8s em grande escala. |
| Compatibilidade com a rede de infraestrutura | Funciona com qualquer rede, mas pode causar inundação 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ó. | Exige suporte para BGP na infraestrutura da rede. |
| Engenharia de tráfego | Controle limitado do roteamento do tráfego. | Controle refinado do roteamento do tráfego usando atributos de BGP. |
| Conectividade externa | Requer mais configuração para conectividade externa. | Fornece conectividade contínua com redes externas usando o roteamento BGP. |
perguntas frequentes
Uma instância do MetalLB pode ser reutilizada em clusters AKS Arc?
Não, o MetalLB não pode ser reutilizado em clusters AKS Arc. O MetalLB existe como pods em um cluster Kubernetes, e os balanceadores de carga são recursos personalizados (CRs). Você deve instalar a extensão K8s do MetalLB Arc usando a CLI do Azure, o portal do Azure ou modelos do Azure Resource Manager e criar balanceadores de carga para cada cluster do AKS Arc.
