Installazione e Configurazione di base di MetalLB su un cluster Kubernetes con Calico CNI su Debian 12

da | Feb 3, 2025

MetalLB viene utilizzato nei cluster Kubernetes bare metal (on premise) per poter esporre i servizi in modalità LoadBalancer.
La modalità LoadBalancer viene utilizzata dai provider clouds (Azure, AWS, Tanzu…) per permettere agli utenti di esporre i servizi su degli IP pubblici raggiungibili da internet.
Su un cluster bare metal senza Matallb i servizi esposti con questa modalità rimangono in stato pending e non è possibile procedere.
MetalLB è in grado di allocare gli IP VIP da un set di IP dedicato e pubblicare dei servizi dietro di essi, gestendo autonomamente il bilanciamento di carico sui vari Pods che erogano il servizio.

PREREQUISITI

Un cluster Kubernetes con Calico CNI e kubectl installato.
Si consiglia la visione dell’articolo precedente relativo a Kubernetes (Installazione e configurazione di base di un cluster Kubernetes con Calico CNI su Debian 12).

CONFIGURAZIONE DI CALICO

Aggiungere nella configurazione di Calico relativa al BGP (nella scorsa guida bgp.yaml) le reti che verranno utilizzate dai servizi di tipo LoadBalancer:

Per aggiungere una rete, inserirla nell’array serviceLoadBalancerIPs, come è stato fatto per la subnet 10.170.80.0/21.
Le reti indicate devono essere esclusive per MetalLB, non utilizzare subnets del Pod Network o del Service Network indicati durante la creazione del cluster K8s.

Applicare la configurazione (sostituire bgp.yaml con il nome del file con la configurazione):

CONFIGURAZIONE DELLA MODALITÁ STRICT ARP

Modificare il parametro stricARP da false a true nella config map di kuke-proxy:

INSTALL HELM

Helm

è un package manager per Kubernetes che può essere utilizzato per installare diversi applicativi, tra cui MetalLB.

Aggiungere le repositories di Helm per Debian:

Installare Helm:

INSTALLARE METALLB TRAMITE HELM

Aggiungere le repositories Helm di MetalLB:

Copiare la configurazione di default in un file:

Disabilitare il deamon set speaker nel file appena creato (values.yaml):

Non è necessario l’utilizzo degli speaker poiché Calico si occupa di diffondere le rotte tramite BGP.

Creare il namespace per MetalLB ed opzionalmente assegnargli la rete desiderata (modificare default-ipv4-ippool con il nome della rete):

Installare MetalLB:

 

CONFIGURARE IP ADDRESS POOL

Creare il file lbnet.yaml:

Nell’array addresses indicare le stesse reti configurate nell’array serviceLoadBalancerIPs nel file di configurzione di Calico per il BGP.
È possibile specificare gli indirizzi da utilizzare in diversi formati, in seguito alcuni esempi:

Applicare la configurazione:

VERIFICARE LA CONFIGURAZIONE

Esporre il deployment nginx-test creato durante la procedura dell’articolo precedente:

Verificare che IP sia stato assegnato al servizio:

Provare a navigare tramite il browser sull’IP assegnato e verificare che sia possibile connettersi.

Articoli Recenti

Veeam Backup

Monitoring

Friends

  • My English Lab  English School
  • ChrSystem   Servizi ICT
  • Since 01  Kreative Graphics

Database

Networking

Autori

  • Raffaele Chiatto  Amministratore
  • Marco Valle  Autore
  • Angelo Lauria  Autore
  • Edoardo Prot  Autore
  • Davide D’Urso  Autore
Marco Valle

Marco Valle

Mi chiamo Marco Valle e da sempre sono appassionato di Cybersicurezza e Linux. Per lavoro implemento soluzioni open source.

Related Post

0 commenti

Invia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Virtualizzazione

Linux

Microsoft

Apple

Backup

Database

Security

Automazione