Töm och återaktivera lastbalanserare
Ta säkert bort noder och lägg tillbaka dem
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.sockKö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: lb01Vä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: localhostDistribuera 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: lb01Hä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: 3Gö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: 1Aktivera 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. ✅
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
- Automatisera nätverksenheter med cli_command
- delegate_to och run_once för orkestrering
- Samordna webb-, app- och databasalager
- Töm och återaktivera lastbalanserare