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 asume la responsabilidad del servicio y responde a las solicitudes ARP para esa IP para que sea accesible desde fuera del clúster OpenShift. Como solo el nodo anuncia la IP, tiene un cuello de botella en el ancho de banda y limitaciones de conmutación por error lenta. Para más información, consulta "Documentación sobre el modo de capa 2 de MetalLB".
-
Modo BGP. En este modo, todos los nodos del clúster OpenShift establecen sesiones de emparejamiento BGP con un router y anuncian las rutas para reenviar el tráfico a las direcciones IP del servicio. El requisito previo para ello es integrar MetalLB con un router de dicha red. Debido al mecanismo de hash de BGP, existen ciertas limitaciones cuando cambia la asignación de IP a nodo para un servicio. Para obtener más información, consulta "Documentación sobre el modo BGP de MetalLB".
|
|
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.yamly eliminarspec.template.spec.securityContextdesde el controlador Deployment y el altavoz DaemonSet.Líneas a eliminar:
securityContext: runAsNonRoot: true runAsUser: 65534
-
Crea el
metallb-systemespacio 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
ConfigMapen elmetallb-systemespacio 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 deseas configurar MetalLB en modo BGP, omite el paso 6 anterior y sigue el procedimiento en "Documentación sobre el modo BGP de MetalLB".