第 3 章 RHOSO RabbitMQ 集群


Red Hat OpenStack Services on OpenShift (RHOSO)部署以下两个 RabbitMQ 集群:

  • 用于 OpenStack 服务间消息传递的 RabbitMQ。
  • RabbitMQ-cell1 用于 cell1 的计算服务(nova)。

RabbitMQ 自定义资源配置两个集群。

  • 要检索有关 RabbitMQ 集群的更多信息,请使用以下命令:
$ oc get rabbitmq --show-labels
NAME         	ALLREPLICASREADY   RECONCILESUCCESS   AGE   LABELS
rabbitmq     	True           	True           	25h   <none>
rabbitmq-cell1   True           	True           	25h   <none>

RabbitMQ 服务 Operator rabbitmq-cluster-operator 执行以下任务:

  • 创建运行 rabbitmq 服务器的 pod。
  • 监控运行 rabbitmq 服务器的 pod。
  • 在健康检查失败时,重启运行 rabbitmq 服务器的 pod。

3.1. 监控 RabbitMQ 的状态和服务可用性

您可以使用以下命令检索有关 RabbitMQ 集群及其 pod 的状态和服务可用性的信息:

注意

每个 RabbitMQ 副本都在专用 pod 中运行。

您可以使用以下命令来确定 RabbitMQ pod 的状态:

$ oc get pods -l app.kubernetes.io/name=rabbitmq
NAME            	READY   STATUS	RESTARTS  	AGE
rabbitmq-server-0   1/1 	Running   0                46h
rabbitmq-server-1   1/1 	Running   0                46h
rabbitmq-server-2   1/1 	Running   0                46h

RabbitMQ 服务 Operator rabbitmq-cluster-operator 为 RabbitMQ 集群创建以下两个 OpenStack 服务对象:

  • rabbitmq-nodes 服务,它为 rabbitmq 服务器提供 DNS 名称解析,以进行内部 RabbitMQ 通信。
  • 使用由名为 rabbitmq 的 MetalLB 管理的 Red Hat OpenShift Container Platform (RHOCP)服务公开的 RabbitMQ 消息传递服务。

您可以使用以下命令来确定这些服务的类型及其端口:

$ oc get service -l app.kubernetes.io/name=rabbitmq
NAME         	TYPE       	CLUSTER-IP  	EXTERNAL-IP   PORT(S)                   	AGE
rabbitmq     	LoadBalancer   172.30.170.63   172.17.0.85   5671:31331/TCP,15671:31404/TCP,15691:31453/TCP   47h
rabbitmq-nodes   ClusterIP  	None        	<none>    	4369/TCP,25672/TCP                           	47h

MetalLB 托管服务称为 rabbitmq,是 RabbitMQ pod 之间的 LoadBalancer。它有一个侦听内部 API 网络的 IP 地址,因此可以从 OpenShift (RHOSO)数据平面和控制平面上的 Red Hat OpenStack Services 访问。

您可以使用以下命令来确定 rabbitmq 服务的配置:

$ oc describe service rabbitmq
Name:                 	rabbitmq
Namespace:            	openstack
Labels:               	app.kubernetes.io/component=rabbitmq
                      	app.kubernetes.io/name=rabbitmq
                      	app.kubernetes.io/part-of=rabbitmq
Annotations:          	dnsmasq.network.openstack.org/hostname: rabbitmq.openstack.svc
                      	metallb.universe.tf/address-pool: internalapi
                      	metallb.universe.tf/ip-allocated-from-pool: internalapi
                      	metallb.universe.tf/loadBalancerIPs: 172.17.0.85
Selector:             	app.kubernetes.io/name=rabbitmq
Type:                 	LoadBalancer
IP Family Policy:     	SingleStack
IP Families:          	IPv4
IP:                   	172.30.170.63
IPs:                  	172.30.170.63
LoadBalancer Ingress: 	172.17.0.85
Port:                 	amqps  5671/TCP
TargetPort:           	5671/TCP
NodePort:             	amqps  31331/TCP
Endpoints:            	192.168.16.69:5671,192.168.20.54:5671,192.168.24.45:5671

在本例中,此 MetalLB 管理的服务名为 rabbitmq,从 172.17.0.85 上的内部 API (称为 LoadBalancer Ingress )接收传入流量,并将其转发到 172.30.170.63 的 IP 地址,从而平衡到 RabbitMQ pod 的流量。

Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

关于红帽文档

Legal Notice

Theme

© 2026 Red Hat
返回顶部