DevOps-bootcamp · Lektion

Töm och återaktivera lastbalanserare

Ta säkert bort noder och lägg tillbaka dem

Lektion 4 av 413 steg

Töm och återaktivera lastbalanserare är en gratis lektion i DevOps-bootcamp på CoddyKit. Detta är lektion 4 av 4. Du kan läsa vilka 3 lektioner som helst i den här lärvägen kostnadsfritt i sin helhet – därefter låser CoddyKit PRO upp alla lektioner, plus praktisk övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Den ingår i lärvägen för DevOps-bootcamp, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Att uppdatera aktiv trafik är riskabelt

Om ni uppdaterar en server medan användare använder den misslyckas förfrågningar. Lösningen är att först tömma noden från lastbalanseraren. 🚦

Vad det innebär att tömma en nod

Att tömma en nod innebär att sluta skicka ny trafik till den medan pågående förfrågningar får slutföras. Därefter är det säkert att uppdatera den.

Cykeln töm, uppdatera, aktivera igen

Det säkra mönstret består av tre steg: töm noden, distribuera ändringen och aktivera den sedan igen i lastbalanseraren.

Inaktivera en nod i HAProxy

Modulen community.general.haproxy ställer in en backend-nod som inaktiverad och talar om för HAProxy att sluta dirigera trafik till den.

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

Kör LB-uppgiften från LB:n

HAProxy-socketen finns på lastbalanseraren, så använd delegate_to för LB-hosten samtidigt som ni anger vilken webbnod som töms.

  delegate_to: lb01

Vänta tills anslutningarna har tömts

Ge aktiva förfrågningar tid att slutföras. Använd wait_for eller en kort paus så att användare inte kopplas bort mitt i en förfrågan.

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

Distribuera säkert nu

När noden är borttagen ur rotationen kör ni uppdateringsuppgifterna: installerar paket, skickar ut konfiguration och startar om appen. Ingen aktiv trafik påverkas. 🔧

Aktivera noden igen

Efter uppdateringen ställer ni tillbaka noden till enabled så att HAProxy återupptar dirigeringen av trafik till den nyss distribuerade servern.

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

Hälsokontroll före återaktivering

Bekräfta att appen faktiskt är igång innan ni lägger tillbaka den. En wait_for- eller uri-kontroll mot hälsoslutpunkten förhindrar att en trasig nod börjar ta emot trafik.

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

Gör en nod i taget

Kombinera den här cykeln med serial så att bara en eller två noder töms åt gången. Resten fortsätter att leverera trafik, vilket ger noll driftstopp.

- hosts: web
  serial: 1

Aktivera alltid igen, även vid fel

Omslut distributionen med ett block och always så att en misslyckad uppdatering ändå lägger tillbaka noden i rotationen i stället för att lämna den isolerad.

Snabbkontroll

Låt oss kontrollera det säkra utrullningsmönstret.

Sammanfattning

För noll driftstopp tömmer ni en nod, distribuerar, gör en hälsokontroll och aktiverar sedan noden igen – en nod i taget med serial och ett always-block. ✅

Gratis att börja

Lär dig DevOps-bootcamp med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
142
Lektioner
568

Vanliga frågor

Är lektionen ”Töm och återaktivera lastbalanserare” gratis?

Ja – du kan läsa vilka 3 lektioner som helst i lärvägen DevOps-bootcamp, inklusive ”Töm och återaktivera lastbalanserare”, kostnadsfritt i sin helhet här på webben. Därefter låser CoddyKit PRO upp alla lektioner, plus interaktiv övning med en inbyggd kodredigerare och en AI-lärare dygnet runt. Kursen i DevOps-bootcamp innehåller totalt 4 lektioner.

Vad lär jag mig i ”Töm och återaktivera lastbalanserare”?

Ta säkert bort noder och lägg tillbaka dem Ni övar på DevOps-bootcamp med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig DevOps-bootcamp?

Du behöver inga förkunskaper. Utbildningen i DevOps-bootcamp på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 4 av 4.

Hur lång tid tar lektionen ”Töm och återaktivera lastbalanserare”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här DevOps-bootcamp-lektionen?

Ja. Varje DevOps-bootcamp-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Automatisera nätverksenheter med cli_command
  2. delegate_to och run_once för orkestrering
  3. Samordna webb-, app- och databasalager
  4. Töm och återaktivera lastbalanserare
← Tillbaka till DevOps-bootcamp