Co-written by Xiaoqing Wang and Chunyi Lyu.
VMware 公司在RabbitMQ开源版的基础上,基于多种部署方式提供了VMware RabbitMQ商业版,包括OVA、Kubernetes、TAS、OCI(docker image)等版本. VMware RabbitMQ 在开源版的基础上,增加了Disaster Recovery(灾备)功能,提供了集群节点间的流量压缩功能,增强了整体的安全性.
本文旨在向中文用户介绍 VMware RabbitMQ for Kubernetes v1.4.x 的在线安装过程和注意事项,以及它的访问方式。关于VMware RabbitMQ for Kubernetes 的最新版本和更多技术内容请访问官方文档:VMware RabbitMQ for Kubernetes Documentation.
在部署 VMware RabbitMQ for Kubernetes之前,您需要准备一个Kubernetes集群:
- 一个X86_64 环境的Kubernetes集群,至少一个Master节点,一个Work节点.
- 一个Kubernetes 客户端,安装 kubectl 且能连接到k8s集群。如果是测试环境,也可以直接登录K8s Master节点进行操作.
- Kubernates 集群需要配置StorageClass,最好设置默认的StorageClass.
- VMware Tanzu Nework 几乎支持所有的 Kubernetes-compliant 平台,包括 GKE/AKS/TKG/TKGI 等等,本文使用的K8s 版本为 v1.23.10,一个master节点,两个work节点,部署在ubuntu x86_64系统上.
本文涉及的主要安装步骤如下:
- 接受EULA并获取基础工具包
- Kubernetes 环境准备
- VMware RabbitMQ Package 安装准备
- 安装 VMware RabbitMQ Package
- 创建和访问 VMware RabbitMQ 集群
接受EULA并获取基础工具包
VMware RabbitMQ for k8s 支持在线安装和离线安装,本文仅涉及在线安装过程,此处仅需要从 Tanzu Network 下载基础工具包.
如果您还没有Tanzu Network 账号,请访问 https://network.tanzu.vmware.com/ 使用邮箱免费注册.
接受EULA的方法
- 登录到 VMware Tanzu Network 分别搜索 Cluster Essentials for VMware Tanzu 和 VMware RabbitMQ for Kubernetes(或直接点击链接)
- 以 Cluster Essentials for VMware Tanzu 为例,如下图所示,点击黄色警告框中的“Click here to sign the EULA”链接,并在弹出页面中点击”Agree“按钮。如果看不到黄色警告框,则证明EULA已经接受。接受EULA后,即可下载 Cluster Essentials.
- 在线安装无需下载 VMware RabbitMQ for Kubernetes,但仍需要访问它的产品页面并接受EULA(方法与步骤 2相同 ).
Kubernetes 环境准备
在部署 VMware RabbitMQ Package 之前,您需要先在K8s上部署 Cluster Essentials for VMware。请根据您的k8s版本,选择合适的 Cluster Essentials版本。如果您的k8s版本在v1.20~v1.24之间,可以选择 Cluster Essentials v1.3.x;如果k8s版本在 v1.22~v1.25之间,可以选择Cluster Essentials v1.4.1。本文使用 k8s v1.23.10,选择使用 Cluster Essentials v1.4.1。点击此链接,登录 Tanzu Network并下载 tanzu-cluster-essentials-linux-amd64-1.4.1.tgz.
关于 Cluster Essentials for VMware 的最新版本和更多内容,请访问官方文档:Cluster Essentials for VMware Tanzu Documentation.
Cluster Essentials 安装步骤
1.将下载后 tanzu-cluster-essentials-linux-amd64-1.4.1.tgz 上传至k8s客户端(kubectl).
2.创建目录(目录名可自定义)并解压:
root@client:~# mkdir /opt/tanzu-cluster-essentials
root@client:~# tar -zxvf tanzu-cluster-essentials-linux-amd64-1.4.1.tgz -C /opt/tanzu-cluster-essentials
3.执行安装:
请把下面命令行中的“YourAccount”和“YourPassword”更换为您的Tanzu Network账号和密码.
root@client:/opt/tanzu-cluster-essentials# cd /opt/tanzu-cluster-essentials
root@client:/opt/tanzu-cluster-essentials# export INSTALL_BUNDLE=registry.tanzu.vmware.com/tanzu-cluster-essentials/cluster-essentials-bundle@sha256:2354688e46d4bb4060f74fca069513c9b42ffa17a0a6d5b0dbb81ed52242ea44
root@client:/opt/tanzu-cluster-essentials# export INSTALL_REGISTRY_HOSTNAME=registry.tanzu.vmware.com
root@client:/opt/tanzu-cluster-essentials# export INSTALL_REGISTRY_USERNAME=YourAccount@mail.com
root@client:/opt/tanzu-cluster-essentials# export INSTALL_REGISTRY_PASSWORD=YourPassword
root@client:/opt/tanzu-cluster-essentials# ./install.sh --yes
安装结束后,会看到“Succeeded”的提示。
4.确认安装成功:
确认kap-controller-* 和 secretgen-controller-* Pods的STATUS为Running.
root@client:/opt/tanzu-cluster-essentials# kubectl get all -n kapp-controller && kubectl get all -n secretgen-controller
NAME READY STATUS RESTARTS AGE
pod/kapp-controller-7c75b57c6c-wm2wf 2/2 Running 0 62m
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
service/packaging-api ClusterIP 10.99.125.69 <none> 443/TCP 62m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/kapp-controller 1/1 1 1 62m
NAME DESIRED CURRENT READY AGE
replicaset.apps/kapp-controller-7c75b57c6c 1 1 1 62m
NAME READY STATUS RESTARTS AGE
pod/secretgen-controller-6fbfb976d7-vqzmq 1/1 Running 0 18m
NAME READY UP-TO-DATE AVAILABLE AGE
deployment.apps/secretgen-controller 1/1 1 1 18m
NAME DESIRED CURRENT READY AGE
replicaset.apps/secretgen-controller-6fbfb976d7 1 1 1 18m
5.将 kapp复制到 /usr/local/bin,并授予可执行权限。
root@client:/opt/tanzu-cluster-essentials# cp kapp /usr/local/bin/kapp
root@client:/opt/tanzu-cluster-essentials# chmod +x /usr/local/bin/kapp
6.确认kapp 可以正常使用:
root@client:~# kapp version
kapp version 0.54.3
Succeeded
VMware RabbitMQ Package 安装准备
提供 imagePullSecrets
创建一个Secret,它包含访问Tanzu Network的账号和密码。然后,通过SecretExport 向安装 VMware RabbitMQ 的任意 namespace 提供(exports) imagePullSecret.
创建Secret和secretExport的yaml文件,如下所示:
vi registry-creds.yml
---
apiVersion: v1
kind: Secret
metadata:
name: tanzu-rabbitmq-registry-creds # could be any name
namespace: secrets-ns # could be any namespace
type: kubernetes.io/dockerconfigjson
stringData:
.dockerconfigjson: |
{
"auths": {
"registry.tanzu.vmware.com": {
"username": "youraccount@mail.com", # your account name.
"password": "yourpassword", # your password.
"auth": ""
}
}
}
---
apiVersion: secretgen.carvel.dev/v1alpha1
kind: SecretExport
metadata:
name: tanzu-rabbitmq-registry-creds # must match source secret name
namespace: secrets-ns # must match source secret namespace
spec:
toNamespaces:
- "*" # star means export is available for all namespaces
注意:
a.) Secret/SecretExport 的namespace都是“secrets-ns”,您可以自定义namespace的名字,但要确保它们的namespace相同.
b.) 请将.dockerconfigjson下的“username”和“passowrd”替换为您的TanzuNetwork的账号密码.
执行 yaml 文件
root@client:~# kubectl create namespace secrets-ns
namespace/secrets-ns created
root@client:~# kubectl apply -f registry-creds.yml
secret/tanzu-rabbitmq-registry-creds created
secretexport.secretgen.carvel.dev/tanzu-rabbitmq-registry-creds created
安装 PackageRespository
1.创建 PackageRepository yaml文件
vi tanzu-rabbitmq-repo.yml
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageRepository
metadata:
name: tanzu-rabbitmq-repo
namespace: vmware-rabbitmq
spec:
fetch:
imgpkgBundle:
# Replace BUNDLE_VERSION with the release version
image: registry.tanzu.vmware.com/p-rabbitmq-for-kubernetes/tanzu-rabbitmq-package-repo:1.4.1
注意:
a.) 您可以把 “1.4.1”替换为其他有效版本.
b.) 本例将PackageRepository创建在 vmware-rabbitmq 命名空间(namespace)下.
2.使用下面的命令部署 PackageRepository 对象.
# 创建Namespace
root@client:~# kubectl create namespace vmware-rabbitmq
namespace/vmware-rabbitmq created
# 在vmware-rabbimq 命名空间下部署 vmware rabbitmq repo.
root@client:~# kapp deploy -a tanzu-rabbitmq-repo -f tanzu-rabbitmq-repo.yml -y
Target cluster 'https://192.168.126.90:6443' (nodes: master, 2+)
Changes
Namespace Name Kind Age Op Op st. Wait to Rs Ri
vmware-rabbitmq tanzu-rabbitmq-repo PackageRepository - create - reconcile - -
Op: 1 create, 0 delete, 0 update, 0 noop, 0 exists
Wait to: 1 reconcile, 0 delete, 0 noop
12:23:25PM: ---- applying 1 changes [0/1 done] ----
12:23:25PM: create packagerepository/tanzu-rabbitmq-repo (packaging.carvel.dev/v1alpha1) namespace: vmware-rabbitmq
12:23:25PM: ---- waiting on 1 changes [0/1 done] ----
12:23:25PM: ongoing: reconcile packagerepository/tanzu-rabbitmq-repo (packaging.carvel.dev/v1alpha1) namespace: vmware-rabbitmq
12:23:25PM: ^ Waiting for generation 1 to be observed
12:23:28PM: ongoing: reconcile packagerepository/tanzu-rabbitmq-repo (packaging.carvel.dev/v1alpha1) namespace: vmware-rabbitmq
12:23:28PM: ^ Reconciling
12:24:01PM: ok: reconcile packagerepository/tanzu-rabbitmq-repo (packaging.carvel.dev/v1alpha1) namespace: vmware-rabbitmq
12:24:01PM: ---- applying complete [1/1 done] ----
12:24:01PM: ---- waiting complete [1/1 done] ----
Succeeded
3.验证 packages 是否安装成功,以及它们的版本
root@client:~# kubectl get packages -A
NAMESPACE NAME PACKAGEMETADATA NAME VERSION AGE
vmware-rabbitmq auditlogger.rabbitmq.tanzu.vmware.com.0.4.0 auditlogger.rabbitmq.tanzu.vmware.com 0.4.0 5m48s
vmware-rabbitmq cert-manager.rabbitmq.tanzu.vmware.com.1.5.3+rmq cert-manager.rabbitmq.tanzu.vmware.com 1.5.3+rmq 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.2.0 rabbitmq.tanzu.vmware.com 1.2.0 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.2.1 rabbitmq.tanzu.vmware.com 1.2.1 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.2.2 rabbitmq.tanzu.vmware.com 1.2.2 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.2.3 rabbitmq.tanzu.vmware.com 1.2.3 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.3.0 rabbitmq.tanzu.vmware.com 1.3.0 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.3.1 rabbitmq.tanzu.vmware.com 1.3.1 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.3.2 rabbitmq.tanzu.vmware.com 1.3.2 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.4.0 rabbitmq.tanzu.vmware.com 1.4.0 5m48s
vmware-rabbitmq rabbitmq.tanzu.vmware.com.1.4.1 rabbitmq.tanzu.vmware.com 1.4.1 5m48s
如果安装失败,在重新安装之前要删除旧的组件:
# 查看失败原因
kubectl describe packagerepository/tanzu-rabbitmq-repo -n vmware-rabbitmq
# 删除旧的组件
kapp delete -a tanzu-rabbitmq-repo
创建 ServiceAccount
安装 VMware RabbitMQ Package,您需要先创建一个有足够权限的 Service Account,主要包括三个步骤:
- 创建一个ClusterRole.
- 在 vmware-rabbitmq 命名空间(namespace)下创建一个名为 “tanzu-rabbitmq” 的 ServiceAccount.
- 创建一个 ClusterRoleBinding,将ClusterRole的权限赋予新创建的ServiceAccount.
1.上述操作全部定义在ServiceAccount yaml 文件中,您可以通过下面的链接获取 ServiceAccount yaml 文件.
https://docs.vmware.com/en/VMware-RabbitMQ-for-Kubernetes/1.4/rmq/GUID-_serviceaccount.yml
2.在 ServiceAccount yaml 文件的基础上,您可以修改yaml 文件ServiceAccount 的两处namespace,在本例中使用“vmware-rabbitmq”命名空间.
如下面的代码所示 (注意添加注释的行):
vi service-account.yml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: tanzu-rabbitmq
namespace: vmware-rabbitmq # your name space
---
apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRoleBinding
metadata:
name: tanzu-rabbitmq-crd-install-binding
roleRef:
apiGroup: rbac.authorization.k8s.io
kind: ClusterRole
name: tanzu-rabbitmq-crd-install
subjects:
- kind: ServiceAccount
name: tanzu-rabbitmq
namespace: vmware-rabbitmq # your name space
3.执行 yaml文件:
kubectl apply -f service-account.yml
如果执行出错,在重试之前,请先删除旧的对象:
kubectl delete -f service-account.yml
安装 cert-manager
在您安装 VMware RabbitMQ Package 之前,还需要在K8S集群上安装cert-manager. VMware RabbitMQ for Kubernetes 需要 cert-manager v1.5.0 或更高版本,在本例中使用cert-manager v1.5.3.
使用下面的命令检查您的K8S集群是否已安装了cert-manager:
root@client:~# kubectl api-resources | grep 'cert-manager'
如果没有安装,请使用下面的命令在线安装 GitHub发行的cert-manager v1.5.3.
root@client:~# kubectl apply -f https://github.com/cert-manager/cert-manager/releases/download/v1.5.3/cert-manager.yaml
安装 VMware RabbitMQ Package
接下来,我们就可以开始安装 VMware RabbitMQ Package了, 它包括了 VMware RabbitMQ Cluster Operator, Message Topology Operator, 以及 Standby Replication Operator。
具体步骤如下:
1.创建 PackageInstall yaml 文件
vi package-install.yml
apiVersion: packaging.carvel.dev/v1alpha1
kind: PackageInstall
metadata:
name: tanzu-rabbitmq
namespace: vmware-rabbitmq # Replace with namesapce name
spec:
serviceAccountName: tanzu-rabbitmq # Replace with service account name
packageRef:
refName: rabbitmq.tanzu.vmware.com
versionSelection:
constraints: 1.4.1 # Replace with release version
注意:
a.) 在本例中 PackageInstall 对象创建在“vmware-rabbitmq”命名空间下.
b.) serivceAccountName 应填写创建 ServiceAccount时指定的名称“tanzu-rabbitmq”.
c.) constraints 可以指定其他版本号。
2.执行yaml 文件,部署 PackageInstall:
kapp deploy -a tanzu-rabbitmq -f package-install.yml -y
注意,虽然 PackageInstall 对象是部署在 vmware-rabbitmq 命名空间下的,但是Operators默认是被安装在 rabbitmq-system 命名空间下的,当然你也可以改变Operaters的命名空间,具体方法请参考官方文档,点击此链接并搜索 "rabbitmq-system" .
3.确认安装成功:
使用下面的命令确认“rabbitmq-system” 命名空间下的三个pod状态均为Running.
root@master:~# kubectl get pod -n rabbitmq-system
NAME READY STATUS RESTARTS AGE
messaging-topology-operator-788f7bbb77-bbhd7 1/1 Running 1 (<invalid> ago) 8h
rabbitmq-cluster-operator-746dffb948-f7wb6 1/1 Running 1 (<invalid> ago) 8h
standby-replication-operator-5469d694f-nvsrf 1/1 Running 1 (<invalid> ago) 8h
如果安装失败,可以使用下面的命令查看问题原因,删除失败对象并重试:
# 查看失败原因
kubectl describe PackageInstall/tanzu-rabbitmq -n vmware-rabbitmq
# 删除 PackageInstall
kapp delete -a tanzu-rabbitmq
创建和访问 RabbitMQ 集群
下面我们就可以创建 RabbitMQ Cluster了。在此过程中,因为需要从Tanzu Network 在线拉取 VMware RabbitMQ 容器镜像,所以必须要提供 imagePullSecrets.
创建 image-pull-secret
本文计划将RabbitMQ Cluster部署在“vmware-rabbitmq”命名空间下,所以在此命名空间下需要创建imagePullSecrets。
请注意,在前面 “VMware RabbitMQ Package 安装准备”的章节,我们已经创建了名为“tanzu-rabbitmq-registry-creds”的secrets,并把它Export 到所有的namespace。所以,在下面的yaml文件中,我们可以使用“占位符”的方式创建一个同名的Secret对象,把它指向前面步骤创建的"secrets-ns/tanzu-rabbitmq-registry-creds".
vi tanzu-rabbitmq-image-pull-creds.yml
---
apiVersion: v1
kind: Secret
metadata:
name: tanzu-rabbitmq-registry-creds
namespace: vmware-rabbitmq
annotations:
secretgen.carvel.dev/image-pull-secret: "secrets-ns/tanzu-rabbitmq-registry-creds"
type: kubernetes.io/dockerconfigjson
data:
.dockerconfigjson: e30K
执行 yaml 文件,创建image-pull-secret.
kubectl apply -f tanzu-rabbitmq-image-pull-creds.yml
创建 RabbitMQ Cluster
1.创建集群定义的yaml文件
在下面的yaml文件中,定义了一个三节点的 RabbitMQ 集群.
vi test-rabbit-cluster.yml
apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
name: test-rabbit-cluster
namespace: vmware-rabbitmq
spec:
replicas: 3
imagePullSecrets:
- name: tanzu-rabbitmq-registry-creds
service:
type: NodePort
注意:
a. ) raplicas 参数决定了 RabbitMQ Cluster 的节点数量.
b.) sepc.imagePullSecrets 要填写上个步骤在“vmware-rabbitmq”命名空间下创建的Secret名称.
c.) 为了便于通过management UI 验证结果,spec.service.type 使用了NodePort方式。除了NodePort之外,VMware RabbitMQ 还支持ClusterIP/LoadBalancer.
d.) VMware RabbitMQ Pods 默认分配的CPU/内存资源如下,您可以根据需要,在Yaml文件中添加”resources:”定义,并对参数进行修改:
...
spec:
resources:
requests:
cpu: 1000m # 默认值
memory: 2Gi # 默认值
limits:
cpu: 2000m # 默认值
memory: 2Gi # 默认值
...
e.) VMware RabbitMQ Pods 默认使用 Defalult StoreageClass,分配的存储空间为10G。如果k8s没有设置 Default StoreageClass,必须要在Yaml文件中指定 spec.persistence.storageClassName.
...
spec:
persistence:
storageClassName: nfs-storage
storage: 10Gi # 默认为 10GB
...
f.) 关于RabbitMQ Cluster yaml 文件的更多参考样例,请访问如下链接:
cluster-operator/docs/examples at main · rabbitmq/cluster-operator · GitHub
2.执行 yaml 文件
#创建 rabbitmq 集群
root@client:~# kubectl apply -f test-rabbit-cluster.yml
rabbitmqcluster.rabbitmq.com/test-rabbit-cluster created
3.验证集群成功创建:
root@client:~# kubectl get pod -n vmware-rabbitmq
NAME READY STATUS RESTARTS AGE
test-rabbit-cluster-server-0 1/1 Running 0 2m
test-rabbit-cluster-server-1 1/1 Running 0 2m
test-rabbit-cluster-server-2 1/1 Running 0 2m
访问和管理 RabbitMQ Cluster
1.应用(RabbitMQ客户端)访问消息队列(5672端口)
您可以通过如下命令查看RabbitMQ Cluster SVC 的IP和PORTS,应用系统(RabbitMQ客户端)可以通过内部IP和PORTS访问RabbitMQ Broker。如果应用系统没有部署在同一K8S集群,则您需要使用K8S节点IP和NodePort映射后的端口号(本例为30105)来访问.
root@client:~# kubectl get svc -n vmware-rabbitmq
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
test-rabbit-cluster NodePort 10.101.66.46 <none> 5672:30105/TCP,15672:31796/TCP,15692:31315/TCP 35m
test-rabbit-cluster-nodes ClusterIP None <none> 4369/TCP,25672/TCP 35m
2.访问Management UI
如果您希望通过客户端浏览器(如Chrome)访问 RabbitMQ Management UI,可以通过如下命令获取15672映射出的端口号(本例为31796),然后使用URL “http://k8s_node_ip:31796” 访问即可。 如果您的RabbitMQ集群 services.type 使用的是ClusterIP,则需要使用 kubectl port-forward(或其他方式)将15672的端口映射出来,然后再通过客户端浏览器访问。
root@client:~# kubectl get svc -n vmware-rabbitmq
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
test-rabbit-cluster NodePort 10.101.66.46 <none> 5672:30105/TCP,15672:31796/TCP,15692:31315/TCP 35m
test-rabbit-cluster-nodes ClusterIP None <none> 4369/TCP,25672/TCP 35m
通过下面的命令获取RabbitMQ集群默认的用户名和密码.
# 获取test-rabbitmq-cluster的secrets的名字:test-rabbit-cluster-default-user
root@client:~# kubectl get secret -n vmware-rabbitmq
NAME TYPE DATA AGE
default-token-gpbzd kubernetes.io/service-account-token 3 14h
tanzu-rabbitmq-fetch-0 kubernetes.io/dockerconfigjson 1 11h
tanzu-rabbitmq-registry-creds kubernetes.io/dockerconfigjson 1 147m
tanzu-rabbitmq-repo-fetch-0 kubernetes.io/dockerconfigjson 1 14h
tanzu-rabbitmq-token-pjgsb kubernetes.io/service-account-token 3 12h
test-rabbit-cluster-default-user Opaque 7 103m
test-rabbit-cluster-erlang-cookie Opaque 1 103m
test-rabbit-cluster-server-token-qm6z7 kubernetes.io/service-account-token 3 103m
# 获取默认用户名
root@client:~# kubectl get secret test-rabbit-cluster-default-user -o jsonpath='{.data.username}' -n vmware-rabbitmq | base64 –decode
default_user_WrKHy6mzuciPuVE_4JV
# 获取密码
root@client:~# kubectl get secret test-rabbit-cluster-default-user -o jsonpath='{.data.password}' -n vmware-rabbitmq | base64 –decode
2C8R46R9CCoJgEEkDnO4x-5l9ZR7ohc8
使用 user/password(default_user_WrKHy6mzuciPuVE_4JV / 2C8R46R9CCoJgEEkDnO4x-5l9ZR7ohc8)登录 RabbitMQ Management UI ( http://k8s_node_ip:31796/ ),在Overview页面您可以看到集群中每个节点的状态.
3.登录 RabbitMQ Pod.
使用下面的命令登录Pod,可以执行rabbitmqctl /rabbitmqadmin 命令.
# 查看 RabbitMQ Cluster Pods 名称
root@client:~# kubectl get pod -n vmware-rabbitmq
NAME READY STATUS RESTARTS AGE
test-rabbit-cluster-server-0 1/1 Running 0 133m
test-rabbit-cluster-server-1 1/1 Running 0 133m
test-rabbit-cluster-server-2 1/1 Running 0 133m
# 登录 Pod: test-rabbit-cluster-server-0
root@client:~# kubectl exec -it test-rabbit-cluster-server-0 -n vmware-rabbitmq -- /bin/bash
Defaulted container "rabbitmq" out of: rabbitmq, setup-container (init)
# 使用 rabbitmqctl 命令查看 cluster 状态
rabbitmq [ ~ ]$ rabbitmqctl cluster_status
Cluster status of node rabbit@test-rabbit-cluster-server-0.test-rabbit-cluster-nodes.vmware-rabbitmq ...
Basics
Cluster name: test-rabbit-cluster
Disk Nodes
rabbit@test-rabbit-cluster-server-0.test-rabbit-cluster-nodes.vmware-rabbitmq
rabbit@test-rabbit-cluster-server-1.test-rabbit-cluster-nodes.vmware-rabbitmq
rabbit@test-rabbit-cluster-server-2.test-rabbit-cluster-nodes.vmware-rabbitmq
.....
# 使用 rabbitmqadmin 命令查看节点
rabbitmq [ ~ ]$ rabbitmqadmin list nodes
+-------------------------------------------------------------------------------+------+-----------+
| name | type | mem_used |
+-------------------------------------------------------------------------------+------+-----------+
| rabbit@test-rabbit-cluster-server-0.test-rabbit-cluster-nodes.vmware-rabbitmq | disc | 150994944 |
| rabbit@test-rabbit-cluster-server-1.test-rabbit-cluster-nodes.vmware-rabbitmq | disc | 152858624 |
| rabbit@test-rabbit-cluster-server-2.test-rabbit-cluster-nodes.vmware-rabbitmq | disc | 151732224 |
+-------------------------------------------------------------------------------+------+-----------+
通过上面的步骤,我们就完成了 VMware RabbitMQ for kubernetes 的部署和基本配置,并创建了一个三节点 RabbitMQ Cluster。接下来,您就可以正式开启对VMware RabbitMQ for k8s的探索之旅了,感受VMware RabbitMQ Operator为日常运维和管理带来的便利性.
在下一篇文章中,我们将讲解如何基于 VMware RabbitMQ for Kubernetes 配置DR(Disaster Recovery),敬请期待.








