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
- Achten Sie darauf, dass sich Ihr Cluster in einem fehlerfreien Zustand befindet und dass
status.phaseaufReadygesetzt ist. - Wenn Sie einen neuen Knoten hinzufügen, prüfen Sie, ob er die Systemanforderungen erfüllt und die erforderlichen AlloyDB Omni-Komponenten installiert sind.
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.
Ö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 Gruppeprimary_instance_nodeshinzu.alloydbomni: children: primary_instance_nodes: hosts: db-node-1: db-node-2: NEW_NODE:Ersetzen Sie
NEW_NODEdurch die IP-Adresse oder den Hostnamen des neuen Standby-Knotens, den Sie hinzufügen.Öffnen Sie die Ressourcenspezifikationsdatei
DBCluster, um die Ressourcenspezifikation zu aktualisieren, und erhöhen Sie den Wert vonnumberOfStandbysum 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.
Wenden Sie die aktualisierten Ressourcenspezifikationen mit einer der folgenden Methoden an. Der RPM-Orchestrator stellt den neuen Knoten automatisch bereit:
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
So wenden Sie die Änderungen mit Ansible an:
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.addErsetzen Sie die folgenden Variablen:
ANSIBLE_USER: der Nutzer mit passwortlosem Zugriff auf alle Knoten undsudo-Berechtigungen.PRIVATE_SSH_KEY_PATH: der Pfad zum privaten SSH-Schlüssel für die passwortlose Authentifizierung.
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ändertenDBCluster-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.
Ö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 Gruppeprimary_instance_nodes.Öffnen Sie die Ressourcenspezifikationsdatei
DBCluster, um die Ressourcenspezifikation zu aktualisieren, und verringern Sie den Wert vonnumberOfStandbys: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.
Wenden Sie die aktualisierten Manifeste mit einer der folgenden Methoden an:
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
So wenden Sie die Änderungen mit Ansible an:
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.removeErsetzen Sie die folgenden Variablen:
ANSIBLE_USER: der Nutzer mit passwortlosem Zugriff auf alle Knoten undsudo-Berechtigungen.PRIVATE_SSH_KEY_PATH: der Pfad zum privaten SSH-Schlüssel für die passwortlose Authentifizierung.
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ändertenDBCluster-Manifest.
Optional: Bereinigen Sie die Komponenten auf dem entfernten Knoten.
alloydbctlDeinstallieren 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
pgBackRestPgBouncerKeepalived