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:
- 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
- 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 , BGP o 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