Installieren von MetalLB-Load Balancern: Red Hat OpenShift mit NetApp
Auf dieser Seite finden Sie die Installations- und Konfigurationsanweisungen für den MetalLB-Load Balancer.
MetalLB ist ein selbstgehosteter Netzwerk-Load Balancer, der auf Ihrem OpenShift-Cluster installiert wird und die Erstellung von OpenShift-Diensten vom Typ Load Balancer in Clustern ermöglicht, die nicht auf einem Cloud-Anbieter ausgeführt werden. Die beiden Hauptfunktionen von MetalLB, die zusammenarbeiten, um LoadBalancer-Dienste zu unterstützen, sind Adresszuweisung und externe Ankündigung.
MetalLB-Konfigurationsoptionen
Basierend darauf, wie MetalLB die den LoadBalancer-Diensten außerhalb des OpenShift-Clusters zugewiesene IP-Adresse ankündigt, arbeitet es in zwei Modi:
-
Layer 2-Modus. In diesem Modus übernimmt ein Knoten im OpenShift Cluster die Zuständigkeit für den Service und beantwortet ARP-Anfragen für diese IP, um die Erreichbarkeit außerhalb des OpenShift Clusters zu ermöglichen. Da nur dieser Knoten die IP bekanntgibt, entsteht ein Bandbreite Engpass und es bestehen Einschränkungen beim schnellen Failover. Weitere Informationen finden sich unter "MetalLB Layer 2 Modus Dokumentation".
-
BGP-Modus. In diesem Modus stellen alle Knoten im OpenShift-Cluster BGP-Peering-Sitzungen mit einem Router her und kündigen die Routen an, um den Datenverkehr zu den Service-IPs weiterzuleiten. Voraussetzung hierfür ist die Integration von MetalLB mit einem Router in diesem Netzwerk. Aufgrund des Hash-Mechanismus in BGP bestehen bestimmte Einschränkungen, wenn sich die IP-zu-Knoten-Zuordnung für einen Service ändert. Weitere Informationen sind unter "MetalLB BGP Modus Dokumentation" zu finden.
|
|
Für die Zwecke dieses Dokuments konfigurieren wir MetalLB im Layer-2-Modus. |
Installieren des MetalLB Load Balancers
-
Laden Sie die MetalLB-Ressourcen herunter.
[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
-
Datei bearbeiten
metallb.yamlund entfernenspec.template.spec.securityContextvom Controller-Deployment und dem Speaker-DaemonSet.Zu löschende Zeilen:
securityContext: runAsNonRoot: true runAsUser: 65534
-
Erstellen Sie die
metallb-systemNamespace.[netapp-user@rhel7 ~]$ oc create -f namespace.yaml namespace/metallb-system created
-
Erstellen Sie den MetalLB CR.
[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
-
Bevor Sie den MetalLB-Lautsprecher konfigurieren, erteilen Sie dem Lautsprecher-DaemonSet erhöhte Berechtigungen, damit er die Netzwerkkonfiguration durchführen kann, die für die Funktion der Lastenausgleichsmodule erforderlich ist.
[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"
-
Konfigurieren Sie MetalLB, indem Sie eine
ConfigMapimmetallb-systemNamespace.[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 -
Wenn jetzt Loadbalancer-Dienste erstellt werden, weist MetalLB den Diensten eine externe IP zu und gibt die IP-Adresse bekannt, indem es auf ARP-Anfragen antwortet.
Wenn Sie MetalLB im BGP-Modus konfigurieren möchten, Schritt 6 oben wird übersprungen und die Vorgehensweise in "MetalLB BGP Modus Dokumentation" befolgt.