Skip to main content
NetApp container solutions
Die deutsche Sprachversion wurde als Serviceleistung für Sie durch maschinelle Übersetzung erstellt. Bei eventuellen Unstimmigkeiten hat die englische Sprachversion Vorrang.

Installieren von MetalLB-Load Balancern: Red Hat OpenShift mit NetApp

Beitragende banum-netapp kevin-hoke
Änderungen vorschlagen

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.

Hinweis Für die Zwecke dieses Dokuments konfigurieren wir MetalLB im Layer-2-Modus.

Installieren des MetalLB Load Balancers

  1. 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
  2. Datei bearbeiten metallb.yaml und entfernen spec.template.spec.securityContext vom Controller-Deployment und dem Speaker-DaemonSet.

    Zu löschende Zeilen:

    securityContext:
      runAsNonRoot: true
      runAsUser: 65534
  3. Erstellen Sie die metallb-system Namespace.

    [netapp-user@rhel7 ~]$ oc create -f namespace.yaml
    namespace/metallb-system created
  4. 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
  5. 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"
  6. Konfigurieren Sie MetalLB, indem Sie eine ConfigMap im metallb-system Namespace.

    [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
  7. 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.

    Hinweis Wenn Sie MetalLB im BGP-Modus konfigurieren möchten, Schritt 6 oben wird übersprungen und die Vorgehensweise in "MetalLB BGP Modus Dokumentation" befolgt.