Vous pouvez ajouter des nœuds de secours à un cluster existant pour mettre à l'échelle vos charges de travail en lecture ou augmenter la haute disponibilité. Vous pouvez également supprimer des nœuds de base de données spécifiques pour une maintenance ciblée ou une mise hors service permanente afin de réduire la capacité du cluster.
Avant de commencer
- Assurez-vous que votre cluster est en bon état et que
status.phaseestReady. - Si vous ajoutez un nœud, vérifiez qu'il répond à la configuration système requise et que les composants AlloyDB Omni requis sont installés.
Ajouter un nœud de base de données
Pour ajouter un nœud de base de données de secours à votre cluster, vous devez mettre à jour à la fois votre spécification de déploiement, également appelée inventaire, et la spécification de ressource de votre cluster de bases de données.
Pour mettre à jour la spécification de déploiement, ouvrez votre fichier
deployment_spec.yamlet ajoutez l'adresse IP ou le nom d'hôte du nouveau nœud sous le groupeprimary_instance_nodes.alloydbomni: children: primary_instance_nodes: hosts: db-node-1: db-node-2: NEW_NODE:Remplacez
NEW_NODEpar l'adresse IP ou le nom d'hôte du nouveau nœud de secours que vous ajoutez.Pour mettre à jour la spécification de ressource, ouvrez votre fichier de spécification de ressource
DBClusteret incrémentez la valeurnumberOfStandbysdu nombre de nœuds que vous ajoutez :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.Remplacez les variables suivantes :
DB_CLUSTER_NAME: nom de votre cluster de bases de données.NEW_STANDBY_COUNT: nouveau nombre total incrémenté de nœuds de secours dans votre cluster.
Appliquez les spécifications de ressource mises à jour à l'aide de l'une des méthodes suivantes. L'outil d'orchestration RPM provisionne automatiquement le nouveau nœud :
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
Pour appliquer les modifications à l'aide d'Ansible, procédez comme suit :
Créez un playbook
add.ymlavec le contenu suivant :--- # 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.addRemplacez les variables suivantes :
ANSIBLE_USER: utilisateur disposant d'un accès sans mot de passe à tous les nœuds et des autorisationssudo.PRIVATE_SSH_KEY_PATH: chemin d'accès à la clé SSH privée pour l'authentification sans mot de passe.
Exécutez le playbook créé :
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" add.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
Remplacez les variables suivantes :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Supprimer un nœud de base de données spécifique
Pour supprimer un nœud de secours spécifique de votre cluster, vous devez le supprimer de la spécification de déploiement et décrémenter le nombre de secours.
Pour mettre à jour la spécification de déploiement, ouvrez votre fichier
deployment_spec.yamlet supprimez l'adresse IP ou le nom d'hôte du nœud cible du groupeprimary_instance_nodes.Pour mettre à jour la spécification de ressource, ouvrez votre fichier de spécification de ressource
DBClusteret décrémentez la valeurnumberOfStandbys: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.Remplacez les variables suivantes :
DB_CLUSTER_NAME: nom de votre cluster de bases de données.NEW_STANDBY_COUNT: nouveau nombre total décrémenté de nœuds de secours dans votre cluster.
Appliquez les fichiers manifestes mis à jour à l'aide de l'une des méthodes suivantes :
alloydbctlalloydbctl apply -d "DEPLOYMENT_SPEC_PATH" -r "DBCLUSTER_SPECIFICATION"Ansible
Pour appliquer les modifications à l'aide d'Ansible, procédez comme suit :
Créez un playbook
remove.ymlavec le contenu suivant :--- # 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.removeRemplacez les variables suivantes :
ANSIBLE_USER: utilisateur disposant d'un accès sans mot de passe à tous les nœuds et des autorisationssudo.PRIVATE_SSH_KEY_PATH: chemin d'accès à la clé SSH privée pour l'authentification sans mot de passe.
Exécutez le playbook :
ansible-playbook -i "DEPLOYMENT_SPEC_PATH" remove.yml \ -e resource_spec="DBCLUSTER_SPECIFICATION"
Remplacez les variables suivantes :
DEPLOYMENT_SPEC_PATH: chemin d'accès à votre répertoire de spécification de déploiement.DBCLUSTER_SPECIFICATION: chemin d'accès au fichier manifesteDBClusterque vous avez modifié.
Facultatif : Nettoyez les composants sur le nœud supprimé.
alloydbctlDésinstallez manuellement les composants AlloyDB Omni pour nettoyer le nœud supprimé.
Ansible
L'outil d'orchestration Ansible nettoie automatiquement les composants suivants sur la VM, s'ils sont présents :
- AlloyDB Omni
- Moniteur AlloyDB Omni
- Gestionnaire de nœud
pgBackRestPgBouncerKeepalived