跳至主要内容

在 Kubernetes 集群中安装 RabbitMQ 集群操作符

概述

本指南介绍了如何在 Kubernetes 集群中安装 RabbitMQ 集群 Kubernetes 操作符

兼容性

操作符需要


安装

要安装操作符,请运行以下命令

kubectl apply -f "https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml"
# namespace/rabbitmq-system created
# customresourcedefinition.apiextensions.k8s.io/rabbitmqclusters.rabbitmq.com created
# serviceaccount/rabbitmq-cluster-operator created
# role.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-role created
# clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-operator-role created
# rolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-rolebinding created
# clusterrolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-operator-rolebinding created
# deployment.apps/rabbitmq-cluster-operator created

此时,RabbitMQ 集群 Kubernetes 操作符已成功安装。一旦 RabbitMQ 集群 Kubernetes 操作符 pod 运行,请转到 使用 Kubernetes RabbitMQ 集群 Kubernetes 操作符,以获取有关如何使用 Kubernetes 自定义资源部署 RabbitMQ 的说明。

如果您想安装特定版本的操作符,则需要从 操作符版本 获取清单链接。请注意,0.46.0 之前的版本没有此清单。我们强烈建议安装 0.46.0+ 版本。

如果您想将操作符镜像重新定位到自定义位置,则 重新定位镜像 部分提供了将操作符镜像重新定位到私有注册表的说明。

使用 kubectl-rabbitmq 插件安装

kubectl rabbitmq 插件提供用于管理 RabbitMQ 集群的命令。可以使用 krew 安装该插件。

kubectl krew install rabbitmq

要获取可用命令的列表,请使用

kubectl rabbitmq help
# USAGE:
# Install RabbitMQ Cluster Operator (optionally provide image to use a relocated image or a specific version)
# kubectl rabbitmq install-cluster-operator [IMAGE]
# [...]
kubectl rabbitmq install-cluster-operator
# namespace/rabbitmq-system created
# customresourcedefinition.apiextensions.k8s.io/rabbitmqclusters.rabbitmq.com created
# serviceaccount/rabbitmq-cluster-operator created
# role.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-role created
# clusterrole.rbac.authorization.k8s.io/rabbitmq-cluster-operator-role created
# rolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-leader-election-rolebinding created
# clusterrolebinding.rbac.authorization.k8s.io/rabbitmq-cluster-operator-rolebinding created
# deployment.apps/rabbitmq-cluster-operator created

使用 Helm 图表安装

要使用 Bitnami Helm 图表 安装操作符,请运行以下命令

helm repo add bitnami https://charts.bitnami.com/bitnami
helm install my-release bitnami/rabbitmq-cluster-operator

最后一个命令在 Kubernetes 集群中以默认配置部署 RabbitMQ 集群 Kubernetes 操作符。 参数 部分列出了安装期间可以配置的参数。

操作符的 Helm 图表需要

  • Helm 图表 3.1.0
  • 基础设施中的 PV 配置程序支持

(可选) 重新定位镜像

如果您不能直接从 Docker Hub 拉取镜像到您的 Kubernetes 集群,则需要先将镜像重新定位到您的私有注册表。确切的步骤取决于您的环境,但可能类似于以下步骤

docker pull rabbitmqoperator/cluster-operator:{some-version}
docker tag rabbitmqoperator/cluster-operator:{some-version} {someregistry}/cluster-operator:{some-version}
docker push {someregistry}/cluster-operator:{some-version}

{someregistry} 的值应该是 OCI 兼容注册表的地址。{some-version} 的值是集群操作符的版本号。

如果您需要身份验证才能从您的私有镜像注册表拉取镜像,则必须 配置 Kubernetes 集群访问私有镜像

下载清单 来自您要重新定位的版本并编辑部署镜像部分。您可以通过 grep'ing 字符串 image: 来定位此部分。

grep -C3 image: releases/cluster-operator.yml
# [...]
# --
# valueFrom:
# fieldRef:
# fieldPath: metadata.namespace
# image: rabbitmqoperator/cluster-operator:0.49.0
# name: operator
# resources:
# limits:

配置 Kubernetes 集群访问私有镜像

如果您将镜像重新定位到私有注册表,并且您的注册表需要身份验证,则需要按照以下步骤允许 Kubernetes 拉取镜像。

首先,创建操作符将用来运行和拉取镜像的服务帐户

apiVersion: v1
kind: ServiceAccount
metadata:
name: rabbitmq-cluster-operator
namespace: rabbitmq-system

其次,创建包含从私有注册表拉取凭据的 Secret

kubectl -n rabbitmq-system create secret \
docker-registry rabbitmq-cluster-registry-access \
--docker-server=DOCKER-SERVER \
--docker-username=DOCKER-USERNAME \
--docker-password=DOCKER-PASSWORD

其中

  • DOCKER-SERVER 是您私有镜像注册表的服务器 URL。
  • DOCKER-USERNAME 是您用于私有镜像注册表身份验证的用户名。
  • DOCKER-PASSWORD 是您用于私有镜像注册表身份验证的密码。

例如

kubectl -n rabbitmq-system create secret \
docker-registry rabbitmq-cluster-registry-access \
--docker-server=docker.io/my-registry \
--docker-username=my-username \
--docker-password=example-password1

现在,通过运行以下命令更新操作符服务帐户

kubectl -n rabbitmq-system patch serviceaccount \
rabbitmq-cluster-operator -p '{"imagePullSecrets": [{"name": "rabbitmq-cluster-registry-access"}]}'

请注意,操作符服务帐户的名称不可配置,必须为 rabbitmq-cluster-operator

配置操作符以使用私有注册表

您需要修改操作符的配置,以默认情况下对新的 RabbitmqCluster 实例使用重新定位的镜像。T 设置操作符部署时的 DEFAULT_RABBITMQ_IMAGEDEFAULT_USER_UPDATER_IMAGEDEFAULT_IMAGE_PULL_SECRETS 的值,请参阅 为 RabbitMQ 集群操作符配置默认值

© 2024 RabbitMQ. All rights reserved.