准备工作
在安装组件之前,请确保您已完成以下前提条件:
- 安装编排器:确保在控制节点上安装 AlloyDB Omni 编排器 Ansible 集合或 CLI。
- 预配机器:您必须根据所选架构(例如独立或高可用性)预配 RHEL9 虚拟机。
- 配置网络和防火墙:确保节点之间所有必需的端口都处于打开状态。这包括用于数据库流量的
5432、用于etcd的2379/2380,以及 Cluster Manager 和 Node Manager 使用的管理端口6703、6702和6700。 - 检查软件包依赖项:如果您通过私有 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:包含etcdRPM 的代码库的网址。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_1、DB_HOST_2、DB_HOST_3:指定为数据库节点的虚拟机的 IP 地址或完全限定域名 (FQDN)。LB_HOST_1、LB_HOST_2:指定为负载均衡器节点的虚拟机的 IP 地址或完全限定域名 (FQDN)。ETCD_HOST_1、ETCD_HOST_2、ETCD_HOST_3:指定为etcd节点的虚拟机的 IP 地址或 FQDN。CM_HOST_1、CM_HOST_2、CM_HOST_3:指定为集群管理器节点的虚拟机的 IP 地址或 FQDN。
安装组件
您可以使用 Ansible 安装 AlloyDB Omni 组件及其依赖项,也可以在每个节点上手动安装软件包。
使用 Ansible 安装 AlloyDB Omni 组件
建议使用提供的 Ansible 角色进行安装。
创建名为
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。
使用您的广告资源文件执行 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 组件
在所有
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安装
etcd:sudo dnf install -y etcd通过修改配置文件来引导
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_1:etcd集群中第一个节点的名称。ETCD_HOST_IP_1:etcd集群中第一个节点的 IP 地址。ETCD_HOST_2:etcd集群中第二个节点的名称。ETCD_HOST_IP_2:etcd集群中第二个节点的 IP 地址。ETCD_HOST_3:etcd集群中第三个节点的名称。ETCD_HOST_IP_3:etcd集群中第三个节点的 IP 地址。CLUSTER_NAME:控制平面中的集群名称。
将防火墙配置为允许在端口
2379和2380上进行 TCP 通信。启动 etcd:
sudo systemctl enable etcd sudo systemctl start etcd
在集群管理器节点上安装 AlloyDB Omni 组件
在所有集群管理器节点上,创建一个名为
/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安装集群管理器:
sudo dnf install -y alloydbomni_cluster_manager启动集群管理器:
sudo systemctl enable alloydbomni_cluster_manager sudo systemctl start alloydbomni_cluster_manager
在数据库节点上安装 AlloyDB Omni 组件
在所有数据库节点上,创建一个名为
/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安装组件:
sudo dnf install -y alloydbomniPG_VERSION alloydbomni_monitor alloydbomni_node_manager pgbackrest启动节点管理器:
sudo systemctl enable alloydbomni_node_manager sudo systemctl start alloydbomni_node_manager(可选)如果您不使用单独的负载均衡器节点,请安装
pgbouncer和keepalived:sudo dnf install -y pgbouncer keepalived
在负载均衡器节点上安装 AlloyDB Omni 组件
在所有负载均衡器节点上,创建一个名为
/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安装负载均衡器组件:
sudo dnf install -y alloydbomni_node_manager keepalived pgbouncer haproxy启动节点管理器:
sudo systemctl enable alloydbomni_node_manager sudo systemctl start alloydbomni_node_manager
已安装的 AlloyDB Omni 组件的摘要
安装过程会根据节点类型部署几个关键 RPM 软件包:
| 节点类型 | 已安装的组件 | 备注 |
|---|---|---|
| 主实例节点 | alloydbomniPG_VERSION、alloydbomni_monitor、alloydbomni_node_manager、pgbouncer、pgbackrest |
数据库引擎、监控和管理组件。 |
| 负载平衡器节点 | 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。
创建名为
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。
执行 playbook。您必须传递
cleanup_data=true和cleanup_config=true作为额外的变量,以移除配置文件和数据目录。ansible-playbook -i deployment_spec.yaml uninstall.yaml -e "cleanup_data=true cleanup_config=true"
手动卸载 AlloyDB Omni 组件
如果您使用的是 AlloyDB Omni Orchestrator CLI,则必须手动从每个节点中移除 RPM。
在所有数据库节点上,运行以下命令:
sudo dnf remove -y alloydbomni_node_manager alloydbomniPG_VERSION alloydbomni_monitor pgbackrest keepalived pgbouncer在所有负载均衡器节点上,运行以下命令:
sudo dnf remove -y alloydbomni_node_manager keepalived haproxy pgbouncer在所有集群管理器节点上运行以下命令:
sudo dnf remove -y alloydbomni_cluster_manager可选:在所有 etcd 节点上,运行以下命令以卸载 etcd 并清理 etcd 数据:
sudo dnf remove -y etcd sudo rm -rf /var/lib/etcd/data
后续步骤
如需自带 TLS 证书和密钥文件,请参阅 AlloyDB Omni 如何使用 TLS。