Configura il bilanciatore del carico

Select a documentation version:

Puoi configurare un bilanciatore del carico per AlloyDB Omni utilizzando l'orchestratore RPM.

Limitazioni

Si applicano le seguenti limitazioni:

  • L'endpoint è limitato all'endpoint ReadWrite. Gli endpoint di sola lettura saranno supportati in futuro.

Prima di iniziare

Prima di configurare il bilanciatore del carico, assicurati di soddisfare i seguenti requisiti:

  • Per definire i nodi del bilanciatore del carico, nel file di specifica del deployment includi un gruppo load_balancer_nodes che contenga i nomi host o gli indirizzi IP delle VM del bilanciatore del carico dedicato:

    alloydbomni:
      vars:
        ...
      children:
        load_balancer_nodes:
          hosts:
            lb-node-1:
            lb-node-2:
    
  • Per configurare il firewall, consenti il seguente traffico in entrata:

    • Nelle VM del bilanciatore del carico dedicato:

      • Porta 5432 (TCP): per il traffico del database HAProxy.

      • Porta 6432 (TCP): per il traffico di pooling delle connessioni PgBouncer, se applicabile.

      • Protocollo VRRP: per l'elezione del leader e i controlli di integrità di keepalived.

    • Sui nodi del database:

      • Porta 8086 (HTTP): per i controlli di integrità del bilanciatore del carico.
  • Se utilizzi l' Google Cloud ambiente, imposta ENVIRONMENT_TYPE su gcp. Dopodiché devi autenticare il tuo account gcloud CLI eseguendo gcloud auth login come utente root. Inoltre, l'account autenticato deve disporre delle seguenti autorizzazioni:

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

Configura il bilanciatore del carico

L'orchestratore RPM utilizza HAProxy per distribuire il traffico e Keepalived per fornire alta affidabilità con un IP virtuale (VIP).

Aggiorna la specifica della risorsa

Nel file di specifica DBCluster, aggiungi dbLoadBalancerOptions, che assicura che il gestore del cluster e l'orchestratore sappiano come gestire gli endpoint del bilanciatore del carico.

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

Sostituisci quanto segue:

  • ENVIRONMENT_TYPE: determina l'ambiente in cui è configurato il cluster: onprem o gcp.

  • DBCLUSTER_NAME: il nome del cluster di database AlloyDB Omni, ad esempio my-db-cluster.

  • VIRTUAL_IP: indirizzo IP statico utilizzato per l'IP virtuale mobile. Le applicazioni client di database utilizzano l'indirizzo IP definito qui. Per assicurarti che Keepalived possa trasmettere correttamente i protocolli di risoluzione degli indirizzi spontanei (GARP), questo indirizzo IP deve soddisfare le seguenti condizioni: deve essere disponibile, non può eseguire il loopback e, nel caso di on-premise, appartiene alla stessa subnet delle interfacce del nodo principale.

  • VIRTUAL_IP_INTERFACE: interfaccia di rete in cui VIRTUAL_IP è configurato. Il valore predefinito è eth0.

Applica la configurazione

Applica le modifiche alla configurazione utilizzando l'interfaccia dell'orchestratore che preferisci.

Ansible

Esegui il playbook di bootstrap utilizzando i file di inventario e di specifica delle risorse:

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

Sostituisci le seguenti variabili:

  • DBCLUSTER_PLAYBOOK: percorso del playbook che hai creato per il cluster di database in Crea un cluster.

  • DEPLOYMENT_SPECIFICATION: percorso della specifica del deployment che hai creato in Installa i componenti di AlloyDB Omni.

  • DBCLUSTER_SPECIFICATION: percorso delle specifiche del cluster.

alloydbctl

Applica le specifiche di risorse e deployment:

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

Sostituisci le seguenti variabili:

  • DEPLOYMENT_SPECIFICATION: percorso della specifica del deployment che hai creato in Installa i componenti di AlloyDB Omni.

  • DBCLUSTER_SPECIFICATION: percorso delle specifiche del cluster.

Verifica il bilanciatore del carico

Una volta completata la configurazione da parte dell'orchestratore RPM, verifica di poter connetterti al cluster di database utilizzando il VIP:

psql -h VIRTUAL_IP -U postgres

Sostituisci VIRTUAL_IP con l'indirizzo IP che hai configurato nel campo loadBalancerIP.

Il bilanciatore del carico instrada automaticamente la connessione al nodo principale corrente.