配置负载均衡器

选择文档版本:

您可以使用 RPM Orchestrator 为 AlloyDB Omni 配置负载均衡器。

限制

存在以下限制:

  • 端点仅限于 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.get
    • compute.instances.list
    • compute.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:确定集群设置的环境 - onpremgcp

  • 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 地址。

负载均衡器会自动将您的连接路由到当前的主节点。