Gérer les nœuds de cluster dans AlloyDB Omni

Sélectionnez une version de la documentation :

Cette page explique comment ajouter ou supprimer des nœuds de base de données dans un cluster AlloyDB Omni existant à l'aide de l'outil d'orchestration RPM.

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

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.

  1. Pour mettre à jour la spécification de déploiement, ouvrez votre fichier deployment_spec.yaml et ajoutez l'adresse IP ou le nom d'hôte du nouveau nœud sous le groupe primary_instance_nodes.

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

    Remplacez NEW_NODE par l'adresse IP ou le nom d'hôte du nouveau nœud de secours que vous ajoutez.

  2. Pour mettre à jour la spécification de ressource, ouvrez votre fichier de spécification de ressource DBCluster et incrémentez la valeur numberOfStandbys du 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.
  3. 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 :

    alloydbctl

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

    Ansible

    Pour appliquer les modifications à l'aide d'Ansible, procédez comme suit :

    1. Créez un playbook add.yml avec 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.add
      

      Remplacez les variables suivantes :

      • ANSIBLE_USER : utilisateur disposant d'un accès sans mot de passe à tous les nœuds et des autorisations sudo.
      • PRIVATE_SSH_KEY_PATH : chemin d'accès à la clé SSH privée pour l'authentification sans mot de passe.
    2. 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 manifeste DBCluster que 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.

  1. Pour mettre à jour la spécification de déploiement, ouvrez votre fichier deployment_spec.yaml et supprimez l'adresse IP ou le nom d'hôte du nœud cible du groupe primary_instance_nodes.

  2. Pour mettre à jour la spécification de ressource, ouvrez votre fichier de spécification de ressource DBCluster et décrémentez la valeur 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.
    

    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.
  3. Appliquez les fichiers manifestes mis à jour à l'aide de l'une des méthodes suivantes :

    alloydbctl

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

    Ansible

    Pour appliquer les modifications à l'aide d'Ansible, procédez comme suit :

    1. Créez un playbook remove.yml avec 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.remove
      

      Remplacez les variables suivantes :

      • ANSIBLE_USER : utilisateur disposant d'un accès sans mot de passe à tous les nœuds et des autorisations sudo.
      • PRIVATE_SSH_KEY_PATH : chemin d'accès à la clé SSH privée pour l'authentification sans mot de passe.
    2. 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 manifeste DBCluster que vous avez modifié.
  4. Facultatif : Nettoyez les composants sur le nœud supprimé.

    alloydbctl

    Dé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
    • pgBackRest
    • PgBouncer
    • Keepalived