0Pricing
DevOps Bootcamp · Lezione

Drenare e riabilitare un load balancer

Rimuova e reinserisca i nodi in sicurezza

Drenare e riabilitare un load balancer è una lezione DevOps Bootcamp gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento DevOps Bootcamp, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso DevOps Bootcamp include 4 lezioni in totale.

Aggiornare il traffico in produzione è rischioso

Se aggiorna un server mentre gli utenti lo stanno utilizzando, le richieste falliscono. La soluzione consiste nel mettere prima il nodo in drain dal load balancer. 🚦

Cosa significa drain

Mettere un nodo in drain significa smettere di inviargli nuovo traffico, lasciando terminare le richieste già in corso. Dopodiché è possibile aggiornarlo in sicurezza.

Il ciclo drain, aggiornamento, riabilitazione

Il modello sicuro prevede tre passaggi: mettere il nodo in drain, distribuire la modifica e infine riabilitarlo nel load balancer.

Disabilitare un nodo in HAProxy

Il modulo community.general.haproxy imposta un nodo backend come disabilitato, comunicando ad HAProxy di interrompere l'instradamento del traffico verso di esso.

- name: Drain web node
  community.general.haproxy:
    state: disabled
    host: "{{ inventory_hostname }}"
    socket: /var/run/haproxy.sock

Eseguire il task del LB dal LB

Il socket di HAProxy si trova sul load balancer, quindi deleghi al suo host con delegate_to, continuando però a indicare il nodo web da mettere in drain.

  delegate_to: lb01

Attendere il completamento delle connessioni

Conceda alle richieste attive il tempo di terminare. Usi wait_for o una breve pausa per non interrompere gli utenti durante una richiesta.

- name: Let traffic drain
  ansible.builtin.wait_for:
    timeout: 30
  delegate_to: localhost

Eseguire ora il deploy in sicurezza

Con il nodo fuori rotazione, esegua i task di aggiornamento: installi i pacchetti, distribuisca la configurazione e riavvii l'applicazione. Il traffico attivo non viene coinvolto. 🔧

Riabilitare il nodo

Dopo l'aggiornamento, imposti nuovamente il nodo come enabled affinché HAProxy riprenda a instradare il traffico verso il server appena distribuito.

- name: Re-enable web node
  community.general.haproxy:
    state: enabled
    host: "{{ inventory_hostname }}"
    socket: /var/run/haproxy.sock
  delegate_to: lb01

Controllare lo stato prima di riabilitare

Verifichi che l'applicazione sia effettivamente attiva prima di reinserirla. Un controllo wait_for o uri sull'endpoint di health check evita di servire un nodo guasto.

- ansible.builtin.uri:
    url: http://localhost:8080/health
    status_code: 200
  retries: 5
  delay: 3

Un nodo alla volta

Combini questo ciclo con serial per mettere in drain solo uno o due nodi alla volta. Gli altri continuano a servire le richieste, garantendo zero downtime.

- hosts: web
  serial: 1

Riabilitare sempre, anche in caso di errore

Racchiuda il deploy in un block con always, così anche un aggiornamento non riuscito reinserisce il nodo nella rotazione invece di lasciarlo isolato.

Verifica rapida

Verifichi il modello di rollout sicuro.

Riepilogo

Per ottenere zero downtime, metta il nodo in drain, esegua il deploy, controlli lo stato e lo riabiliti, un nodo alla volta, usando serial e un blocco always. ✅

Domande Frequenti

La lezione «Drenare e riabilitare un load balancer» è gratuita?

Sì — il testo completo di «Drenare e riabilitare un load balancer» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso DevOps Bootcamp, passa a CoddyKit PRO. Il corso DevOps Bootcamp include 4 lezioni in totale.

Cosa imparerò in «Drenare e riabilitare un load balancer»?

Rimuova e reinserisca i nodi in sicurezza Eserciti DevOps Bootcamp con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare DevOps Bootcamp?

Non è richiesta alcuna esperienza precedente. DevOps Bootcamp su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.

Quanto tempo richiede la lezione «Drenare e riabilitare un load balancer»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione DevOps Bootcamp?

Sì. Ogni lezione DevOps Bootcamp include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. Automatizzare i dispositivi di rete con cli_command
  2. delegate_to e run_once per l'orchestrazione
  3. Coordinare i livelli Web, App e DB
  4. Drenare e riabilitare un load balancer
← Torna a DevOps Bootcamp