Installazione dei bilanciatori di carico MetalLB: Red Hat OpenShift con NetApp
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".
|
|
Ai fini del presente documento, stiamo configurando MetalLB in modalità layer-2. |
Installazione del bilanciatore di carico MetalLB
-
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
-
Modifica file
metallb.yamle rimuoverespec.template.spec.securityContextdal controller Deployment e dall'altoparlante DaemonSet.Righe da eliminare:
securityContext: runAsNonRoot: true runAsUser: 65534
-
Crea il
metallb-systemspazio dei nomi.[netapp-user@rhel7 ~]$ oc create -f namespace.yaml namespace/metallb-system created
-
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
-
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"
-
Configura MetalLB creando un
ConfigMapnelmetallb-systemspazio 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 -
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.
Se vuoi configurare MetalLB in modalità BGP, salta il passaggio 6 sopra e segui la procedura in "Documentazione sulla modalità BGP di MetalLB".