Mengonfigurasi load balancer

Pilih versi dokumentasi:

Anda dapat mengonfigurasi load balancer untuk AlloyDB Omni menggunakan orchestrator RPM.

Batasan

Batasan berikut berlaku:

  • Endpoint ini terbatas pada endpoint ReadWrite. Endpoint hanya baca akan didukung pada masa mendatang.

Sebelum memulai

Sebelum mengonfigurasi load balancer, pastikan Anda memenuhi persyaratan berikut:

  • Untuk menentukan node load balancer, dalam file spesifikasi deployment, sertakan grup load_balancer_nodes yang berisi nama host atau alamat IP VM load balancer khusus Anda:

    alloydbomni:
      vars:
        ...
      children:
        load_balancer_nodes:
          hosts:
            lb-node-1:
            lb-node-2:
    
  • Untuk mengonfigurasi firewall, izinkan traffic masuk berikut:

    • Di VM load balancer khusus:

      • Port 5432 (TCP): untuk traffic database HAProxy.

      • Port 6432 (TCP): untuk traffic penggabungan koneksi PgBouncer, jika berlaku.

      • Protokol VRRP: untuk pemilihan pemimpin dan health check keepalived.

    • Pada node database:

      • Port 8086 (HTTP): untuk health check load balancer.
  • Jika Anda menggunakan lingkungan Google Cloud , tetapkan ENVIRONMENT_TYPE ke gcp. Kemudian, Anda harus mengautentikasi akun gcloud CLI dengan menjalankan gcloud auth login sebagai pengguna root. Selain itu, akun yang diautentikasi harus memiliki izin berikut:

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

Mengonfigurasi load balancer

Orchestrator RPM menggunakan HAProxy untuk mendistribusikan traffic dan Keepalived untuk memberikan ketersediaan tinggi dengan IP virtual (VIP).

Memperbarui spesifikasi resource

Dalam file spesifikasi DBCluster, tambahkan dbLoadBalancerOptions, yang memastikan pengelola cluster dan orkestrator mengetahui cara mengelola endpoint load balancer.

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

Ganti kode berikut:

  • ENVIRONMENT_TYPE: menentukan lingkungan tempat cluster disiapkan—onprem atau gcp.

  • DBCLUSTER_NAME: nama cluster database AlloyDB Omni Anda—misalnya, my-db-cluster.

  • VIRTUAL_IP: alamat IP statis yang digunakan untuk IP virtual mengambang. Aplikasi klien database menggunakan alamat IP yang ditentukan di sini. Untuk memastikan Keepalived dapat menyiarkan Gratuitous Address Resolution Protocol (GARP) dengan berhasil, alamat IP ini harus memenuhi kondisi berikut: harus tersedia; tidak boleh loopback; dan dalam kasus lokal, alamat IP tersebut harus termasuk dalam subnet yang sama dengan antarmuka node utama Anda.

  • VIRTUAL_IP_INTERFACE: antarmuka jaringan tempat VIRTUAL_IP dikonfigurasi. Nilai defaultnya adalah eth0.

Terapkan konfigurasi:

Terapkan perubahan konfigurasi menggunakan antarmuka orkestrator pilihan Anda.

Ansible

Jalankan playbook bootstrap menggunakan file spesifikasi resource dan inventaris Anda:

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

Ganti variabel berikut:

  • DBCLUSTER_PLAYBOOK: jalur ke playbook yang Anda buat untuk cluster database di Membuat cluster.

  • DEPLOYMENT_SPECIFICATION: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

  • DBCLUSTER_SPECIFICATION: jalur ke spesifikasi cluster Anda.

alloydbctl

Terapkan spesifikasi resource dan deployment:

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

Ganti variabel berikut:

  • DEPLOYMENT_SPECIFICATION: jalur ke spesifikasi deployment yang Anda buat di Menginstal komponen AlloyDB Omni.

  • DBCLUSTER_SPECIFICATION: jalur ke spesifikasi cluster Anda.

Memverifikasi load balancer

Setelah RPM orchestrator menyelesaikan penyiapan, pastikan Anda dapat terhubung ke cluster database menggunakan VIP:

psql -h VIRTUAL_IP -U postgres

Ganti VIRTUAL_IP dengan alamat IP yang Anda konfigurasi di kolom loadBalancerIP.

Load balancer akan otomatis mengarahkan koneksi Anda ke node utama saat ini.