RabbitMQ群集运算符在Kubernetes中不起作用

RabbitMQ群集运算符在Kubernetes中不起作用,kubernetes,rabbitmq,Kubernetes,Rabbitmq,RabbitMQ群集运算符在Kubernetes中不起作用。 我有一个kubernetes cluster 1.17.17,共3个节点。我和一个牧场主一起部署了它。 根据此说明,我安装了RabbitMQ群集操作符: kubectl应用-f”https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml“ 没关系!但是 我根据文档为实例创建了这个非常简单的配置: apiVersi

RabbitMQ群集运算符在Kubernetes中不起作用。
我有一个kubernetes cluster 1.17.17,共3个节点。我和一个牧场主一起部署了它。 根据此说明,我安装了RabbitMQ群集操作符:
kubectl应用-f”https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml“

没关系!但是 我根据文档为实例创建了这个非常简单的配置:

apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  name: rabbitmq
  namespace: test-rabbitmq
我有错误:为pod“rabbitmq-server-0”运行“VolumeBinding”筛选器插件时出错:pod已解除立即PersistentVolumeClaims的绑定

之后我检查:
kubectl获取存储类

看到没有资源!我添加了以下StoreGeClass:

kind: StorageClass
apiVersion: storage.k8s.io/v1
metadata:
  name: local-storage
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
创建pv和pvc:

kind: PersistentVolume
apiVersion: v1
metadata:
  name: rabbitmq-data-sigma
  labels:
    type: local
  namespace: test-rabbitmq
  annotations:
    volume.alpha.kubernetes.io/storage-class: rabbitmq-data-sigma
spec:
  storageClassName: local-storage
  capacity:
    storage: 3Gi
  accessModes:
    - ReadWriteMany
  persistentVolumeReclaimPolicy: Recycle
  hostPath:
    path: "/opt/rabbitmq-data-sigma"
---
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: rabbitmq-data
  namespace: test-rabbitmq
spec:
  storageClassName: local-storage
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 3Gi
我最终在卷中得到一个错误-该卷将自动生成:

请帮助理解这个问题

您可以按照本文所述配置动态NFS资源调配等,也可以手动创建
PersistentVolume
(这是不推荐的方法)

我真的建议您配置动态资源调配- 这将允许您自动生成
PersistentVolumes

手动创建PersistentVolume 正如我所提到的,这不是推荐的方法,但当我们希望在不配置额外组件的情况下快速检查某些内容时,它可能会很有用

首先,您需要创建
PersistentVolume

apiVersion: v1
kind: PersistentVolume
metadata:
  name: pv
spec:
  capacity:
    storage: 10Gi
  accessModes:
    - ReadWriteOnce
  persistentVolumeReclaimPolicy: Recycle
  hostPath:
    path: /mnt/rabbitmq # data will be stored in the "/mnt/rabbitmq" directory on the worker node
    type: Directory
然后在运行
rabbitmq-server-0
Pod
的节点上创建
/mnt/rabbitmq
目录。在您的情况下,您有3个工作节点,因此可能很难确定
Pod
将在哪里运行

因此,您可以看到
PersistentVolumeClaim
已绑定到新创建的
PersistentVolume
,并且
rabbitmq-server-0
Pod
已成功创建:

# kubectl get pv,pvc -A
NAME                   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                         STORAGECLASS   REASON   AGE
persistentvolume/pv    10Gi       RWO            Recycle          Bound    test-rabbitmq/persistence-rabbitmq-server-0                           11m


NAMESPACE       NAME                                                  STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-rabbitmq   persistentvolumeclaim/persistence-rabbitmq-server-0   Bound    pv       10Gi       RWO                           11m

# kubectl get pod -n test-rabbitmq
NAME                READY   STATUS    RESTARTS   AGE
rabbitmq-server-0   1/1     Running   0          11m
# kubectl get pv,pvc -A
NAME                   CAPACITY   ACCESS MODES   RECLAIM POLICY   STATUS   CLAIM                                         STORAGECLASS   REASON   AGE
persistentvolume/pv    10Gi       RWO            Recycle          Bound    test-rabbitmq/persistence-rabbitmq-server-0                           11m


NAMESPACE       NAME                                                  STATUS   VOLUME   CAPACITY   ACCESS MODES   STORAGECLASS   AGE
test-rabbitmq   persistentvolumeclaim/persistence-rabbitmq-server-0   Bound    pv       10Gi       RWO                           11m

# kubectl get pod -n test-rabbitmq
NAME                READY   STATUS    RESTARTS   AGE
rabbitmq-server-0   1/1     Running   0          11m