0Pricing
Ansible Academy · Lektion

Load-Balancer-Drain und erneute Aktivierung

Nehmen Sie Nodes sicher aus dem Dienst und wieder auf.

Load-Balancer-Drain und erneute Aktivierung ist eine kostenlose Ansible Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ansible Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.

Live-Traffic zu aktualisieren ist riskant

Wenn Sie einen Server aktualisieren, während Benutzer ihn erreichen, schlagen Anfragen fehl. Die Lösung besteht darin, den Knoten zuerst aus dem Load-Balancer zu drainen. 🚦

Was Drainen bedeutet

Einen Knoten zu drainen bedeutet, keinen neuen Traffic mehr an ihn zu senden, während laufende Anfragen abgeschlossen werden. Danach kann er sicher aktualisiert werden.

Der Zyklus aus Drainen, Aktualisieren und Wiederaktivieren

Das sichere Muster besteht aus drei Schritten: den Knoten drainen, die Änderung bereitstellen und ihn anschließend im Load-Balancer wieder aktivieren.

Einen Knoten in HAProxy deaktivieren

Das Modul community.general.haproxy setzt einen Backend-Knoten auf deaktiviert und weist HAProxy damit an, keinen Traffic mehr an ihn weiterzuleiten.

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

Die LB-Aufgabe auf dem LB ausführen

Der HAProxy-Socket befindet sich auf dem Load-Balancer. Delegieren Sie daher mit delegate_to an den LB-Host, während Sie weiterhin den Webknoten angeben, der drained wird.

  delegate_to: lb01

Warten, bis Verbindungen abgebaut sind

Geben Sie aktiven Anfragen Zeit, abgeschlossen zu werden. Verwenden Sie wait_for oder eine kurze Pause, damit Benutzer nicht mitten in einer Anfrage getrennt werden.

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

Jetzt sicher bereitstellen

Nachdem der Knoten aus der Rotation genommen wurde, führen Sie Ihre Aktualisierungsaufgaben aus: Pakete installieren, Konfiguration verteilen und die App neu starten. Der Live-Traffic bleibt unbeeinträchtigt. 🔧

Den Knoten wieder aktivieren

Setzen Sie den Knoten nach der Aktualisierung wieder auf enabled, damit HAProxy den Traffic erneut an Ihren frisch bereitgestellten Server weiterleitet.

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

Vor der Wiederaktivierung einen Health-Check durchführen

Bestätigen Sie, dass die App tatsächlich läuft, bevor Sie sie wieder hinzufügen. Ein wait_for- oder uri-Check am Health-Endpunkt verhindert, dass ein fehlerhafter Knoten Traffic erhält.

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

Immer nur einen Knoten bearbeiten

Kombinieren Sie diesen Zyklus mit serial, damit jeweils nur ein oder zwei Knoten gleichzeitig drained werden. Die übrigen bedienen weiterhin Anfragen und ermöglichen so keine Ausfallzeit.

- hosts: web
  serial: 1

Auch bei Fehlern immer wieder aktivieren

Schließen Sie die Bereitstellung in einen block mit always ein, damit ein fehlgeschlagenes Update den Knoten trotzdem wieder in die Rotation aufnimmt, statt ihn dort zurückzulassen.

Kurze Überprüfung

Überprüfen wir das sichere Rollout-Muster.

Zusammenfassung

Für eine Bereitstellung ohne Ausfallzeit: drainen Sie einen Knoten, stellen Sie die Änderung bereit, führen Sie einen Health-Check durch und aktivieren Sie ihn anschließend wieder – mit serial und einem always-Block jeweils für einen Knoten. ✅

Häufig gestellte Fragen

Ist die Lektion „Load-Balancer-Drain und erneute Aktivierung“ kostenlos?

Ja — der vollständige Text von „Load-Balancer-Drain und erneute Aktivierung“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ansible Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Load-Balancer-Drain und erneute Aktivierung“?

Nehmen Sie Nodes sicher aus dem Dienst und wieder auf. Du übst Ansible Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um Ansible Academy zu starten?

Keine Vorkenntnisse erforderlich. Ansible Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Load-Balancer-Drain und erneute Aktivierung“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser Ansible Academy-Lektion Code schreiben und ausführen?

Ja. Jede Ansible Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. Netzwerkgeräte mit cli_command automatisieren
  2. delegate_to und run_once für Orchestrierung
  3. Web-, App- und Datenbankebenen koordinieren
  4. Load-Balancer-Drain und erneute Aktivierung
← Zurück zu Ansible Academy