升级 RabbitMQ Kubernetes Operators
本主题介绍了如何升级 RabbitMQ Kubernetes Operators 及其组件。
概述
升级 RabbitMQ Cluster Kubernetes Operator 或 Messaging Topology Operator 会涉及以下影响:
更新至新的 Operator 清单
要升级到新版本的 Operator,只需应用所需版本的最新 Operator 清单即可。例如,对于 RabbitMQ Cluster Operator:
kubectl apply -f "https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml"
# namespace/rabbitmq-system unchanged
# customresourcedefinition.apiextensions.k8s.io/rabbitmqclusters.rabbitmq.com configured
# serviceaccount/rabbitmq-cluster-operator unchanged
# role.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-role unchanged
# clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-operator-role unchanged
# rolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-rolebinding unchanged
# clusterrolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-operator-rolebinding unchanged
# deployment.apps/rabbitmq-cluster-operator configured
这将导致 Operator 提供的自定义资源定义(Custom Resource Definitions)被更新,并使 Operator Pod 使用更新后的 Operator 容器镜像版本。
新版本的 Cluster Operator 通常会更改新集群中默认使用的 RabbitMQ 版本(如果 RabbitmqCluster 清单的 spec 中未指定版本)。因此,升级后,如果您新创建的 RabbitmqCluster 在 spec 中未指定版本,它们很可能会运行在更新版本的 RabbitMQ 上。请注意,这不会影响现有的 RabbitmqCluster,因为它们的清单中已经填充了之前 Operator 版本所对应的默认值。
RabbitmqCluster Pod 的滚动重启
在某些情况下,升级 RabbitMQ Cluster Operator(而非 Messaging Topology Operator)的版本将需要重启 RabbitmqCluster 的 Pod。这通常是由于 Operator 所创建的 RabbitmqCluster 底层 PodSpec 发生了变化。在这种情况下,升级 Cluster Operator 将导致 Kubernetes 发行版上的 RabbitmqCluster 进行滚动重启。
如果某个 Cluster Operator 版本会触发 RabbitmqCluster Pod 的滚动重启,该信息会在对应版本的发行说明中注明。例如,请参阅 https://github.com/rabbitmq/cluster-operator/releases/tag/v1.7.0。