使用 RPM Orchestrator 安装 AlloyDB Omni

选择文档版本:

本页面介绍了如何使用 AlloyDB Omni Orchestrator 安装 AlloyDB Omni 软件堆栈及其管理组件。

准备工作

在安装组件之前,请确保您已完成以下前提条件:

  • 安装编排器:确保在控制节点上安装 AlloyDB Omni 编排器 Ansible 集合或 CLI。
  • 预配机器:您必须根据所选架构(例如独立或高可用性)预配 RHEL9 虚拟机。
  • 配置网络和防火墙:确保节点之间所有必需的端口都处于打开状态。这包括用于数据库流量的 5432、用于 etcd2379/2380,以及 Cluster Manager 和 Node Manager 使用的管理端口 670367026700
  • 检查软件包依赖项:如果您通过私有 Yum 代码库管理软件包,请按照代码库管理说明将依赖的 RPM 文件纳入代码库中。

准备部署规范清单

编排器使用 Ansible 资源清单格式的部署规范文件来了解您的集群拓扑。创建一个名为 deployment_spec.yaml 的文件,其中包含您的节点详细信息。

alloydbomni:
  vars:
    cluster_manager:
      name: "MANAGEMENT_CLUSTER_NAME"
    etcd:
      setup: SETUP_ETCD
      config_forcewrite: FORCE_OVERWRITE_ETCD
      # version: ETCD_VERSION  # Optional: defaults to the latest version
      # repo_url: ETCD_REPOSITORY_URL  # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni:
      major_version: "PG_VERSION" # Mandatory: for example, 18
      # version: ALLOYDB_OMNI_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL     # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_monitor:
      # version: ALLOYDB_OMNI_MONITOR_VERSION    # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_cluster_manager:
      # version: ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION      # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    alloydbomni_node_manager:
      # version: ALLOYDB_OMNI_NODE_MANAGER_VERSION         # Optional: defaults to the latest version
      # repo_url: ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbouncer:
      # version: ALLOYDB_OMNI_PGBOUNCER_VERSION    # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional
    pgbackrest:
      # version: ALLOYDB_OMNI_PGBACKREST_VERSION   # Optional
      # repo_url: ALLOYDB_OMNI_COMMON_REPOSITORY_URL   # Optional
      # repo_gpg_key_url: GPG_KEY  # Optional

  children:
    primary_instance_nodes:
      hosts:
        DB_HOST_1:
        DB_HOST_2:
        DB_HOST_3:
    load_balancer_nodes:    # Optional. Host group for load balancer. If empty, no load balancer is configured.
      hosts:
        LB_HOST_1:
        LB_HOST_2:
    etcd_nodes:     # Optional: Host group where etcd is set up
      hosts:
        ETCD_HOST_1:
        ETCD_HOST_2:
        ETCD_HOST_3:
    cluster_manager_nodes:    # Optional: Host group for cluster manager
      hosts:
        CM_HOST_1:
        CM_HOST_2:
        CM_HOST_3:

替换以下内容:

  • MANAGEMENT_CLUSTER_NAME:管理集群的名称。如果管理集群和数据库集群安装在同一节点上,则它们的名称可以相同,例如 my-management-cluster
  • SETUP_ETCD:指定编排程序是否必须配置和引导 etcd 集群。如果设置为 true,编排器会在指定的 etcd 节点上执行初始 etcd 设置和初始化。如果您的 deployment_spec 中未定义 etcd 节点,则默认在集群管理器节点上配置 etcd。此形参对应于部署规范中的 etcd.setup 键。
  • FORCE_OVERWRITE_ETCD:确定在设置过程中是否替换现有的 etcd 配置文件。设置为 true 可覆盖目标节点上的现有配置文件;否则,设置为 false(默认值)可保留现有配置并防止意外的服务中断。
  • ETCD_VERSION:要安装的 etcd 软件包的版本,例如 3.4.13
  • ETCD_REPOSITORY_URL:包含 etcd RPM 的代码库的网址。
  • PG_VERSION:AlloyDB Omni 安装所用的主要 PostgreSQL 版本,例如 18
  • ALLOYDB_OMNI_VERSION:要安装的 AlloyDB Omni 数据库引擎的版本,例如 18.1.0。如果省略,编排器将安装最新可用版本。
  • ALLOYDB_OMNI_COMMON_REPO_URL:包含 AlloyDB Omni、监控器、PgBouncer 和 pgBackRest RPM 的通用代码库的网址。
  • GPG_KEY:用于 GNU Privacy Guard (GPG) 验证的 Google 公钥的位置,例如 https://dl.google.com/linux/linux_signing_key.pub。如果密钥已下载到所有虚拟机上的某个文件,也可以将其设置为路径,例如 /tmp/linux_signing_key.pub
  • ALLOYDB_OMNI_MONITOR_VERSION:要安装的 AlloyDB Omni 监控软件包的版本。默认值为最新可用版本。
  • ALLOYDB_OMNI_CLUSTER_MANAGER_VERSION:要安装的 AlloyDB Omni 集群管理器的版本。如果省略,编排器将安装最新的可用版本。
  • ALLOYDB_OMNI_ORCHESTRATOR_REPO_URL:包含 AlloyDB Omni 集群管理器和节点管理器 RPM 的代码库的网址。
  • ALLOYDB_OMNI_NODE_MANAGER_VERSION:要安装的 AlloyDB Omni 节点管理器的版本。如果省略,编排器会安装最新的可用版本。
  • ALLOYDB_OMNI_PGBOUNCER_VERSION:要安装的 PgBouncer 软件包的版本。
  • ALLOYDB_OMNI_PGBACKREST_VERSION:要安装的 pgBackRest 软件包的版本。
  • DB_HOST_1DB_HOST_2DB_HOST_3:指定为数据库节点的虚拟机的 IP 地址或完全限定域名 (FQDN)。
  • LB_HOST_1LB_HOST_2:指定为负载均衡器节点的虚拟机的 IP 地址或完全限定域名 (FQDN)。
  • ETCD_HOST_1ETCD_HOST_2ETCD_HOST_3:指定为 etcd 节点的虚拟机的 IP 地址或 FQDN。
  • CM_HOST_1CM_HOST_2CM_HOST_3:指定为集群管理器节点的虚拟机的 IP 地址或 FQDN。

安装组件

您可以使用 Ansible 安装 AlloyDB Omni 组件及其依赖项,也可以在每个节点上手动安装软件包。

使用 Ansible 安装 AlloyDB Omni 组件

建议使用提供的 Ansible 角色进行安装。

  1. 创建名为 install.yaml 的 playbook,该 playbook 引用了编排器集合中的安装角色。

      - name: Install AlloyDB Omni cluster components
        hosts: all
        vars:
          ansible_become: true
          ansible_user: SSH_USER
          ansible_ssh_private_key_file: SSH_KEY_PATH
        roles:
          - role: google.alloydbomni_orchestrator.install
    

    替换以下内容:

    • SSH_USER:您用于通过 SSH 连接到集群中节点的用户名。
    • SSH_KEY_PATH:控制节点上 SSH 私钥文件的路径,例如 ~/.ssh/id_rsa
  2. 使用您的广告资源文件执行 playbook,以在所有指定节点上下载并安装 RPM。

      ansible-playbook -i deployment_spec.yaml install.yaml
    

手动安装 AlloyDB Omni 组件

如果您不使用 Ansible,则必须在集群中的每个节点上手动安装 RPM。

  • REPO_GPG_KEY:用于 GNU Privacy Guard (GPG) 验证的 Google 公钥的位置,例如 https://dl.google.com/linux/linux_signing_key.pub。如果密钥已下载到所有虚拟机上的某个文件,也可以将其设置为路径,例如 file:///tmp/linux_signing_key.pub

在 etcd 节点上安装 AlloyDB Omni 组件

  1. 在所有 etcd 节点上,创建一个名为 /etc/yum.repos.d/alloydb-etcd.repo 的 YUM 代码库配置文件:

    [etcd]
    name=AlloyDB Omni ETCD
    baseurl=ETCD_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 安装 etcd

    sudo dnf install -y etcd
    
  3. 通过修改配置文件来引导 etcd。您必须先进行 etcd 引导,然后才能安装 AlloyDB Omni 组件。

    etcd_nodes 上,修改 /etc/etcd/etcd.conf

    ETCD_NAME=ETCD_HOST
    ETCD_DATA_DIR=/var/lib/etcd/data
    ETCD_LISTEN_PEER_URLS=https://ETCD_HOST_IP:2380,https://127.0.0.1:2380
    ETCD_LISTEN_CLIENT_URLS=https://ETCD_HOST_IP:2379,https://127.0.0.1:2379
    ETCD_INITIAL_ADVERTISE_PEER_URLS=https://ETCD_HOST_IP:2380
    ETCD_ADVERTISE_CLIENT_URLS=https://ETCD_HOST_IP:2379
    
    ETCD_INITIAL_CLUSTER=ETCD_HOST_1=https://ETCD_HOST_IP_1:2380,ETCD_HOST_2=https://ETCD_HOST_IP_2:2380,ETCD_HOST_3=https://ETCD_HOST_IP_3:2380
    
    ETCD_INITIAL_CLUSTER_STATE=new
    ETCD_INITIAL_CLUSTER_TOKEN=CLUSTER_NAME
    ETCD_ENABLE_V2=true
    
    ETCD_CLIENT_CERT_AUTH=true
    ETCD_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    ETCD_PEER_CLIENT_CERT_AUTH=true
    ETCD_PEER_TRUSTED_CA_FILE=/var/lib/etcd/ssl/etcd-ca.crt
    ETCD_PEER_CERT_FILE=/var/lib/etcd/ssl/etcd-tls.crt
    ETCD_PEER_KEY_FILE=/var/lib/etcd/ssl/etcd-tls.key
    

    其中:

    • ETCD_HOST:当前 etcd 主机。
    • ETCD_HOST_IP:当前 etcd 主机 IP。
    • ETCD_HOST_1etcd 集群中第一个节点的名称。
    • ETCD_HOST_IP_1etcd 集群中第一个节点的 IP 地址。
    • ETCD_HOST_2etcd 集群中第二个节点的名称。
    • ETCD_HOST_IP_2etcd 集群中第二个节点的 IP 地址。
    • ETCD_HOST_3etcd 集群中第三个节点的名称。
    • ETCD_HOST_IP_3etcd 集群中第三个节点的 IP 地址。
    • CLUSTER_NAME:控制平面中的集群名称。
  4. 将防火墙配置为允许在端口 23792380 上进行 TCP 通信。

  5. 启动 etcd:

    sudo systemctl enable etcd
    sudo systemctl start etcd
    

在集群管理器节点上安装 AlloyDB Omni 组件

  1. 在所有集群管理器节点上,创建一个名为 /etc/yum.repos.d/alloydb-orchestrator.repo 的 YUM 代码库配置文件:

    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 安装集群管理器:

    sudo dnf install -y alloydbomni_cluster_manager
    
  3. 启动集群管理器:

    sudo systemctl enable alloydbomni_cluster_manager
    sudo systemctl start alloydbomni_cluster_manager
    

在数据库节点上安装 AlloyDB Omni 组件

  1. 在所有数据库节点上,创建一个名为 /etc/yum.repos.d/alloydb-omni.repo 的 YUM 代码库配置文件:

    [alloydbomni_core]
    name=AlloyDB Omni Core
    baseurl=ALLOYDB_OMNI_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
    [alloydbomni_common]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_orchestrator]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 安装组件:

    sudo dnf install -y alloydbomniPG_VERSION alloydbomni_monitor alloydbomni_node_manager pgbackrest
    
  3. 启动节点管理器:

    sudo systemctl enable alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
    
  4. (可选)如果您不使用单独的负载均衡器节点,请安装 pgbouncerkeepalived

    sudo dnf install -y pgbouncer keepalived
    

在负载均衡器节点上安装 AlloyDB Omni 组件

  1. 在所有负载均衡器节点上,创建一个名为 /etc/yum.repos.d/alloydb-omni-lb.repo 的 YUM 代码库配置文件:

    [pgbouncer]
    name=AlloyDB Omni Common
    baseurl=ALLOYDB_OMNI_COMMON_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    priority=1
    
    [alloydbomni_node_manager]
    name=AlloyDB Omni Orchestrator
    baseurl=ALLOYDB_OMNI_ORCHESTRATOR_REPOSITORY_URL
    enabled=1
    repo_gpgcheck=0
    gpgcheck=1
    gpgkey=REPO_GPG_KEY
    
  2. 安装负载均衡器组件:

    sudo dnf install -y alloydbomni_node_manager keepalived pgbouncer haproxy
    
  3. 启动节点管理器:

    sudo systemctl enable alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
    

已安装的 AlloyDB Omni 组件的摘要

安装过程会根据节点类型部署几个关键 RPM 软件包:

节点类型 已安装的组件 备注
主实例节点 alloydbomniPG_VERSIONalloydbomni_monitoralloydbomni_node_managerpgbouncerpgbackrest 数据库引擎、监控和管理组件。
负载平衡器节点 haproxy 可选。如果负载均衡器节点不可用,则跳过安装。
集群管理器节点 alloydbomni_cluster_manager 如果没有专用节点,可以安装在数据库节点上。如果未指定集群管理器节点,则集群管理器组件将安装在 primary_instance_nodes 上。
etcd 节点 etcd 可根据需要在集群管理器节点上安装。如果未指定 etcd 节点,则 etcd 会安装在 cluster_manager_nodes

卸载组件

如果您需要从环境中移除 AlloyDB Omni 安装(例如,为了退役集群或准备进行全新重新安装),则可以卸载其所有软件组件。您可以使用 Ansible 卸载 AlloyDB Omni,也可以手动从每个节点中移除 RPM。

使用 Ansible 卸载 AlloyDB Omni 组件

如需使用 Ansible 移除 AlloyDB Omni 软件堆栈组件,请使用现有清单文件和引用 google.alloydbomni_orchestrator.uninstall 角色的 playbook。

  1. 创建名为 uninstall.yaml 的 playbook。

    - name: Uninstall AlloyDB Omni cluster
      hosts: all
      vars:
        ansible_become: true
        ansible_user: SSH_USER
        ansible_ssh_private_key_file: SSH_KEY_PATH
      roles:
        - role: google.alloydbomni_orchestrator.uninstall
    

    替换以下内容:

    • SSH_USER:您用于通过 SSH 连接到集群中节点的用户名。
    • SSH_KEY_PATH:控制节点上 SSH 私钥文件的路径,例如 ~/.ssh/id_rsa
  2. 执行 playbook。您必须传递 cleanup_data=truecleanup_config=true 作为额外的变量,以移除配置文件和数据目录。

    ansible-playbook -i deployment_spec.yaml uninstall.yaml -e "cleanup_data=true cleanup_config=true"
    

手动卸载 AlloyDB Omni 组件

如果您使用的是 AlloyDB Omni Orchestrator CLI,则必须手动从每个节点中移除 RPM。

  1. 在所有数据库节点上,运行以下命令:

    sudo dnf remove -y alloydbomni_node_manager alloydbomniPG_VERSION alloydbomni_monitor pgbackrest keepalived pgbouncer
    
  2. 在所有负载均衡器节点上,运行以下命令:

    sudo dnf remove -y alloydbomni_node_manager keepalived haproxy pgbouncer
    
  3. 在所有集群管理器节点上运行以下命令:

    sudo dnf remove -y alloydbomni_cluster_manager
    
  4. 可选:在所有 etcd 节点上,运行以下命令以卸载 etcd 并清理 etcd 数据:

    sudo dnf remove -y etcd
    sudo rm -rf /var/lib/etcd/data
    

后续步骤