升级 RabbitMQ Kubernetes 操作符
本主题介绍如何升级 RabbitMQ Kubernetes 操作符及其组件。
概述
升级 RabbitMQ 集群 Kubernetes 操作符或消息拓扑操作符会产生以下影响
- 更新到新的操作符清单
- (对于指定的版本)RabbitmqCluster Pod 的滚动重启
更新到新的操作符清单
要升级到新版本的操作符,只需应用所需版本的新操作符清单。例如,对于 RabbitMQ 集群操作符
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
这将导致操作符提供的自定义资源定义被更新,并且操作符 Pod 将使用更新版本的操作符容器镜像。
新版本的集群操作符通常包括对新集群中使用的 RabbitMQ 默认版本的更改(如果在 RabbitmqCluster 清单的 spec
中未指定)。因此,升级后,您可能会看到新创建的 RabbitmqCluster 将在较新版本的 RabbitMQ 上运行(如果它们未在其 spec
中指定版本)。请注意,这不会对现有的 RabbitmqCluster 产生影响,因为它们的清单已经填充了先前操作符版本的默认值。
RabbitmqCluster Pod 的滚动重启
在某些情况下,升级 RabbitMQ 集群操作符的版本(而不是消息拓扑操作符)将需要重启 RabbitmqCluster 的 Pod。这通常是由于 RabbitmqCluster 操作符创建的底层 PodSpec 发生了更改。在这种情况下,升级集群操作符将导致 Kubernetes 发行版上的 RabbitmqCluster 进行滚动重启。
如果集群操作符版本将触发 RabbitmqCluster Pod 的滚动重启,则会在该版本的发布说明中注明。例如,请参阅 https://github.com/rabbitmq/cluster-operator/releases/tag/v1.7.0。