更新 RPM 编排器集群组件

选择文档版本:

本页介绍了如何在 Red Hat Enterprise Linux (RHEL) 环境中更新 AlloyDB Omni 数据库集群软件包、资源配置和 RPM 编排器。

准备工作

确保您拥有部署规范文件 deployment_spec.yaml,其中包含所有节点和集群组件的详细信息。

升级编排器

编排器用于管理数据库集群。您必须先在控制节点上升级编排器,然后再升级其他集群组件。

Ansible

如果您使用 Ansible 剧本管理基础架构,请完成以下步骤:

  1. 在控制节点上运行以下命令,检查已安装的 google.alloydbomni_orchestrator 集合版本:

    ansible-galaxy collection list | grep alloydbomni_orchestrator
  2. 如需覆盖现有版本,请下载该集合 tar 文件的最新稳定版并执行强制安装:

    ansible-galaxy collection install --force google-alloydbomni_orchestrator-NEW_VERSION.tar.gz

    将 NEW_VERSION 替换为新集合的版本。

alloydbctl

如果您使用 alloydbctl 命令行工具,请完成以下步骤:

  1. 如需在控制节点上检查已安装的 RPM 编排器 alloydbomni_orchestrator 软件包版本,请运行以下命令:

    rpm -q alloydbomni_orchestrator
  2. 使用软件包管理器在控制节点上升级软件包:

    sudo dnf upgrade alloydbomni_orchestrator

使用 Ansible 更新集群组件

Google 建议您使用提供的 Ansible 角色进行更新。

  1. 创建一个名为 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。
  2. 如需在所有指定节点上执行更新,请使用清单文件运行剧本:

    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 等服务。 升级数据平面会将数据库版本更新、安全补丁和性能改进直接应用于数据库集群。

无论您的参考架构如何,更新控制平面的步骤都保持不变。您必须先更新控制平面组件,然后再更新数据平面。更新数据平面的步骤因数据库部署架构而异。

如需更新服务或软件包,请执行以下步骤:

  1. 停止服务:

    sudo systemctl stop SERVICE
  2. 使用以下命令之一升级软件包:

    • 如需更新到最新可用版本:

      sudo dnf upgrade PACKAGE
    • 如需更新到特定版本:

      sudo dnf upgrade PACKAGE-VERSION
  3. 启动服务:

    sudo systemctl start SERVICE

替换以下内容:

  • SERVICE:要停止和启动的服务的名称,例如 pgbouncer 或 keepalived。
  • PACKAGE:要更新的软件包的名称,例如 pgbouncer 或 alloydbomni18。
  • VERSION:要安装的目标软件包版本,例如 18.3.0 或 18.3.0-2.rhel9。

手动更新控制平面

如需更新控制平面,请在指定节点上执行以下步骤:

  1. 如需停止所有集群管理器节点上的集群管理器,请运行以下命令:

    sudo systemctl stop alloydbomni_cluster_manager
  2. 如需更新所有 DCS 节点上的 etcd,请按顺序运行以下命令:

    sudo systemctl stop etcd
    sudo dnf upgrade etcd
    sudo systemctl start etcd
  3. 如需更新所有节点上的节点管理器,请按顺序运行以下命令:

    sudo systemctl stop alloydbomni_node_manager
    sudo dnf upgrade alloydbomni_node_manager
    sudo systemctl start alloydbomni_node_manager
  4. 更新控制平面组件后,您可以更新所有集群管理器节点上的集群管理器,并在必要时重启它。

    sudo dnf upgrade alloydbomni_cluster_manager
    sudo systemctl start alloydbomni_cluster_manager

手动更新数据平面

如需更新数据平面,请按照为部署架构指定的顺序更新数据库和辅助服务。对于每项服务,您都必须严格按照停止服务、升级软件包和启动服务的顺序执行操作。

根据参考架构,按照部署说明操作。

  1. 使用 alloydbctl get 命令检索集群状态,并将输出格式设置为 YAML:

    alloydbctl get -d DEPLOYMENT_SPEC -t RESOURCE_TYPE -n CLUSTER_NAME -o yaml

    替换以下内容:

    • RESOURCE_TYPE:要检查的资源类型,例如 DBCluster。
    • CLUSTER_NAME:数据库集群的名称。
    • DEPLOYMENT_SPEC:部署规范文件的路径。
  2. 在 YAML 输出中,记下 status 部分下的 instanceList。

    找到角色设置为 Primary 的节点。所有其他数据库节点都是备用节点。

  3. 先更新在备用节点上运行的所有数据平面组件,然后再更新主节点上的这些组件。请按照以下步骤更新每个节点上的数据平面组件。

    1. 如需更新 AlloyDB Omni,请按顺序运行以下命令:

      sudo systemctl stop alloydbomni18
      sudo dnf upgrade alloydbomni18
      sudo systemctl start alloydbomni18
    2. 如需更新监控,请按顺序运行以下命令:

      sudo systemctl stop alloydbomni_monitor
      sudo dnf upgrade alloydbomni_monitor
      sudo systemctl start alloydbomni_monitor
    3. 如需更新 pgBackRest,请按顺序运行以下命令:

      sudo dnf upgrade pgbackrest
    4. 如需更新 PgBouncer,请按顺序运行以下命令:

      sudo systemctl stop pgbouncer
      sudo dnf upgrade pgbouncer
      sudo systemctl start pgbouncer
    5. 如需更新 keepalived,请按顺序运行以下命令:

      sudo systemctl stop keepalived
      sudo dnf upgrade keepalived
      sudo systemctl start keepalived
    6. 如需更新 HAProxy,请按顺序运行以下命令:

      sudo systemctl stop haproxy
      sudo dnf upgrade haproxy
      sudo systemctl start haproxy