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_nodesyang 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.
- Port
Jika Anda menggunakan lingkungan Google Cloud , tetapkan
ENVIRONMENT_TYPEkegcp. Kemudian, Anda harus mengautentikasi akun gcloud CLI dengan menjalankangcloud auth loginsebagai penggunaroot. Selain itu, akun yang diautentikasi harus memiliki izin berikut:compute.instances.getcompute.instances.listcompute.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—onpremataugcp.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 tempatVIRTUAL_IPdikonfigurasi. Nilai defaultnya adalaheth0.
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 postgresGanti VIRTUAL_IP dengan alamat IP yang Anda
konfigurasi di kolom loadBalancerIP.
Load balancer akan otomatis mengarahkan koneksi Anda ke node utama saat ini.