Clusterknoten in AlloyDB Omni verwalten

Wählen Sie eine Dokumentationsversion aus:

Auf dieser Seite wird beschrieben, wie Sie Datenbankknoten in einem vorhandenen AlloyDB Omni-Cluster mit dem RPM-Orchestrator hinzufügen oder entfernen.

Sie können einem vorhandenen Cluster Standby-Knoten hinzufügen, um Ihre Lesearbeitslasten zu skalieren oder die Hochverfügbarkeit zu erhöhen. Sie können auch bestimmte Datenbankknoten für gezielte Wartungsarbeiten oder die endgültige Außerbetriebnahme entfernen, um die Clusterkapazität zu reduzieren.

Hinweis

Datenbankknoten hinzufügen

Wenn Sie Ihrem Cluster einen neuen Standby-Datenbankknoten hinzufügen möchten, müssen Sie sowohl die Bereitstellungsspezifikation, auch als Inventar bezeichnet, als auch die Ressourcenspezifikation des Datenbankclusters aktualisieren.

  1. Öffnen Sie die Datei deployment_spec.yaml, um die Bereitstellungsspezifikation zu aktualisieren, und fügen Sie die IP-Adresse oder den Hostnamen des neuen Knotens unter der Gruppe primary_instance_nodes hinzu.

    alloydbomni:
      children:
        primary_instance_nodes:
          hosts:
            db-node-1:
            db-node-2:
            NEW_NODE:
    

    Ersetzen Sie NEW_NODE durch die IP-Adresse oder den Hostnamen des neuen Standby-Knotens, den Sie hinzufügen.

  2. Öffnen Sie die Ressourcenspezifikationsdatei DBCluster, um die Ressourcenspezifikation zu aktualisieren, und erhöhen Sie den Wert von numberOfStandbys um die Anzahl der Knoten, die Sie hinzufügen:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # Other configurations omitted for brevity.
        # Modify the availability block in your existing DBCluster resource spec:
        availability:
          numberOfStandbys: NEW_STANDBY_COUNT
        # Remaining configurations omitted.
    

    Ersetzen Sie die folgenden Variablen:

    • DB_CLUSTER_NAME: der Name Ihres Datenbankclusters.
    • NEW_STANDBY_COUNT: die neue, erhöhte Gesamtzahl der Standby-Knoten in Ihrem Cluster.
  3. Wenden Sie die aktualisierten Ressourcenspezifikationen mit einer der folgenden Methoden an. Der RPM-Orchestrator stellt den neuen Knoten automatisch bereit:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ansible

    So wenden Sie die Änderungen mit Ansible an:

    1. Erstellen Sie ein add.yml-Playbook mit folgendem Inhalt:

      ---
      # Add AlloyDB Omni database nodes
      - name: Add AlloyDB Omni database nodes
        hosts: all
        become: true
        vars:
          ansible_user: ANSIBLE_USER
          ansible_ssh_private_key_file: PRIVATE_SSH_KEY_PATH
      
        roles:
          - role: google.alloydbomni_orchestrator.add
      

      Ersetzen Sie die folgenden Variablen:

      • ANSIBLE_USER: der Nutzer mit passwortlosem Zugriff auf alle Knoten und sudo-Berechtigungen.
      • PRIVATE_SSH_KEY_PATH: der Pfad zum privaten SSH-Schlüssel für die passwortlose Authentifizierung.
    2. Führen Sie das erstellte Playbook aus:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" add.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

    Ersetzen Sie die folgenden Variablen:

    • DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Bereitstellungsspezifikationsverzeichnis.
    • DBCLUSTER_SPECIFICATION: der Pfad zum geänderten DBCluster-Manifest.

Bestimmten Datenbankknoten entfernen

Wenn Sie einen bestimmten Standby-Knoten aus Ihrem Cluster entfernen möchten, müssen Sie ihn aus der Bereitstellungsspezifikation entfernen und die Anzahl der Standby-Knoten verringern.

  1. Öffnen Sie die Datei deployment_spec.yaml, um die Bereitstellungsspezifikation zu aktualisieren, und entfernen Sie die IP-Adresse oder den Hostnamen des Zielknotens aus der Gruppe primary_instance_nodes.

  2. Öffnen Sie die Ressourcenspezifikationsdatei DBCluster, um die Ressourcenspezifikation zu aktualisieren, und verringern Sie den Wert von numberOfStandbys:

    DBCluster:
      metadata:
        name: DB_CLUSTER_NAME
      spec:
        # Other configurations omitted for brevity.
        # Modify the availability block in your existing DBCluster resource spec:
        availability:
          numberOfStandbys: NEW_STANDBY_COUNT
        # Remaining configurations omitted.
    

    Ersetzen Sie die folgenden Variablen:

    • DB_CLUSTER_NAME: der Name Ihres Datenbankclusters.
    • NEW_STANDBY_COUNT: die neue, verringerte Gesamtzahl der Standby-Knoten in Ihrem Cluster.
  3. Wenden Sie die aktualisierten Manifeste mit einer der folgenden Methoden an:

    alloydbctl

    alloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"

    Ansible

    So wenden Sie die Änderungen mit Ansible an:

    1. Erstellen Sie ein remove.yml-Playbook mit folgendem Inhalt:

      ---
      # Scale-in database nodes from AlloyDB Omni cluster
      - name: Scale-In AlloyDB Omni Cluster (Logical Discovery & De-registration)
        hosts: all
        become: true
        vars:
          ansible_user: ANSIBLE_USER
          ansible_ssh_private_key_file: PRIVATE_SSH_KEY_PATH
        roles:
          - role: google.alloydbomni_orchestrator.remove
      

      Ersetzen Sie die folgenden Variablen:

      • ANSIBLE_USER: der Nutzer mit passwortlosem Zugriff auf alle Knoten und sudo-Berechtigungen.
      • PRIVATE_SSH_KEY_PATH: der Pfad zum privaten SSH-Schlüssel für die passwortlose Authentifizierung.
    2. Führen Sie das Playbook aus:

      ansible-playbook -i "DEPLOYMENT_SPEC_PATH" remove.yml \
        -e resource_spec="DBCLUSTER_SPECIFICATION"

    Ersetzen Sie die folgenden Variablen:

    • DEPLOYMENT_SPEC_PATH: der Pfad zu Ihrem Bereitstellungsspezifikationsverzeichnis.
    • DBCLUSTER_SPECIFICATION: der Pfad zum geänderten DBCluster-Manifest.
  4. Optional: Bereinigen Sie die Komponenten auf dem entfernten Knoten.

    alloydbctl

    Deinstallieren Sie die AlloyDB Omni-Komponenten manuell, um den entfernten Knoten zu bereinigen.

    Ansible

    Der Ansible-Orchestrator bereinigt die folgenden Komponenten automatisch auf der VM, sofern sie vorhanden sind:

    • AlloyDB Omni
    • AlloyDB Omni-Monitor
    • Knotenmanager
    • pgBackRest
    • PgBouncer
    • Keepalived