如果由于功能标志配置不兼容而导致RabbitMQ集群无法正常初始化,请重置集群。更新SystemLink Enterprise时可能会遇到此问题。

由于RabbitMQ 3.11.0中引入了feature flag功能,更新RabbitMQ时无法跳过次要版本。如果更新SystemLink Enterprise版本会导致您跳过RabbitMQ的次要版本,将出现不兼容情况。按照下列步骤,执行硬重置,以解决兼容性问题。
  1. 将SystemLink Enterprise升级或降级至所需版本。
  2. 如需删除RabbitMQ集群的状态集,请打开命令提示符并运行以下命令。

    kubectl -n namespace delete statefulset release-rabbitmq

    其中,
    • namespace是为应用程序创建的名称空间。
    • release是Helm分配给已安装软件集合的名称。
  3. 要确定与RabbitMQ集群关联的persistent volume claim集,请运行以下命令。

    kubectl -n namespace get pvc --selector=app.kubernetes.io/name=rabbitmq

    该命令返回persistent volume claim列表,包括data-release-rabbitmq-0, data-release-rabbitmq-1, data-release-rabbitmq-2。根据应用程序的配置,可能还有其他卷。
  4. 对上一步返回的每个卷执行以下命令,将其删除。

    kubectl -n namespace delete pvc data-release-rabbitmq-n

    其中,
    • n是要删除的卷。
  5. 要验证是否删除了所有volume claim,请运行以下命令。

    kubectl -n namespace get pvc --selector=app.kubernetes.io/name=rabbitmq

  6. 要确定SystemLink Enterprise Helm的当前版本,请运行以下命令。

    helm -n namespace status release

  7. 要将Helm版本回退至当前版本的部署状态,请运行以下命令。

    helm -n namespace rollback releaserevision --recreate-pods

    其中,
    • revision是上一个命令返回的REVISION值。
    RabbitMQ集群将部署为全新安装而不是升级,并绕过升级版本的任何限制。应用程序中的所有pod都将被重新创建,并将使用新的RabbitMQ集群。重新部署的时间因集群的大小而异。