Instalación de balanceadores de carga MetalLB: Red Hat OpenShift con NetApp
Esta página enumera las instrucciones de instalación y configuración del balanceador de carga MetalLB.
MetalLB es un balanceador de carga de red autohospedado instalado en su clúster OpenShift que permite la creación de servicios OpenShift de tipo balanceador de carga en clústeres que no se ejecutan en un proveedor de nube. Las dos características principales de MetalLB que trabajan juntas para soportar los servicios LoadBalancer son la asignación de direcciones y el anuncio externo.
Opciones de configuración de MetalLB
Según cómo MetalLB anuncia la dirección IP asignada a los servicios LoadBalancer fuera del clúster OpenShift, opera en dos modos:
-
Modo de capa 2. En este modo, un nodo del clúster OpenShift toma posesión del servicio y responde a las solicitudes ARP para esa IP para que sea accesible fuera del clúster OpenShift. Debido a que solo el nodo anuncia la IP, tiene un cuello de botella de ancho de banda y limitaciones de conmutación por error lenta. Para obtener más información, consulte la documentación."aquí" .
-
Modo BGP. En este modo, todos los nodos del clúster OpenShift establecen sesiones de intercambio de tráfico BGP con un enrutador y anuncian las rutas para reenviar tráfico a las IP del servicio. El requisito previo para esto es integrar MetalLB con un enrutador en esa red. Debido al mecanismo de hashing en BGP, existen ciertas limitaciones cuando cambia el mapeo de IP a nodo para un servicio. Para obtener más información, consulte la documentación."aquí" .
|
Para los fines de este documento, configuramos MetalLB en modo de capa 2. |
Instalación del balanceador de carga MetalLB
-
Descargue los recursos de MetalLB.
[netapp-user@rhel7 ~]$ wget https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/namespace.yaml [netapp-user@rhel7 ~]$ wget https://raw.githubusercontent.com/metallb/metallb/v0.10.2/manifests/metallb.yaml
-
Editar archivo
metallb.yaml
y eliminarspec.template.spec.securityContext
desde el controlador Deployment y el altavoz DaemonSet.Líneas a eliminar:
securityContext: runAsNonRoot: true runAsUser: 65534
-
Crea el
metallb-system
espacio de nombres.[netapp-user@rhel7 ~]$ oc create -f namespace.yaml namespace/metallb-system created
-
Crear el CR de MetalLB.
[netapp-user@rhel7 ~]$ oc create -f metallb.yaml podsecuritypolicy.policy/controller created podsecuritypolicy.policy/speaker created serviceaccount/controller created serviceaccount/speaker created clusterrole.rbac.authorization.k8s.io/metallb-system:controller created clusterrole.rbac.authorization.k8s.io/metallb-system:speaker created role.rbac.authorization.k8s.io/config-watcher created role.rbac.authorization.k8s.io/pod-lister created role.rbac.authorization.k8s.io/controller created clusterrolebinding.rbac.authorization.k8s.io/metallb-system:controller created clusterrolebinding.rbac.authorization.k8s.io/metallb-system:speaker created rolebinding.rbac.authorization.k8s.io/config-watcher created rolebinding.rbac.authorization.k8s.io/pod-lister created rolebinding.rbac.authorization.k8s.io/controller created daemonset.apps/speaker created deployment.apps/controller created
-
Antes de configurar el altavoz MetalLB, otorgue al altavoz DaemonSet privilegios elevados para que pueda realizar la configuración de red necesaria para que los balanceadores de carga funcionen.
[netapp-user@rhel7 ~]$ oc adm policy add-scc-to-user privileged -n metallb-system -z speaker clusterrole.rbac.authorization.k8s.io/system:openshift:scc:privileged added: "speaker"
-
Configure MetalLB creando un
ConfigMap
en elmetallb-system
espacio de nombres.[netapp-user@rhel7 ~]$ vim metallb-config.yaml apiVersion: v1 kind: ConfigMap metadata: namespace: metallb-system name: config data: config: | address-pools: - name: default protocol: layer2 addresses: - 10.63.17.10-10.63.17.200 [netapp-user@rhel7 ~]$ oc create -f metallb-config.yaml configmap/config created
-
Ahora, cuando se crean servicios de balanceo de carga, MetalLB asigna una IP externa a los servicios y anuncia la dirección IP respondiendo a las solicitudes ARP.
Si desea configurar MetalLB en modo BGP, omita el paso 6 anterior y siga el procedimiento de la documentación de MetalLB."aquí" .