RPM-Orchestratorclusterkomponenten aktualisieren

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie die Softwarepakete, Ressourcenkonfigurationen und den RPM-Orchestrator Ihres AlloyDB Omni-Datenbankclusters in Red Hat Enterprise Linux-Umgebungen (RHEL) aktualisieren.

Hinweis

Sie benötigen die Bereitstellungsspezifikationsdatei deployment_spec.yaml, die alle Details zu Ihren Knoten- und Clusterkomponenten enthält.

Orchestrator aktualisieren

Der Orchestrator verwaltet Ihre Datenbankcluster. Sie müssen den Orchestrator auf Ihrem Steuerknoten aktualisieren, bevor Sie die anderen Clusterkomponenten aktualisieren.

Ansible

Wenn Sie Ihre Infrastruktur mit Ansible-Playbooks verwalten, führen Sie die folgenden Schritte aus:

  1. Prüfen Sie die installierte Version der Sammlung google.alloydbomni_orchestrator auf Ihrem Steuerknoten, indem Sie den folgenden Befehl ausführen:

    ansible-galaxy collection list | grep alloydbomni_orchestrator
  2. Wenn Sie Ihre vorhandene Version überschreiben möchten, laden Sie die neueste stabile Version der Tar-Datei der Sammlung herunter und führen Sie eine erzwungene Installation durch:

    ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gz

    Ersetzen Sie NEW_VERSION durch die Version der neuen Sammlung.

alloydbctl

Wenn Sie das Befehlszeilentool alloydbctl verwenden, führen Sie die folgenden Schritte aus:

  1. Führen Sie den folgenden Befehl aus, um die installierte Paketversion des RPM-Orchestrators alloydbomni_orchestrator auf Ihrem Steuerknoten zu prüfen:

    rpm -q alloydbomni_orchestrator
  2. Aktualisieren Sie das Softwarepaket auf Ihrem Steuerknoten mit dem Paketmanager:

    sudo dnf upgrade alloydbomni_orchestrator

Clusterkomponenten mit Ansible aktualisieren

Google empfiehlt, das Update mit der bereitgestellten Ansible-Rolle durchzuführen.

  1. Erstellen Sie ein Playbook mit dem Namen update.yaml, das auf die Rolle update aus der Orchestrator-Sammlung verweist. Sie müssen den Parameterwert update_action auf update_rpm festlegen.

    Standardmäßig aktualisiert die Rolle update sowohl die Steuerungsebene als auch die Datenebene. Wenn Sie nur Komponenten der Steuerungsebene oder der Datenebene aktualisieren möchten, legen Sie den Parameter für die andere Ebene auf false fest.

    ---
    - hosts: all
      become: true
      vars:
        update_action: "update_rpm"
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: PRIVATE_KEY_PATH
        update_control_plane: true # Optional argument if you want to only update data plane components
        update_data_plane: true # Optional argument if you want to only update control plane components
      roles:
        - role: google.alloydbomni_orchestrator.update
    

    Ersetzen Sie Folgendes:

    • SSH_USER: Der SSH-Nutzername, der Zugriff auf Ihre Clusterknoten hat.
    • PRIVATE_KEY_PATH: Der Pfad zu Ihrer privaten SSH-Schlüsseldatei.
    • update_action: Der Umfang des Updates. Legen Sie diesen Wert auf update_rpm fest.
    • update_control_plane: Optional. Legen Sie false fest, um nur Komponenten der Datenebene zu aktualisieren. Der Standardwert ist true.
    • update_data_plane: Optional. Legen Sie false fest, um nur Komponenten der Steuerungsebene zu aktualisieren. Der Standardwert ist true.
  2. Wenn Sie ein Update auf allen angegebenen Knoten durchführen möchten, führen Sie das Playbook mit Ihrer Inventardatei aus:

    ansible-playbook -i DEPLOYMENT_SPEC update.yaml

    Ersetzen Sie DEPLOYMENT_SPEC durch den Pfad zu Ihrer Bereitstellungsspezifikationsdatei.

    In Ihrer Bereitstellungsspezifikationsdatei muss die installierte Version für jede Komponente in Ihrem Cluster definiert sein. Die Update-Rolle aktualisiert Komponenten basierend darauf, wie Sie ihre Versionen in der Inventardatei konfigurieren:

    • Wenn die Version einer Komponente mit der installierten Version übereinstimmt, nimmt die Update-Rolle keine Änderungen an dieser Komponente vor.
    • Wenn Sie die Version einer Komponente in eine bestimmte Zielversion ändern, wird die Komponente auf diese Version aktualisiert.
    • Wenn Sie das Versions-Feld einer Komponente leer lassen, wird die Komponente auf die neueste verfügbare Version im konfigurierten Repository aktualisiert.

Clusterkomponenten manuell aktualisieren

Wenn Sie den Ansible-Orchestrator nicht verwenden oder den Updateprozess detailliert steuern möchten, können Sie RPM-Komponenten für jeden Knoten in Ihrem Cluster manuell aktualisieren. Es wird empfohlen, Softwareupdates während des geplanten Wartungsfensters durchzuführen.

Der manuelle Updateprozess umfasst das Aktualisieren der folgenden beiden Ebenen:

  • Steuerungsebene (RPM-Orchestratorkomponenten): Die Steuerungsebene ist die Ebene, die Ihre Datenbankcluster steuert und verwaltet. In einer RPM-Bereitstellung umfasst die Steuerungsebene cluster_manager, node_manager und etcd.

  • Datenebene (Datenbankcluster): Die Datenebene enthält die Datenbankclusterkomponenten, einschließlich der AlloyDB Omni-Datenbank-Engine selbst, monitor sowie Dienste wie pgBackRest, PgBouncer, keepalived und HAProxy. Durch das Upgrade der Datenebene werden Datenbankversionsupdates, Sicherheitspatches und Leistungsverbesserungen direkt auf Ihre Datenbankcluster angewendet.

Unabhängig von Ihrer Referenzarchitektur bleiben die Schritte zum Aktualisieren der Steuerungsebene gleich. Sie müssen die Komponenten der Steuerungsebene aktualisieren, bevor Sie die Datenebene aktualisieren. Die Schritte zum Aktualisieren der Datenebene unterscheiden sich je nach Architektur Ihrer Datenbankbereitstellung.

So aktualisieren Sie einen Dienst oder ein Paket:

  1. Beenden Sie den Dienst:

    sudo systemctl stop SERVICE
  2. Führen Sie mit einem der folgenden Befehle ein Upgrade des Pakets durch:

    • So aktualisieren Sie auf die neueste verfügbare Version:

      sudo dnf upgrade PACKAGE
    • So aktualisieren Sie auf eine bestimmte Version:

      sudo dnf upgrade PACKAGE-VERSION
  3. Starten Sie den Dienst:

    sudo systemctl start SERVICE

Ersetzen Sie Folgendes:

  • SERVICE: Der Name des Dienstes, der beendet und gestartet werden soll, z. B. pgbouncer oder keepalived.
  • PACKAGE: Der Name des zu aktualisierenden Pakets, z. B. pgbouncer oder alloydbomni18.
  • VERSION: Die Zielpaketversion, die installiert werden soll, z. B. 18.3.0 oder 18.3.0-2.rhel9.

Steuerungsebene manuell aktualisieren

Führen Sie die folgenden Schritte auf den angegebenen Knoten aus, um die Steuerungsebene zu aktualisieren:

  1. Führen Sie den folgenden Befehl aus, um den Cluster Manager auf allen Cluster Manager-Knoten zu beenden:

    sudo systemctl stop alloydbomni_cluster_manager
  2. Führen Sie die folgenden Befehle nacheinander aus, um etcd auf allen DCS-Knoten zu aktualisieren:

    sudo systemctl stop etcd
    sudo dnf upgrade etcd
    sudo systemctl start etcd
  3. Führen Sie die folgenden Befehle nacheinander aus, um den Knotenmanager auf allen Knoten zu aktualisieren:

    sudo systemctl stop alloydbomni_node_manager
    sudo dnf upgrade alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
  4. Nachdem Sie die Komponenten der Steuerungsebene aktualisiert haben, können Sie den Cluster Manager auf allen Cluster Manager-Knoten aktualisieren und ihn bei Bedarf neu starten.

    sudo dnf upgrade alloydbomni_cluster_manager
    sudo systemctl start alloydbomni_cluster_manager

Datenebene manuell aktualisieren

Wenn Sie die Datenebene aktualisieren möchten, aktualisieren Sie die Datenbank- und Hilfsdienste in der für Ihre Bereitstellungsarchitektur angegebenen Reihenfolge. Für jeden Dienst müssen Sie eine bestimmte Reihenfolge einhalten: Beenden Sie den Dienst, führen Sie ein Upgrade des Pakets durch und starten Sie den Dienst.

Folgen Sie der Anleitung für Ihre Bereitstellung, je nach Referenzarchitektur.

  1. Rufen Sie den Clusterstatus mit dem Befehl alloydbctl get ab und legen Sie das Ausgabeformat auf YAML fest:

    alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml

    Ersetzen Sie Folgendes:

    • RESOURCE_TYPE: Der zu prüfende Ressourcentyp, z. B. DBCluster.
    • CLUSTER_NAME: Der Name Ihres Datenbankclusters.
    • DEPLOYMENT_SPEC: Der Pfad zu Ihrer Bereitstellungsspezifikationsdatei.
  2. Notieren Sie sich in der YAML-Ausgabe die instanceList im Abschnitt status.

    Suchen Sie den Knoten, dessen Rolle auf Primary festgelegt ist. Alle anderen Datenbankknoten sind Ihre Standby-Knoten.

  3. Aktualisieren Sie zuerst alle Komponenten der Datenebene, die auf Standby-Knoten ausgeführt werden, und aktualisieren Sie dann diese Komponenten auf dem primären Knoten. Führen Sie die folgenden Schritte aus, um die Komponenten der Datenebene auf jedem Knoten zu aktualisieren.

    1. Führen Sie die folgenden Befehle nacheinander aus, um AlloyDB Omni zu aktualisieren:

      sudo systemctl stop alloydbomni18
      sudo dnf upgrade alloydbomni18
      sudo systemctl start alloydbomni18
    2. Führen Sie die folgenden Befehle nacheinander aus, um den Monitor zu aktualisieren:

      sudo systemctl stop alloydbomni_monitor
      sudo dnf upgrade alloydbomni_monitor
      sudo systemctl start alloydbomni_monitor
    3. Führen Sie die folgenden Befehle nacheinander aus, um pgBackRest zu aktualisieren:

      sudo dnf upgrade pgbackrest
    4. Führen Sie die folgenden Befehle nacheinander aus, um PgBouncer zu aktualisieren:

      sudo systemctl stop pgbouncer
      sudo dnf upgrade pgbouncer
      sudo systemctl start pgbouncer
    5. Führen Sie die folgenden Befehle nacheinander aus, um keepalived zu aktualisieren:

      sudo systemctl stop keepalived
      sudo dnf upgrade keepalived
      sudo systemctl start keepalived
    6. Führen Sie die folgenden Befehle nacheinander aus, um HAProxy zu aktualisieren:

      sudo systemctl stop haproxy
      sudo dnf upgrade haproxy
      sudo systemctl start haproxy