轩辕镜像 官方专业版
轩辕镜像
专业版
轩辕镜像 官方专业版
轩辕镜像
专业版
首页个人中心搜索镜像
交易
充值流量¥7起我的订单
文档
工具
提交工单页面收录
rabbitmq

bitnamicharts/rabbitmq

bitnamicharts

Bitnami的RabbitMQ Helm chart,用于在Kubernetes环境中便捷、可靠地部署和管理RabbitMQ消息队列。

3 次收藏下载次数: 0状态:社区镜像维护者:bitnamicharts仓库类型:镜像最近更新:10 个月前
让 AI 帮你使用轩辕镜像? · 展开查看说明 · 点击收起说明

如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。

只需在 AI 对话中先发送下面这句话即可:

请先完整阅读并严格遵守以下文档中的全部规则与要求:

https://xuanyuan.cloud/agents.md

在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。

查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。

DockerHub 官方简介
轩辕镜像中文简介
下载命令
镜像标签列表与下载命令
轩辕镜像,快一点,稳很多。
点击查看

Bitnami RabbitMQ 镜像文档

镜像概述和主要用途

RabbitMQ 是一个开源的通用消息代理,设计用于一致、高可用的消息传递场景(包括同步和异步)。Bitnami RabbitMQ 镜像提供了一个预配置、随时可用的 RabbitMQ 部署方案,适用于开发和生产环境。

https://www.rabbitmq.com

商标声明:本软件列表由 Bitnami 打包。产品中提及的各个商标分别归其各自公司所有,使用这些商标并不意味着任何关联或背书。

核心功能和特性

  • 基于官方 RabbitMQ 稳定版本构建
  • 预配置的管理插件,提供 Web 管理界面
  • 支持 Kubernetes 环境下的自动集群发现
  • 内置监控指标导出功能,支持 Prometheus 集成
  • 支持 TLS 加密以保障数据传输安全
  • 可自定义的用户认证和权限管理
  • 持久化存储支持,确保消息数据不丢失
  • 支持水平扩展,可根据需求增加节点数量
  • 包含多种安全加固措施,符合生产环境要求

使用场景和适用范围

  • 微服务架构中的服务间通信
  • 异步任务处理和工作队列管理
  • 系统解耦和集成
  • 流量削峰和缓冲
  • 发布/订阅消息模式实现
  • 需要可靠消息传递的业务系统
  • 分布式系统中的事件驱动架构

详细的使用方法和配置说明

前置要求

  • Kubernetes 1.23+
  • Helm 3.8.0+
  • 底层基础设施支持 PV 供应

安装 Helm Chart

使用以下命令安装 chart,发布名称为 my-release:

console
helm install my-release oci://registry-1.docker.io/bitnamicharts/rabbitmq

提示:使用 helm list 命令查看所有发布

资源请求和限制

Bitnami charts 允许为部署中的所有容器设置资源请求和限制,这些配置位于 resources 值中(参见参数表)。设置请求对于生产工作负载至关重要,应根据具体使用场景进行调整。

为简化此过程,chart 包含 resourcesPreset 值,可根据不同预设自动设置 resources 部分。但在生产环境中,不建议使用 resourcesPreset,因为它可能无法完全适应您的特定需求。有关容器资源管理的更多信息,请参阅 https://kubernetes.io/docs/concepts/configuration/manage-resources-containers/%E3%80%82

Prometheus 指标集成

通过将 metrics.enabled 设置为 true,可以将此 chart 与 Prometheus 集成。这将启用 https://github.com/rabbitmq/rabbitmq-server/tree/c4d9a840c2611290a128ab6d914d2791e2ff302d/deps/rabbitmq_prometheus%EF%BC%8C%E5%B9%B6%E5%9C%A8%E6%89%80%E6%9C%89 Pod 和 RabbitMQ 服务中公开指标端点。该服务将具有必要的注释,以便被 Prometheus 自动抓取。

Prometheus 要求

要使集成正常工作,需要安装 Prometheus 或 Prometheus Operator。可以安装 https://github.com/bitnami/charts/tree/main/bitnami/prometheus 或 https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus 以在集群中轻松部署 Prometheus。

与 Prometheus Operator 集成

该 chart 可以部署 ServiceMonitor 对象,用于与 Prometheus Operator 集成。每个 RabbitMQ 端点有不同的 ServiceMonitor 对象:

  • metrics.serviceMonitor.default 用于 /metrics 端点
  • metrics.serviceMonitor.perObject 用于 /metrics/per-object 端点
  • metrics.serviceMonitor.detailed 用于 /metrics/detailed 端点

通过设置 metrics.serviceMonitor.*.enabled=true 启用每个 ServiceMonitor。确保集群中已安装 Prometheus Operator CustomResourceDefinitions,否则会失败并显示以下错误:

text
no matches for kind "ServiceMonitor" in version "monitoring.coreos.com/v1"

安装 https://github.com/bitnami/charts/tree/main/bitnami/kube-prometheus 可获取必要的 CRD 和 Prometheus Operator。

水平扩展

部署后,可以通过以下两种方式水平扩展此 chart:

  • 使用 kubectl scale 命令
  • 更新 chart 并修改 replicaCount 参数
text
replicaCount=3
auth.password="$RABBITMQ_PASSWORD"
auth.erlangCookie="$RABBITMQ_ERLANG_COOKIE"

注意:升级 chart 时,必须指定首次安装 chart 时设置的密码和 Erlang cookie。否则,新的 Pod 将无法加入集群。

缩容时,不必要的 RabbitMQ 节点会自动停止,但不会从集群中移除。必须通过 rabbitmqctl forget_cluster_node 命令手动移除这些节点。

例如,如果 RabbitMQ 最初安装了三个副本,然后缩容到两个副本,运行以下命令(假设发布名称为 rabbitmq,集群类型为 hostname):

console
kubectl exec rabbitmq-0 --container rabbitmq -- rabbitmqctl forget_cluster_node rabbit@rabbitmq-2.rabbitmq-headless.default.svc.cluster.local
kubectl delete pvc data-rabbitmq-2

使用 TLS 加密流量

要启用 TLS 支持,首先按照 https://www.rabbitmq.com/ssl.html#automated-certificate-generation 中的说明生成证书。

生成证书后,有两种选择:

  • 创建包含证书的 secret,并在部署 chart 时关联该 secret
  • 在部署 chart 时将证书包含在 values.yaml 文件中

设置 auth.tls.failIfNoPeerCert 参数为 false,以允许客户端无法提供证书时的 TLS 连接。

设置 auth.tls.sslOptionsVerify 为 verify_peer 以强制节点执行对等验证。设置为 verify_none 时,将禁用对等验证,并且不会执行证书交换。

该 chart 还便于创建用于 Ingress 控制器的 TLS secret(尽管这不是必需的)。有几种常见用例:

  • 基于 chart 参数生成证书 secret
  • 启用外部生成的证书
  • 通过外部服务(如 https://github.com/jetstack/cert-manager/%EF%BC%89%E7%AE%A1%E7%90%86%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E8%AF%81%E4%B9%A6
  • 在 chart 内创建自签名证书(如果支持)

在前两种情况下,需要证书和密钥。文件应为 .pem 格式。

加载自定义定义

可以https://www.rabbitmq.com/management.html#load-definitions%E3%80%82%E8%AF%B7%E6%8C%89%E7%85%A7%E4%BB%A5%E4%B8%8B%E6%AD%A5%E9%AA%A4%E6%93%8D%E4%BD%9C%EF%BC%9A

由于定义可能包含 RabbitMQ 凭据,https://kubernetes.io/docs/concepts/configuration/secret/#using-secrets-as-files-from-a-pod%E3%80%82%E5%9C%A8 secret 的数据中,选择与所需加载定义文件名对应的键名(即 load_definition.json),并使用 JSON 对象作为值。

接下来,将 load_definitions 属性指定为指向容器内加载定义文件路径的 extraConfiguration(即 /app/load_definition.json),并将 loadDefinition.enable 设置为 true。任何指定的加载定义都将在容器内的 /app 目录中可用。

注意:加载定义将优先于通过 Helm 值 完成的任何配置。

如果需要,可以使用 extraSecrets 让 chart 为您创建 secret。这样,您无需在部署发布前手动创建它。这些 secret 也可以使用提供的 chart 值进行模板化。以下是一个示例:

yaml
auth:
  password: CHANGEME
extraSecrets:
  load-definition:
    load_definition.json: |
      {
        "users": [
          {
            "name": "{{ .Values.auth.username }}",
            "password": "{{ .Values.auth.password }}",
            "tags": "administrator"
          }
        ],
        "vhosts": [
          {
            "name": "/"
          }
        ]
      }
loadDefinition:
  enabled: true
  existingSecret: load-definition
extraConfiguration: |
  load_definitions = /app/load_definition.json

更新凭据

Bitnami RabbitMQ chart 在升级时会重用之前由 chart 呈现的 secret 或 auth.existingSecret 中指定的 secret。要更新凭据,请使用以下方法之一:

  • 运行 helm upgrade 并在 auth.password 中指定新密码,同时设置 auth.updatePassword=true
  • 运行 helm upgrade 并在 auth.existingSecret 中指定新 secret,同时设置 auth.updatePassword=true

配置 LDAP 支持

可以通过在创建发布时指定 ldap.* 参数来启用 chart 中的 LDAP 支持。例如:

text
ldap.enabled="true"
ldap.server="my-ldap-server"
ldap.port="389"
ldap.user_dn_pattern="cn=${username},dc=example,dc=org"

如果 ldap.tls.enabled 设置为 true,请考虑使用 ldap.port=636 并检查 advancedConfiguration chart 参数中的设置。

配置内存高水位线

可以使用 memoryHighWatermark.* 参数配置 RabbitMQ 的内存高水位线,以定义https://www.rabbitmq.com/memory.html#threshold%E3%80%82%E6%9C%89%E4%B8%A4%E7%A7%8D%E9%80%89%E6%8B%A9%EF%BC%9A

  • 设置每个 RabbitMQ 节点要使用的 RAM 绝对限制,如以下配置示例所示:
text
memoryHighWatermark.enabled="true"
memoryHighWatermark.type="absolute"
memoryHighWatermark.value="512Mi"
  • 设置每个 RabbitMQ 节点要使用的 RAM 相对限制。要启用此功能,还需要在 pod 级别定义内存限制。以下是示例配置:
text
memoryHighWatermark.enabled="true"
memoryHighWatermark.type="relative"
memoryHighWatermark.value="0.4"
resources.limits.memory="2Gi"

使用插件

Bitnami Docker RabbitMQ 镜像默认附带一组插件。默认情况下,此 chart 启用 rabbitmq_management 和 rabbitmq_peer_discovery_k8s,因为它们是 RabbitMQ 在 K8s 上工作所必需的。

要启用额外的插件,请使用要启用的插件列表设置 extraPlugins 参数。此外,communityPlugins 参数可用于指定自定义 RabbitMQ 插件的 URL 列表(以空格分隔)。

text
communityPlugins="http://URL-TO-PLUGIN/"
extraPlugins="my-custom-plugin"

Docker 部署方案示例

Helm 安装命令

console
helm install my-release oci://registry-1.docker.io/bitnamicharts/rabbitmq

自定义参数安装

console
helm install my-release \
  --set replicaCount=3 \
  --set auth.username=admin \
  --set auth.password=secretpassword \
  --set auth.erlangCookie=secretcookie \
  oci://registry-1.docker.io/bitnamicharts/rabbitmq

使用现有持久卷声明

console
helm install my-release \
  --set persistence.existingClaim=my-rabbitmq-pvc \
  oci://registry-1.docker.io/bitnamicharts/rabbitmq

启用 Prometheus 监控

console
helm install my-release \
  --set metrics.enabled=true \
  --set metrics.serviceMonitor.enabled=true \
  oci://registry-1.docker.io/bitnamicharts/rabbitmq

持久化

https://github.com/bitnami/containers/tree/main/bitnami/rabbitmq 镜像将 RabbitMQ 数据和配置存储在容器的 /opt/bitnami/rabbitmq/var/lib/rabbitmq/ 路径中。

chart 在该位置挂载 https://kubernetes.io/docs/concepts/storage/persistent-volumes/%E3%80%82%E9%BB%98%E8%AE%A4%E6%83%85%E5%86%B5%E4%B8%8B%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%8A%A8%E6%80%81%E5%8D%B7%E9%85%8D%E7%BD%AE%E5%88%9B%E5%BB%BA%E5%8D%B7%E3%80%82%E4%B9%9F%E5%8F%AF%E4%BB%A5%E5%AE%9A%E4%B9%89%E7%8E%B0%E6%9C%89%E7%9A%84 PersistentVolumeClaim。

使用现有 PersistentVolumeClaims

  1. 创建 PersistentVolume
  2. 创建 PersistentVolumeClaim
  3. 安装 chart
console
helm install my-release --set persistence.existingClaim=PVC_NAME oci://REGISTRY_NAME/REPOSITORY_NAME/rabbitmq

注意:需要将占位符 REGISTRY_NAME 和 REPOSITORY_NAME 替换为 Helm chart 仓库和存储库的引用。例如,对于 Bitnami,需要使用 REGISTRY_NAME=registry-1.docker.io 和 REPOSITORY_NAME=bitnamicharts。

调整持久卷挂载点的权限

由于镜像默认以非 root 用户运行,因此需要调整持久卷的所有权,以便容器可以将数据写入其中。

默认情况下,chart 配置为使用 Kubernetes Security Context 自动更改卷的所有权。但是,此功能并非在所有 Kubernetes 发行版中都有效。

作为替代方案,此 chart 支持使用 initContainer 在将卷挂载到最终目标之前更改卷的所有权。

可以通过将 volumePermissions.enabled 设置为 true 来启用此 initContainer。

Prometheus 指标

RabbitMQ 具有https://www.rabbitmq.com/docs/prometheus#default-endpoint%E7%94%A8%E4%BA%8E%E5%9C%A8 GET /metrics 公开 Prometheus 指标。但是,这些指标都是集群范围的,不显示任何每队列或每节点指标。

要获取每对象指标,有一个https://www.rabbitmq.com/docs/prometheus#detailed-endpoint%E4%BD%8D%E4%BA%8E GET /metrics/detailed,它接受查询参数以选择要查看的指标系列。例如,可以传递 family=node_coarse_metrics&family=queue_coarse_metrics 来查看每节点和每队列指标,而无需查看 Erlang、连接或通道指标。

此外,还有https://www.rabbitmq.com/docs/prometheus#per-object-endpoint%EF%BC%9A%60GET /metrics/per-object,它返回*所有*每对象指标。但是,在具有许多对象的大型集群上,这可能在计算上很昂贵,因此 RabbitMQ 文档建议使用上面提到的 GET /metrics/detailed` 来过滤抓取内容,只获取给定监控应用程序所需的每对象指标。

由于它们公开不同的数据集,一个有效的用例是从 GET /metrics 和 GET /metrics/detailed 两者抓取指标,同时摄入集群级和每对象指标。metrics.serviceMonitor.default 和 metrics.serviceMonitor.detailed 值支持配置 ServiceMonitor,以针对这些指标中的一个或两个。

配置参数

全局参数

名称描述默认值
global.imageRegistry全局 Docker 镜像仓库""
global.imagePullSecrets全局 Docker 仓库密钥名称数组[]
global.defaultStorageClass持久卷的全局默认 StorageClass""
global.storageClass已弃用:使用 global.defaultStorageClass 代替""

镜像参数

名称描述默认值
image.registryRabbitMQ 镜像仓库docker.io
image.repositoryRabbitMQ 镜像仓库名称bitnami/rabbitmq
image.tagRabbitMQ 镜像标签3.12.10-debian-11-r2
image.pullPolicy镜像拉取策略IfNotPresent
image.pullSecrets镜像拉取密钥[]

认证参数

名称描述默认值
auth.usernameRabbitMQ 管理员用户名user
auth.passwordRabbitMQ 管理员密码随机生成
auth.erlangCookieErlang cookie随机生成
auth.existingSecret包含 RabbitMQ 凭据的现有 secret 名称""
auth.tls.enabled启用 TLS 认证false

持久化参数

名称描述默认值
persistence.enabled启用持久化存储true
persistence.existingClaim现有 PVC 的名称""
persistence.storageClassPVC 的 storage class""
persistence.sizePVC 的存储大小8Gi
persistence.accessModesPVC 的访问模式["ReadWriteOnce"]

资源参数

名称描述默认值
resources.limits资源限制{}
resources.requests资源请求{}
resourcesPreset资源预设""

网络参数

名称描述默认值
service.type服务类型ClusterIP
service.portAMQP 服务端口5672
service.nodePortAMQP 服务节点端口""
service.managementPort管理界面端口15672
service.managementNodePort管理界面节点

镜像拉取方式

您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。

轩辕镜像加速拉取命令点我查看更多 rabbitmq 镜像标签

docker pull docker.xuanyuan.run/bitnamicharts/rabbitmq:<标签>

使用方法:

  • 登录认证方式
  • 免认证方式

DockerHub 原生拉取命令

docker pull bitnamicharts/rabbitmq:<标签>

轩辕镜像配置手册

按平台快速找到配置文档

一键安装

一键安装 Docker

Linux Docker 一键安装

AI

用 AI 使用轩辕镜像

agents.md · AI 对话 · 提示词

Docker

登录仓库拉取

登录认证 · 私有仓库

专属域名拉取

免登录 · 高速拉取

Linux

Docker 镜像配置

Windows / Mac

Docker Desktop 配置

MacOS OrbStack

OrbStack 容器

Apple Container

macOS 原生容器

Docker Compose

Compose 项目配置

NAS

群晖

Synology 配置

飞牛

fnOS 镜像配置

绿联

绿联 NAS

威联通

QNAP 配置

极空间

极空间 NAS

Unraid

Unraid NAS

企业仓库

其他仓库

ghcr · Quay · nvcr

Harbor 镜像源

Proxy Repository 对接

Portainer 镜像源

Registries 配置

Nexus 镜像源

Docker Proxy 缓存

开发工具

Dev Containers

VS Code 开发容器

Podman

Podman 配置指南

Singularity / Apptainer

HPC 科学计算容器

Kubernetes

K8s Containerd

Kubernetes · Containerd

K3s

轻量级集群

面板 / 网络

爱快路由

iKuai 镜像加速

宝塔面板

一键配置镜像源

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

功能

版本功能对比

功能对比 · 版本选择

支持的镜像仓库

Docker Hub · GCR · GHCR

新手拉取配置

登录 · 专属域名 · 配置

docker search 限制

专属域名 · Hub 搜索

不支持 push

仅支持 pull · 不支持

拉取速度原因

带宽 · 缓存 · 冷热镜像

错误码

402 与流量用尽

402 · 流量包 · 充值

401 认证失败

401 · docker login

manifest unknown

标签错误 · 镜像不存在

410 Gone 排查

410 · Docker 升级

429 限流

免费版 · 专业版 · 企业版 · 请求频率

其他报错

DNS 超时

DNS 解析 · 网络超时

TLS 证书失败

no matching manifest(架构)

账号

失败是否计费

manifest · blob · 计费

申请开发票(企业 / 个人)

企业 · 个人 · 工单

修改登录密码

网站 · 仓库 · 重置

注销账户

工单 · 数据 · 注销

原理

mirrors 不生效

daemon.json · 重启

去掉域名前缀

docker tag · 重命名

指定架构拉取

ARM64 · AMD64 · 多架构

latest 与「最新」

digest · 版本号 · 标签

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

用户头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
bitnamicharts/rabbitmq
定价查看流量套餐与价格
博客Docker 镜像公告与技术博客
专业版 · 高速稳定拉取镜像
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
50GB 仅 ¥7/年
专业版 · 高速稳定拉取镜像
50GB 仅 ¥7/年
高速镜像下载·在线技术支持·99.95% SLA 保障·付费会员免广告
用户协议·隐私政策·增值电信业务经营许可证:浙B2-20261007·©2024-2026 源码跳动©2024-2026 杭州源码跳动科技有限公司·商务合作:点击复制邮箱

更多 rabbitmq 镜像推荐

rabbitmq logo

library/rabbitmq

Docker 官方镜像
RabbitMQ是一款开源的多协议消息代理,主要用于在分布式系统中实现应用间的异步通信,支持AMQP、MQTT、STOMP等多种消息协议,能够有效解耦服务、提升系统可靠性与可扩展性,适用于微服务架构、实时数据处理及异步任务处理等场景,由Erlang语言开发,具备高并发、高可用特性,广泛应用于企业级系统。
5.4千 次收藏10亿+ 次下载
15 天前更新
circleci/rabbitmq logo

circleci/rabbitmq

circleci
此镜像仅供内部使用,并非面向客户的便捷镜像。
500万+ 次下载
7 年前更新
elestio/rabbitmq logo

elestio/rabbitmq

elestio
由Elestio验证和打包的RabbitMQ
1万+ 次下载
1 年前更新
ubuntu/rabbitmq logo

ubuntu/rabbitmq

Ubuntu 官方镜像
基于Ubuntu的RabbitMQ镜像 - 一个开源的多协议消息代理。
1万+ 次下载
10 天前更新
corpusops/rabbitmq logo

corpusops/rabbitmq

corpusops
CorpusOps的Docker镜像集合,用于容器化应用的开发、部署及运行环境搭建,集成常用工具与配置,简化容器化流程。
5万+ 次下载
1 年前更新
rootpublic/rabbitmq logo

rootpublic/rabbitmq

rootpublic
Root Curated rabbitmq镜像是基于官方rabbitmq的安全、轻量且便捷的容器化应用起点,具有减小的镜像大小、最小化的攻击面和增强的初始安全态势。
3.3千+ 次下载
10 个月前更新

查看更多 rabbitmq 相关镜像

更多相关 Docker 镜像与资源

以下是 bitnamicharts/rabbitmq 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:

  • library/rabbitmq Docker 镜像说明
  • bitnami/rabbitmq Docker 镜像说明(RabbitMQ 消息队列,Bitnami 企业级配置)
  • ubuntu/rabbitmq Docker 镜像说明(Ubuntu 官方 RabbitMQ,适合 AMQP 消息队列与异步任务)
  • bitnamilegacy/rabbitmq Docker 镜像说明(Bitnami Legacy RabbitMQ,适合沿用 Bitnami 目录的存量消息队列)
  • circleci/rabbitmq Docker 镜像说明(Rabbitmq 镜像变体,适合 Rabbitmq、Kafka 相关部署场景)