准备工作
确保您拥有部署规范文件 deployment_spec.yaml,其中包含所有节点和集群组件的详细信息。
升级编排器
编排器用于管理数据库集群。您必须先在控制节点上升级编排器,然后再升级其他集群组件。
Ansible
如果您使用 Ansible 剧本管理基础架构,请完成以下步骤:
在控制节点上运行以下命令,检查已安装的
google.alloydbomni_orchestrator集合版本:ansible-galaxy collection list | grep alloydbomni_orchestrator如需覆盖现有版本,请下载该集合 tar 文件的最新稳定版并执行强制安装:
ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gz将
NEW_VERSION替换为新集合的版本。
alloydbctl
如果您使用 alloydbctl 命令行工具,请完成以下步骤:
如需在控制节点上检查已安装的 RPM 编排器
alloydbomni_orchestrator软件包版本,请运行以下命令:rpm -q alloydbomni_orchestrator使用软件包管理器在控制节点上升级软件包:
sudo dnf upgrade alloydbomni_orchestrator
使用 Ansible 更新集群组件
Google 建议您使用提供的 Ansible 角色进行更新。
创建一个名为
update.yaml的剧本,该剧本引用编排器集合中的update角色。您必须将update_action参数值设置为update_rpm。默认情况下,
update角色会同时更新控制平面和数据平面。 如需仅更新控制平面或数据平面组件,请将另一个平面的参数设置为false。--- - hosts: all become: true vars: update_action: "update_rpm" ansible_user: SSH_USER ansible_ssh_private_key_file: PRIVATE_KEY_PATH update_control_plane: true # Optional argument if you want to only update data plane components update_data_plane: true # Optional argument if you want to only update control plane components roles: - role: google.alloydbomni_orchestrator.update替换以下内容:
SSH_USER:有权访问集群节点的 SSH 用户名。PRIVATE_KEY_PATH:私有 SSH 密钥文件的路径。update_action:更新范围。将此值设置为update_rpm。update_control_plane:可选。设置为false可仅更新数据平面组件。默认值为true。update_data_plane:可选。设置为false可仅更新控制平面组件。默认值为true。
如需在所有指定节点上执行更新,请使用清单文件运行剧本:
ansible-playbook -i DEPLOYMENT_SPEC update.yaml将
DEPLOYMENT_SPEC替换为部署规范文件的路径。确保部署规范文件定义了集群中每个组件的已安装版本。更新角色会根据您在清单文件中配置的版本来更新组件:
- 如果组件的版本与已安装的版本匹配,则更新角色不会对该组件进行任何更改。
- 如果您将组件的版本更改为特定的目标版本,则会将该组件更新为该版本。
- 如果您将组件的版本字段留空,则会将该组件更新为配置的仓库中的最新可用版本。
手动更新集群组件
如果您未使用 Ansible 编排器,或者想要对更新过程进行精细控制,则可以为集群中的每个节点手动更新 RPM 组件。建议在计划的维护窗口期间执行软件更新。
手动更新过程涉及更新以下两个平面:
控制平面(RPM 编排器组件):控制平面是控制和管理数据库集群的层。在 RPM 部署中,控制平面包括
cluster_manager、node_manager和etcd。数据平面(数据库集群):数据平面包含数据库集群组件,包括 AlloyDB Omni 数据库引擎本身、
monitor,以及pgBackRest、PgBouncer、keepalived和HAProxy等服务。 升级数据平面会将数据库版本更新、安全补丁和性能改进直接应用于数据库集群。
无论您的参考架构如何,更新控制平面的步骤都保持不变。您必须先更新控制平面组件,然后再更新数据平面。更新数据平面的步骤因数据库部署架构而异。
如需更新服务或软件包,请执行以下步骤:
停止服务:
sudo systemctl stop SERVICE使用以下命令之一升级软件包:
如需更新到最新可用版本:
sudo dnf upgrade PACKAGE如需更新到特定版本:
sudo dnf upgrade PACKAGE-VERSION
启动服务:
sudo systemctl start SERVICE
替换以下内容:
SERVICE:要停止和启动的服务的名称,例如pgbouncer或keepalived。PACKAGE:要更新的软件包的名称,例如pgbouncer或alloydbomni18。VERSION:要安装的目标软件包版本,例如18.3.0或18.3.0-2.rhel9。
手动更新控制平面
如需更新控制平面,请在指定节点上执行以下步骤:
如需停止所有集群管理器节点上的集群管理器,请运行以下命令:
sudo systemctl stop alloydbomni_cluster_manager如需更新所有 DCS 节点上的
etcd,请按顺序运行以下命令:sudo systemctl stop etcdsudo dnf upgrade etcdsudo systemctl start etcd如需更新所有节点上的节点管理器,请按顺序运行以下命令:
sudo systemctl stop alloydbomni_node_managersudo dnf upgrade alloydbomni_node_managersudo systemctl start alloydbomni_node_manager更新控制平面组件后,您可以更新所有集群管理器节点上的集群管理器,并在必要时重启它。
sudo dnf upgrade alloydbomni_cluster_managersudo systemctl start alloydbomni_cluster_manager
手动更新数据平面
如需更新数据平面,请按照为部署架构指定的顺序更新数据库和辅助服务。对于每项服务,您都必须严格按照停止服务、升级软件包和启动服务的顺序执行操作。
根据参考架构,按照部署说明操作。
使用
alloydbctl get命令检索集群状态,并将输出格式设置为 YAML:alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml替换以下内容:
RESOURCE_TYPE:要检查的资源类型,例如DBCluster。CLUSTER_NAME:数据库集群的名称。DEPLOYMENT_SPEC:部署规范文件的路径。
在 YAML 输出中,记下
status部分下的instanceList。找到角色设置为
Primary的节点。所有其他数据库节点都是备用节点。先更新在备用节点上运行的所有数据平面组件,然后再更新主节点上的这些组件。请按照以下步骤更新每个节点上的数据平面组件。
如需更新 AlloyDB Omni,请按顺序运行以下命令:
sudo systemctl stop alloydbomni18sudo dnf upgrade alloydbomni18sudo systemctl start alloydbomni18如需更新监控,请按顺序运行以下命令:
sudo systemctl stop alloydbomni_monitorsudo dnf upgrade alloydbomni_monitorsudo systemctl start alloydbomni_monitor如需更新 pgBackRest,请按顺序运行以下命令:
sudo dnf upgrade pgbackrest如需更新 PgBouncer,请按顺序运行以下命令:
sudo systemctl stop pgbouncersudo dnf upgrade pgbouncersudo systemctl start pgbouncer如需更新 keepalived,请按顺序运行以下命令:
sudo systemctl stop keepalivedsudo dnf upgrade keepalivedsudo systemctl start keepalived如需更新 HAProxy,请按顺序运行以下命令:
sudo systemctl stop haproxysudo dnf upgrade haproxysudo systemctl start haproxy