Skip to main content
NetApp container solutions
La versione in lingua italiana fornita proviene da una traduzione automatica. Per eventuali incoerenze, fare riferimento alla versione in lingua inglese.

Installazione dei bilanciatori di carico MetalLB: Red Hat OpenShift con NetApp

Collaboratori banum-netapp kevin-hoke

In questa pagina sono elencate le istruzioni di installazione e configurazione per il bilanciatore del carico MetalLB.

MetalLB è un bilanciatore del carico di rete auto-ospitato installato sul tuo cluster OpenShift che consente la creazione di servizi OpenShift di tipo bilanciatore del carico in cluster che non vengono eseguiti su un provider cloud. Le due principali funzionalità di MetalLB che interagiscono per supportare i servizi LoadBalancer sono l'allocazione degli indirizzi e l'annuncio esterno.

Opzioni di configurazione MetalLB

In base al modo in cui MetalLB annuncia l'indirizzo IP assegnato ai servizi LoadBalancer al di fuori del cluster OpenShift, funziona in due modalità:

  • Modalità Livello 2. In questa modalità, un nodo del OpenShift cluster assume la proprietà del servizio e risponde alle richieste ARP per quell'indirizzo IP per renderlo raggiungibile dall'esterno del OpenShift cluster. Poiché solo il nodo pubblicizza l'indirizzo IP, si verifica un collo di bottiglia di larghezza di banda e limitazioni di failover lente. Per ulteriori informazioni, vedi "Documentazione sulla modalità Layer 2 di MetalLB".

  • Modalità BGP. In questa modalità, tutti i nodi del OpenShift cluster stabiliscono sessioni di peering BGP con un router e pubblicizzano le rotte per inoltrare il traffico agli IP del servizio. Il prerequisito è integrare MetalLB con un router in quella rete. A causa del meccanismo di hashing in BGP, presenta alcune limitazioni quando la mappatura IP-Nodo per un servizio cambia. Per ulteriori informazioni, consulta "Documentazione sulla modalità BGP di MetalLB".

Nota Ai fini del presente documento, stiamo configurando MetalLB in modalità layer-2.

Installazione del bilanciatore di carico MetalLB

  1. Scarica le risorse 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
  2. Modifica file metallb.yaml e rimuovere spec.template.spec.securityContext dal controller Deployment e dall'altoparlante DaemonSet.

    Righe da eliminare:

    securityContext:
      runAsNonRoot: true
      runAsUser: 65534
  3. Crea il metallb-system spazio dei nomi.

    [netapp-user@rhel7 ~]$ oc create -f namespace.yaml
    namespace/metallb-system created
  4. Crea il 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
  5. Prima di configurare l'altoparlante MetalLB, concedere all'altoparlante privilegi elevati DaemonSet in modo che possa eseguire la configurazione di rete necessaria per far funzionare i bilanciatori del carico.

    [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. Configura MetalLB creando un ConfigMap nel metallb-system spazio dei nomi.

    [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. Ora, quando vengono creati i servizi di bilanciamento del carico, MetalLB assegna un IP esterno ai servizi e pubblicizza l'indirizzo IP rispondendo alle richieste ARP.

    Nota Se vuoi configurare MetalLB in modalità BGP, salta il passaggio 6 sopra e segui la procedura in "Documentazione sulla modalità BGP di MetalLB".