Partilhar via


Implantar extensão para clusters Kubernetes habilitados para MetalLB for Azure Arc usando a CLI do Azure

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

O principal objetivo de um balanceador de carga é distribuir o tráfego entre vários nós em um cluster Kubernetes. Isso pode ajudar a evitar tempo de inatividade e melhorar o desempenho geral dos aplicativos. O AKS habilitado pelo Azure Arc dá suporte à criação de uma instância do balanceador de carga MetalLB em seu cluster Kubernetes usando uma extensão Arc.

Pré-requisitos

  • Um cluster Kubernetes habilitado para Azure Arc com pelo menos um nó Linux. Você pode criar um cluster Kubernetes no Azure Local, versão 23H2 usando a CLI do Azure ou o portal do Azure. AKS no Azure Local, os clusters da versão 23H2 são habilitados para Arc por padrão.
  • Verifique se você tem endereços IP suficientes para o balanceador de carga. Para o AKS no Azure Local, versão 23H2, certifique-se de que os endereços IP reservados para o balanceador de carga não entrem em conflito com os endereços IP em redes lógicas Arc VM e IPs do plano de controle. Para obter mais informações sobre planejamento de endereços IP e rede no Kubernetes, consulte Requisitos de rede para Kubernetes e Planejamento de endereços IP para Kubernetes.
  • Este guia de instruções pressupõe que você entenda como o Metal LB funciona. Para obter mais informações, consulte a visão geral do MetalLB for Kubernetes.

Instalar a extensão da CLI do Azure

Execute o seguinte comando para instalar a extensão necessária da CLI do Azure:

az extension add -n k8s-runtime --upgrade

Ativar extensão Arc para MetalLB

Configure as seguintes variáveis antes de continuar:

Parâmetro Description
$subId ID de assinatura do Azure do cluster do Kubernetes.
$rgName Grupo de recursos do Azure do seu cluster Kubernetes.
$clusterName O nome do cluster do Kubernetes.

Opção 1: Ativar a extensão Arc para MetalLB usando o az k8s-runtime load-balancer enable comando

Para habilitar a extensão Arc para MetalLB usando o comando a seguir, você deve ter permissão Graph Application.Read.All. Você pode verificar se tem essa permissão fazendo logon em sua assinatura do Azure e executando o seguinte comando:

`az ad sp list --filter "appId eq '087fca6e-4606-4d41-b3f6-5ebdf75b8b4c'" --output json`

Se o comando falhar, entre em contato com o administrador de locatário do Azure para obter Application.Read.All a função.

Se você tiver a permissão, poderá usar o az k8s-runtime load-balancer enable comando para instalar a extensão Arc e registrar o provedor de recursos para seu cluster Kubernetes. O --resource-uri parâmetro refere-se ao ID do gerenciador de recursos do cluster do Kubernetes.

az k8s-runtime load-balancer enable --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName

Opção 2: Ativar a extensão Arc para MetalLB usando o az k8s-extension add comando

Se você não tiver permissão de gráfico Application.Read.All, você pode seguir estas etapas:

  1. Registe-se se Microsoft.KubernetesRuntime RP ainda não o fez. Observe que você só precisa se registrar uma vez por assinatura do Azure. Você também pode registrar provedores de recursos usando o portal do Azure. Para obter mais informações sobre como registrar provedores de recursos e permissões necessárias, consulte como registrar um provedor de recursos.
az provider register -n Microsoft.KubernetesRuntime

Você pode verificar se o provedor de recursos foi registrado com êxito executando o seguinte comando.

az provider show -n Microsoft.KubernetesRuntime -o table

Resultado esperado:

Namespace                    RegistrationPolicy    RegistrationState
---------------------------  --------------------  -------------------
Microsoft.KubernetesRuntime  RegistrationRequired  Registered
  1. Para instalar a extensão Arc para MetalLB, obtenha o AppID do provedor de recursos de extensão MetalLB e execute o comando extension create. Você deve executar os seguintes comandos uma vez por cluster do Arc Kubernetes.

Obtenha a ID do aplicativo da extensão Arc executando az ad sp list. Para executar o comando a seguir, você deve ser um user membro do seu locatário do Azure. Para obter mais informações sobre associação de usuário e convidado, consulte permissões de usuário padrão no ID do Microsoft Entra.

$objID = az ad sp list --filter "appId eq '00001111-aaaa-2222-bbbb-3333cccc4444'" --query "[].id" --output tsv

Depois de ter o $objID, você pode instalar a extensão MetalLB Arc no seu cluster Kubernetes. Para executar o comando abaixo, você precisa ter a função de colaborador da extensão Kubernetes.

az k8s-extension create --cluster-name $clusterName -g $rgName --cluster-type connectedClusters --extension-type microsoft.arcnetworking --config k8sRuntimeFpaObjectId=$objID -n arcnetworking

Implante o balanceador de carga MetalLB em seu cluster Kubernetes

Agora você pode criar um balanceador de carga para seu cluster Kubernetes remotamente executando o az k8s-runtime load-balancer create comando. Este comando cria um recurso personalizado do tipo IPAddressPool no namespace kube-system.

Configure as seguintes variáveis antes de continuar:

Parâmetro Description
$lbName O nome da instância do balanceador de carga do MetalLB.
$advertiseMode O modo para o seu balanceador de carga MetalLB. Os valores suportados são ARP, BGP, ou Both.
$ipRange O intervalo de IP para o balanceador de carga MetalLB no ARP modo ou Both .

Se o modo de anúncio for BGP ou Both, ele também cria um recurso personalizado do tipo BGPAdvertisement. Se o modo de anúncio for ARP ou Both, ele também cria um recurso personalizado do tipo L2Advertisement:

az k8s-runtime load-balancer create --load-balancer-name $lbName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --addresses $ipRange --advertise-mode $advertiseMode

Criar um par BGP para seu cluster Kubernetes

Crie um par BGP para seu cluster Kubernetes remotamente executando o az k8s-runtime bgp-peer create comando. Observe que o par BGP é eficaz para todos os balanceadores de carga que têm BGP ou Both anunciam o modo. A criação de pares BGP é obrigatória se você estiver usando o balanceador de carga MetalLB no BGP modo ou Both no modo.

Configure as seguintes variáveis antes de continuar:

Parâmetro Description
$peerName O nome do seu par BGP.
$myASN Número AS a ser usado para o final local da sessão.
$peerASN Número AS a esperar do final remoto da sessão.
$peerIP Endereço para discar ao estabelecer a sessão.
az k8s-runtime bgp-peer create --bgp-peer-name $peerName --resource-uri subscriptions/$subId/resourceGroups/$rgName/providers/Microsoft.Kubernetes/connectedClusters/$clusterName --my-asn $myASN --peer-asn $peerASN --peer-address $peerIP

Próximos passos