Puoi aggiungere nodi di standby a un cluster esistente per scalare i carichi di lavoro di lettura o aumentare l'alta affidabilità. Puoi anche rimuovere nodi di database specifici per la manutenzione mirata o la disattivazione permanente per ridurre la capacità del cluster.
Prima di iniziare
- Assicurati che il cluster sia in uno stato integro e che
status.phasesiaReady. - Se aggiungi un nuovo nodo, verifica che soddisfi i requisiti di sistema e che siano installati i componenti AlloyDB Omni richiesti.
Aggiungere un nodo di database
Per aggiungere un nuovo nodo di database di standby al cluster, devi aggiornare sia la specifica di deployment, nota anche come inventario, sia la specifica della risorsa del cluster di database.
Per aggiornare la specifica di deployment, apri il file
deployment_spec.yamle aggiungi l'indirizzo IP o il nome host del nuovo nodo nel gruppoprimary_instance_nodes.alloydbomni: children: primary_instance_nodes: hosts: db-node-1: db-node-2: NEW_NODE:Sostituisci
NEW_NODEcon l'indirizzo IP o il nome host del nuovo nodo di standby che stai aggiungendo.Per aggiornare la specifica della risorsa, apri il file di specifica della risorsa
DBClustere incrementa il valorenumberOfStandbysin base al numero di nodi che stai aggiungendo: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.Sostituisci le seguenti variabili:
DB_CLUSTER_NAME: il nome del cluster di database.NEW_STANDBY_COUNT: il nuovo numero totale incrementato di nodi di standby nel cluster.
Applica le specifiche delle risorse aggiornate utilizzando uno dei seguenti metodi. L'orchestratore RPM esegue automaticamente il provisioning del nuovo nodo:
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
Per applicare le modifiche utilizzando Ansible, completa i seguenti passaggi:
Crea un playbook
add.ymlcon i seguenti contenuti:--- # 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.addSostituisci le seguenti variabili:
ANSIBLE_USER: l'utente con accesso senza password a tutti i nodi e autorizzazionisudo.PRIVATE_SSH_KEY_PATH: il percorso della chiave SSH privata per l'autenticazione senza password.
Esegui il playbook creato:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" add.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
Sostituisci le seguenti variabili:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
Rimuovere un nodo di database specifico
Per rimuovere un nodo di standby specifico dal cluster, devi rimuoverlo dalla specifica del deployment e ridurre il conteggio di standby.
Per aggiornare la specifica del deployment, apri il file
deployment_spec.yamle rimuovi l'indirizzo IP o il nome host del nodo di destinazione dal gruppoprimary_instance_nodes.Per aggiornare la specifica della risorsa, apri il file di specifica della risorsa
DBClustere riduci il valorenumberOfStandbys: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.Sostituisci le seguenti variabili:
DB_CLUSTER_NAME: il nome del cluster di database.NEW_STANDBY_COUNT: il nuovo numero totale ridotto di nodi di standby nel cluster.
Applica i manifest di aggiornamento utilizzando uno dei seguenti metodi:
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
Per applicare le modifiche utilizzando Ansible, completa i seguenti passaggi:
Crea un playbook
remove.ymlcon i seguenti contenuti:--- # 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.removeSostituisci le seguenti variabili:
ANSIBLE_USER: l'utente con accesso senza password a tutti i nodi e autorizzazionisudo.PRIVATE_SSH_KEY_PATH: il percorso della chiave SSH privata per l'autenticazione senza password.
Esegui il playbook:
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" remove.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
Sostituisci le seguenti variabili:
DEPLOYMENT_SPEC_PATH: il percorso della directory delle specifiche di deployment.DBCLUSTER_SPECIFICATION: il percorso del manifestDBClusterche hai modificato.
(Facoltativo) Esegui la pulizia dei componenti sul nodo rimosso.
alloydbctlDisinstalla manualmente i componenti AlloyDB Omni per eseguire la pulizia del nodo rimosso.
Ansible
L'orchestratore Ansible esegue automaticamente la pulizia dei seguenti componenti sulla VM, se presenti:
- AlloyDB Omni
- Monitor di AlloyDB Omni
- Node Manager
pgBackRestPgBouncerKeepalived