Upgrade Guide

    以下是升级 Pulsar 集群的指南。 请在升级前详细阅读。

    • 在升级前备份所有配置文件。
    • 通读升级指南、制定计划,再进行升级。 制定升级计划时,需要考虑具体要求和环境。
    • 认真阅读升级组件的命令。 一般来说,不需要升级 Zookeper,也不需要配置存储集群(全局 ZooKeeper 集群)。 需要先升级 bookie,再升级 broker、proxy 和客户端。
    • 认真阅读每一个版本的注释。 注释中包含可能会影响升级的特性、配置变化等。
    • 在升级集群中某类型的所有节点前,先升级此类型的一小部分节点到 canary 进行新版本测试。 升级 canary 节点后,运行一段时间以确保新版本可以正常运行。
    • 如果集群以多集群复制模式运行,则在升级所有数据中心前,先升级一个数据中心来测试新版本。

    需要按照升级顺序升级 Apache Pulsar 集群。

    1. 升级 ZooKeeper(可选)。
    • Canary 测试:以一组或一小部分 ZooKeeper 节点测试新版本。
    • 滚动升级:一次性将新版本部署到所有 ZooKeeper 服务器,每次部署一个版本。 滚动升级过程中,需要一直查看仪表板。
    1. 升级 bookie
    • canary 测试:以一组或一小部分 bookies 测试一个新版本。 - Rolling upgrade:
    • a. 用以下命令禁用 autorecovery

      • b. Rollout the upgraded version to all bookies in the cluster after you determine that a version is safe after canary.
      • c. 升级所有的 bookie 后,使用以下命令重新启用 autorecovery

    1. Upgrade brokers
    • Canary test: test an upgraded version in one or a small set of brokers.
    • Rolling upgrade: rollout the upgraded version to all brokers in the cluster after you determine that a version is safe after canary.
    1. Upgrade proxies
    • Canary test: test an upgraded version in one or a small set of proxies. - 滚动升级:确定 canary 之后新版本的安全性后,为集群中所有的 proxy 部署新版本。

    升级 ZooKeeper 服务器时,可以先做 canary 测试,再升级集群中所有的 ZooKeeper 服务器。

    升级集群中所有的 ZooKeeper 服务器之前,可以先在一个 ZooKeeper 服务器中测试新版本。

    升级 ZooKeeper 服务器的步骤如下:

    1. 终止 ZooKeeper 服务器。
    2. 用新的二进制文件启动 ZooKeeper 服务器。
    3. pulsar zookeeper-shell 连接新的 ZooKeeper 服务器,并运行命令测试其运行状态。
    4. 运行 ZooKeeper 服务器几天,观察 ZooKeeper 集群的运行状态,确保可以正常运行。

    Canary 回转

    如果在 canary 测试过程中出现异常,则可以关闭出故障的 ZooKeeper 节点,恢复二进制文件和配置文件,使用还原的二进制文件重新启动 ZooKeeper。

    升级所有的 ZooKeeper 服务器

    先在 canary 测试中升级集群中的一个 ZooKeeper后,再升级集群中所有的 ZooKeeper 服务器。

    升级 bookie 时,可以先进行 canary 测试,再升级集群中所有的 bookie。 更多详细信息,参阅 Apache BookKeeper 升级指南

    升级集群中所有 bookie 前,可以先用一组或一小部分 bookie 来测试新版本。

    升级 bookie 的步骤如下:

    1. 终止 bookie。
    2. 升级二进制文件和配置文件。
    3. 以模式启动 bookie,以验证此新版本 bookie 的读性能。

    4. 当 bookie 以只读模式成功运行时,终止 bookie 并以写入/读取模式重新启动 bookie。

    5. 观察集群服务器的运行状态,确保集群服务器可以正常服务于读写操作。

    Canary 回转

    如果在 canary 测试中出现异常,则可以关闭出故障的 bookie 节点。 通过 autorecovery 用其他集群中的 bookie 来替换出现异常的 bookie 节点。

    升级所有的 bookie

    用 canary 测试升级集群中的一些 bookies之后,就可以升级集群中所有的 bookies。

    升级前,需要确定是否一次性升级整个集群,包括停机时间升级和滚动升级。

    在滚动升级中,一次升级一个 bookie。 在停机时间升级中,需先关闭全部集群,升级所有 bookie 后再启动集群。

    1. 终止 bookie。
    2. 升级软件(通过更新的二进制文件或更新的配置文件)。
    3. 启动 bookie。

    Advanced operations
    When you upgrade a large BookKeeper cluster in a rolling upgrade scenario, upgrading one bookie at a time is slow. 如果配置了机架感知或区域感知放置策略,则可以按机架或按区域升级 bookie,从而加快升级过程。

    Broker 和 proxy 的升级过程相同。 Broker 和 proxy 都,所以升级 broker 和 proxy 的操作较为简单。

    升级集群中的所有节点前,可以先用一组或一小部分节点来测试新版本。

    升级节点的步骤如下:

    1. 终止 broker(或 proxy)。
    2. 升级二进制文件和配置文件。
    3. 启动 broker(或 proxy)。

    Canary 回转

    如果在 canary 测试的过程中出现异常, 则可以关闭有问题的 broker(或 proxy)节点。 还原到旧版本后,再重新启动 broker(或 proxy)。

    升级所有的 bookie 或 proxy

    先在 canary 测试中升级集群中的一些 broker 或 proxy,测试后再升级集群中所有的 broker 或 proxy。

    升级前,需要确定是否一次性升级整个集群,包括停机时间升级和滚动升级。

    在滚动升级场景中,如果集群规模较小,则可以一次升级一个 broker 或一个 proxy。 如果集群规模较大,则可以分批升级 broker 或 proxy。 分批升级 broker 或 proxy 时,需要保证集群中剩余的 broker 和 proxy 能够处理升级期间的流量。

    在停机时间升级情景中,需要先关闭全部集群,升级每个 broker 或 proxy 后,再重新启动集群。

    在上述两种情景中,单个 broker 或单个 proxy 的升级过程都相同。

    1. 终止 broker 或 proxy。
    2. 升级软件(通过更新的二进制文件或更新的配置文件)。
    3. 启动 broker 或 proxy。