限制
存在以下限制:
- 端点仅限于 ReadWrite 端点。未来将支持只读端点。
准备工作
在配置负载均衡器之前,请确保满足以下要求:
如需定义负载均衡器节点,请在部署规范文件中添加一个
load_balancer_nodes群组,其中包含专用负载均衡器虚拟机的 IP 地址或主机名:alloydbomni: vars: ... children: load_balancer_nodes: hosts: lb-node-1: lb-node-2:如需配置防火墙,请允许以下入站流量:
在专用负载均衡器虚拟机上:
端口
5432(TCP):用于 HAProxy 数据库流量。端口
6432(TCP):用于 PgBouncer 连接池流量(如果适用)。VRRP 协议:用于
keepalived领导者选举和健康检查。
在数据库节点上:
- 端口
8086(HTTP):用于负载均衡器健康检查。
- 端口
如果您使用的是 Google Cloud 环境,请将
ENVIRONMENT_TYPE设置为gcp。然后,您必须以root用户身份运行gcloud auth login来对您的 gcloud CLI 账号进行身份验证。此外,经过身份验证的账号必须具有以下权限:compute.instances.getcompute.instances.listcompute.instances.updateNetworkInterface
配置负载平衡器
RPM 编排器使用 HAProxy 来分配流量,并使用 Keepalived 通过虚拟 IP (VIP) 提供高可用性。
更新资源规范
在 DBCluster 规范文件中,添加 dbLoadBalancerOptions,以确保集群管理器和编排器知道如何管理负载平衡器端点。
DBCluster:
metadata:
name: DBCLUSTER_NAME
spec:
primarySpec:
# ... other primary settings ...
dbLoadBalancerOptions:
ENVIRONMENT_TYPE::
loadBalancerIP: "VIRTUAL_IP"
loadBalancerType: "internal"
loadBalancerInterface: "VIRTUAL_IP_INTERFACE"
替换以下内容:
ENVIRONMENT_TYPE:确定集群设置的环境 -onprem或gcp。DBCLUSTER_NAME:AlloyDB Omni 数据库集群的名称,例如my-db-cluster。VIRTUAL_IP:用于浮动虚拟 IP 的静态 IP 地址。数据库客户端应用使用此处定义的 IP 地址。为确保 Keepalived 可以成功广播无偿地址解析协议 (GARP),此 IP 地址必须满足以下条件:必须可用;不能是环回地址;如果是本地 IP 地址,则必须与主节点接口属于同一子网。VIRTUAL_IP_INTERFACE:配置了VIRTUAL_IP的网络接口。 默认值为eth0。
应用配置
使用您偏好的编排器界面应用配置更改。
Ansible
使用您的清单和资源规范文件运行引导 playbook:
ansible-playbook DBCLUSTER_PLAYBOOK -i "DEPLOYMENT_SPECIFICATION" \
-e resource_spec="DBCLUSTER_SPECIFICATION"执行以下变量替换操作:
DBCLUSTER_PLAYBOOK:您在创建集群中为数据库集群创建的 playbook 的路径。DEPLOYMENT_SPECIFICATION:您在安装 AlloyDB Omni 组件中创建的部署规范的路径。DBCLUSTER_SPECIFICATION:集群规范的路径。
alloydbctl
应用资源和部署规范:
alloydbctl apply -d "DEPLOYMENT_SPECIFICATION" -r "DBCLUSTER_SPECIFICATION"执行以下变量替换操作:
DEPLOYMENT_SPECIFICATION:您在安装 AlloyDB Omni 组件中创建的部署规范的路径。DBCLUSTER_SPECIFICATION:集群规范的路径。
验证负载均衡器
RPM 编排器完成设置后,验证您是否可以使用 VIP 连接到数据库集群:
psql -h VIRTUAL_IP -U postgres将 VIRTUAL_IP 替换为您在 loadBalancerIP 字段中配置的 IP 地址。
负载均衡器会自动将您的连接路由到当前的主节点。