Installation des équilibreurs de charge MetalLB : Red Hat OpenShift avec NetApp
Cette page répertorie les instructions d'installation et de configuration de l'équilibreur de charge MetalLB.
MetalLB est un équilibreur de charge réseau auto-hébergé installé sur votre cluster OpenShift qui permet la création de services OpenShift de type équilibreur de charge dans des clusters qui ne s'exécutent pas sur un fournisseur de cloud. Les deux principales fonctionnalités de MetalLB qui fonctionnent ensemble pour prendre en charge les services LoadBalancer sont l'allocation d'adresses et l'annonce externe.
Options de configuration de MetalLB
En fonction de la manière dont MetalLB annonce l'adresse IP attribuée aux services LoadBalancer en dehors du cluster OpenShift, il fonctionne selon deux modes :
-
Mode couche 2. Dans ce mode, un nœud du OpenShift cluster prend en charge le service et répond aux requêtes ARP pour cette adresse IP afin de la rendre accessible depuis l'extérieur du OpenShift cluster. Étant donné que seul ce nœud annonce l'adresse IP, il présente un goulot d'étranglement en termes de bande passante et des limitations de basculement lentes. Pour plus d'informations, consultez "Documentation du mode couche 2 de MetalLB".
-
Mode BGP. Dans ce mode, tous les nœuds du cluster OpenShift établissent des sessions de peering BGP avec un routeur et annoncent les routes pour acheminer le trafic vers les adresses IP des services. La condition préalable est d’intégrer MetalLB avec un routeur dans ce réseau. En raison du mécanisme de hachage dans BGP, il présente certaines limitations lorsque la correspondance IP-vers-nœud pour un service change. Pour plus d’informations, consultez "Documentation du mode BGP de MetalLB".
|
|
Pour les besoins de ce document, nous configurons MetalLB en mode couche 2. |
Installation de l'équilibreur de charge MetalLB
-
Téléchargez les ressources 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
-
Modifier le fichier
metallb.yamlet supprimerspec.template.spec.securityContextà partir du contrôleur de déploiement et du DaemonSet du haut-parleur.Lignes à supprimer :
securityContext: runAsNonRoot: true runAsUser: 65534
-
Créer le
metallb-systemespace de noms.[netapp-user@rhel7 ~]$ oc create -f namespace.yaml namespace/metallb-system created
-
Créez le CR 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
-
Avant de configurer le haut-parleur MetalLB, accordez au haut-parleur DaemonSet des privilèges élevés afin qu'il puisse effectuer la configuration réseau requise pour faire fonctionner les équilibreurs de charge.
[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"
-
Configurez MetalLB en créant un
ConfigMapdans lemetallb-systemespace de noms.[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 -
Désormais, lorsque les services d'équilibrage de charge sont créés, MetalLB attribue une adresse IP externe aux services et annonce l'adresse IP en répondant aux requêtes ARP.
Si vous souhaitez configurer MetalLB en mode BGP, ignorez l’étape 6 ci-dessus et suivez la procédure dans "Documentation du mode BGP de MetalLB".