Configurer l'équilibreur de charge

Sélectionnez une version de la documentation :

Vous pouvez configurer un équilibreur de charge pour AlloyDB Omni à l'aide de l'orchestrateur RPM.

Limites

Les limites suivantes s'appliquent :

  • Le point de terminaison est limité au point de terminaison ReadWrite. Les points de terminaison en lecture seule seront compatibles à l'avenir.

Avant de commencer

Avant de configurer l'équilibreur de charge, assurez-vous de remplir les conditions suivantes :

  • Pour définir les nœuds de l'équilibreur de charge, incluez un groupe load_balancer_nodes dans votre fichier de spécification de déploiement. Ce groupe doit contenir les noms d'hôte ou les adresses IP de vos VM d'équilibreur de charge dédiées :

    alloydbomni:
      vars:
        ...
      children:
        load_balancer_nodes:
          hosts:
            lb-node-1:
            lb-node-2:
    
  • Pour configurer le pare-feu, autorisez le trafic entrant suivant :

    • Sur les VM d'équilibreur de charge dédiées :

      • Port 5432 (TCP) : pour le trafic de la base de données HAProxy.

      • Port 6432 (TCP) : pour le trafic de mise en pool de connexions PgBouncer, le cas échéant.

      • Protocole VRRP : pour la sélection du leader keepalived et les vérifications d'état.

    • Sur les nœuds de base de données :

      • Port 8086 (HTTP) : pour les vérifications d'état de l'équilibreur de charge.
  • Si vous utilisez l' Google Cloud environnement, définissez ENVIRONMENT_TYPE sur gcp. Vous devez ensuite authentifier votre compte gcloud CLI en exécutant gcloud auth login en tant qu'utilisateur root. De plus, le compte authentifié doit disposer des autorisations suivantes :

    • compute.instances.get
    • compute.instances.list
    • compute.instances.updateNetworkInterface

Configurer l'équilibreur de charge

L'orchestrateur RPM utilise HAProxy pour distribuer le trafic et Keepalived pour assurer une haute disponibilité avec une adresse IP virtuelle.

Mettre à jour la spécification de ressource

Dans votre fichier de spécification DBCluster, ajoutez dbLoadBalancerOptions. Cela permet de s'assurer que le gestionnaire de cluster et l'orchestrateur savent comment gérer les points de terminaison de l'équilibreur de charge.

DBCluster:
  metadata:
    name: DBCLUSTER_NAME
  spec:
    primarySpec:
      # ... other primary settings ...
      dbLoadBalancerOptions:
        ENVIRONMENT_TYPE::
          loadBalancerIP: "VIRTUAL_IP"
          loadBalancerType: "internal"
          loadBalancerInterface: "VIRTUAL_IP_INTERFACE"

Remplacez les éléments suivants :

  • ENVIRONMENT_TYPE: détermine l'environnement dans lequel le cluster est configuré (onprem ou gcp).

  • DBCLUSTER_NAME: nom de votre cluster de bases de données AlloyDB Omni, par exemple my-db-cluster.

  • VIRTUAL_IP: adresse IP statique utilisée pour l'adresse IP virtuelle flottante. Les applications clientes de la base de données utilisent l'adresse IP définie ici. Pour vous assurer que Keepalived peut diffuser correctement les protocoles ARP (Gratuitous Address Resolution Protocols), cette adresse IP doit répondre aux conditions suivantes : elle doit être disponible, elle ne peut pas être en rebouclage et, dans le cas d'un environnement sur site, elle appartient au même sous-réseau que vos interfaces de nœud principal.

  • VIRTUAL_IP_INTERFACE: interface réseau sur laquelle VIRTUAL_IP est configurée. La valeur par défaut est eth0.

Appliquer la configuration

Appliquez les modifications de configuration à l'aide de l'interface de l'orchestrateur de votre choix.

Ansible

Exécutez le playbook d'amorçage à l'aide de vos fichiers d'inventaire et de spécification de ressource :

ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \
      -e resource_spec="DBCLUSTER_SPECIFICATION"

Remplacez les variables suivantes :

  • DBCLUSTER_PLAYBOOK: chemin d'accès au playbook que vous avez créé pour votre cluster de bases de données dans Créer un cluster.

  • DEPLOYMENT_SPECIFICATION: chemin d'accès à la spécification de déploiement que vous avez créée dans Installer les composants AlloyDB Omni.

  • DBCLUSTER_SPECIFICATION: chemin d'accès aux spécifications de votre cluster.

alloydbctl

Appliquez les spécifications de ressource et de déploiement :

alloydbctl apply -d "DEPLOYMENT_SPECIFICATION" -r "DBCLUSTER_SPECIFICATION"

Remplacez les variables suivantes :

  • DEPLOYMENT_SPECIFICATION: chemin d'accès à la spécification de déploiement que vous avez créée dans Installer les composants AlloyDB Omni.

  • DBCLUSTER_SPECIFICATION: chemin d'accès aux spécifications de votre cluster.

Vérifier l'équilibreur de charge

Une fois la configuration terminée par l'orchestrateur RPM, vérifiez que vous pouvez vous connecter au cluster de bases de données à l'aide de l'adresse IP virtuelle :

psql -h VIRTUAL_IP -U postgres

Remplacez VIRTUAL_IP par l'adresse IP que vous avez configurée dans le champ loadBalancerIP.

L'équilibreur de charge achemine automatiquement votre connexion vers le nœud principal actuel.