Compartir a través de


Implementación de la extensión para MetalLB para clústeres de Kubernetes habilitados para Azure Arc mediante la CLI de Azure

Se aplica a: Azure Local, versión 23H2

El propósito principal de un equilibrador de carga es distribuir el tráfico entre varios nodos de un clúster de Kubernetes. Esto puede ayudar a evitar el tiempo de inactividad y mejorar el rendimiento general de las aplicaciones. AKS habilitado por Azure Arc admite la creación de una instancia del equilibrador de carga MetalLB en el clúster de Kubernetes mediante una extensión de Arc.

Requisitos previos

  • Un clúster de Kubernetes habilitado para Azure Arc con al menos un nodo de Linux. Puede crear un clúster de Kubernetes en Azure Local, versión 23H2 mediante la CLI de Azure o Azure Portal. AKS en Azure Local, los clústeres de la versión 23H2 están habilitados de forma predeterminada en Arc.
  • Asegúrese de que tiene suficientes direcciones IP para el equilibrador de carga. Para AKS en Azure Local, versión 23H2, asegúrese de que las direcciones IP reservadas para el equilibrador de carga no entran en conflicto con las direcciones IP de las redes lógicas de máquinas virtuales de Arc y las direcciones IP del plano de control. Para más información sobre el planeamiento de direcciones IP y las redes en Kubernetes, consulte Requisitos de redes para Kubernetes y planeamiento de direcciones IP para Kubernetes.
  • En esta guía paso a paso se supone que comprende cómo funciona Metal LB. Para obtener más información, consulte la introducción a MetalLB para Kubernetes.

Instalación de la extensión de la CLI de Azure

Ejecute el siguiente comando para instalar la extensión de la CLI de Azure necesaria:

az extension add -n k8s-runtime --upgrade

Habilitación de la extensión arc para MetalLB

Configure las siguientes variables antes de continuar:

Parámetro Descripción
$subId Identificador de suscripción de Azure del clúster de Kubernetes.
$rgName Grupo de recursos de Azure del clúster de Kubernetes.
$clusterName Nombre del clúster de Kubernetes.

Opción 1: Habilitar la extensión arc para MetalLB mediante az k8s-runtime load-balancer enable el comando

Para habilitar la extensión arc para MetalLB mediante el siguiente comando, debe tener el permiso De Graph Application.Read.All. Puede comprobar si tiene este permiso iniciando sesión en la suscripción de Azure y ejecutando el siguiente comando:

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

Si se produce un error en el comando, póngase en contacto con el administrador de inquilinos de Azure para obtener Application.Read.All el rol.

Si tiene el permiso, puede usar el az k8s-runtime load-balancer enable comando para instalar la extensión de Arc y registrar el proveedor de recursos para el clúster de Kubernetes. El --resource-uri parámetro hace referencia al identificador del administrador de recursos del clúster de Kubernetes.

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

Opción 2: Habilitar la extensión arc para MetalLB mediante az k8s-extension add el comando

Si no tiene permiso de Graph Application.Read.All, puede seguir estos pasos:

  1. Registre si Microsoft.KubernetesRuntime RP aún no lo ha hecho. Tenga en cuenta que solo tiene que registrarse una vez por suscripción de Azure. También puede registrar proveedores de recursos mediante Azure Portal. Para obtener más información sobre cómo registrar proveedores de recursos y permisos necesarios, consulte cómo registrar un proveedor de recursos.
az provider register -n Microsoft.KubernetesRuntime

Puede comprobar si el proveedor de recursos se ha registrado correctamente ejecutando el siguiente comando.

az provider show -n Microsoft.KubernetesRuntime -o table

Resultado esperado:

Namespace                    RegistrationPolicy    RegistrationState
---------------------------  --------------------  -------------------
Microsoft.KubernetesRuntime  RegistrationRequired  Registered
  1. Para instalar la extensión arc para MetalLB, obtenga el AppID del proveedor de recursos de extensión MetalLB y, a continuación, ejecute el comando extension create. Debe ejecutar los siguientes comandos una vez por clúster de Kubernetes de Arc.

Para obtener el identificador de aplicación de la extensión de Arc, ejecute az ad sp list. Para ejecutar el comando siguiente, debe ser user miembro del inquilino de Azure. Para obtener más información sobre la pertenencia a usuarios e invitados, consulte permisos de usuario predeterminados en Microsoft Entra ID.

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

Una vez que tenga el $objID, puede instalar la extensión MetalLB Arc en el clúster de Kubernetes. Para ejecutar el comando siguiente, debe tener el rol colaborador de la extensión de Kubernetes.

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

Implementación del equilibrador de carga metalLB en el clúster de Kubernetes

Ahora puede crear un equilibrador de carga para el clúster de Kubernetes de forma remota mediante la ejecución del az k8s-runtime load-balancer create comando . Este comando crea un recurso personalizado de tipo IPAddressPool en el espacio de nombres kube-system.

Configure las siguientes variables antes de continuar:

Parámetro Descripción
$lbName Nombre de la instancia del equilibrador de carga MetalLB.
$advertiseMode Modo para el equilibrador de carga MetalLB. Los valores admitidos son ARP, BGPo Both.
$ipRange Intervalo IP del equilibrador de carga MetalLB en ARP modo o Both .

Si el modo de anuncio es BGP o Both, también crea un recurso personalizado de tipo BGPAdvertisement. Si el modo de anuncio es ARP o Both, también crea un recurso personalizado de 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

Creación de un par BGP para el clúster de Kubernetes

Cree un par BGP para el clúster de Kubernetes de forma remota mediante la ejecución del az k8s-runtime bgp-peer create comando . Tenga en cuenta que el par BGP es efectivo para todos los equilibradores de carga que tengan BGP o Both anuncien el modo. La creación de pares BGP es obligatoria si usa el equilibrador de carga MetalLB en BGP modo o Both .

Configure las siguientes variables antes de continuar:

Parámetro Descripción
$peerName Nombre del mismo nivel de BGP.
$myASN Número de AS que se va a usar para el final local de la sesión.
$peerASN Número de AS que se espera desde el final remoto de la sesión.
$peerIP Dirección que se va a marcar al establecer la sesión.
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

Pasos siguientes