簡體   English   中英

無法使用 RabbitMQ 集群 Kube.netes 算子創建 RabbitMQ 實例

[英]Unable to create a RabbitMQ instance using RabbitMQ cluster Kubernetes operator

我正在嘗試使用 RabbitMQ 集群 Kube.netes 運算符創建一個 RabbitMQ 實例,但 PersistentVolumeClaims 存在問題。 我正在使用 Docker 桌面為 Windows 運行 Kube.netes 1.18.8。

我已經安裝了這樣的操作員:

kubectl apply -f "https://github.com/rabbitmq/cluster-operator/releases/latest/download/cluster-operator.yml"

我根據文檔為實例創建了這個非常簡單的配置:

apiVersion: rabbitmq.com/v1beta1
kind: RabbitmqCluster
metadata:
  name: nccrabbitmqcluster

它似乎創建了它應該創建的所有對象,但是 pod 卡在 pending state 上:

$ kubectl get all | grep rabbit
pod/nccrabbitmqcluster-server-0         0/1     Pending   0          14m
service/nccrabbitmqcluster                  ClusterIP      10.100.186.115   <none>        5672/TCP,15672/TCP   14m
service/nccrabbitmqcluster-nodes            ClusterIP      None             <none>        4369/TCP,25672/TCP   14m
statefulset.apps/nccrabbitmqcluster-server     0/1     14m

根據 pod 的事件,似乎有一個未綁定的 PVC:

$ kubectl describe pod/nccrabbitmqcluster-server-0 | tail -n 5
Events:
  Type     Reason            Age        From               Message
  ----     ------            ----       ----               -------
  Warning  FailedScheduling  <unknown>  default-scheduler  running "VolumeBinding" filter plugin for pod "nccrabbitmqcluster-server-0": pod has unbound immediate PersistentVolumeClaims
  Warning  FailedScheduling  <unknown>  default-scheduler  running "VolumeBinding" filter plugin for pod "nccrabbitmqcluster-server-0": pod has unbound immediate PersistentVolumeClaims

根據 PVC 的事件,它正在等待創建卷:

$ kubectl describe pvc persistence-nccrabbitmqcluster-server-0
Name:          persistence-nccrabbitmqcluster-server-0
Namespace:     default
StorageClass:  hostpath
Status:        Pending
Volume:
Labels:        app.kubernetes.io/component=rabbitmq
               app.kubernetes.io/name=nccrabbitmqcluster
               app.kubernetes.io/part-of=rabbitmq
Annotations:   volume.beta.kubernetes.io/storage-provisioner: docker.io/hostpath
Finalizers:    [kubernetes.io/pvc-protection]
Capacity:
Access Modes:
VolumeMode:    Filesystem
Mounted By:    nccrabbitmqcluster-server-0
Events:
  Type    Reason                Age                 From                         Message
  ----    ------                ----                ----                         -------
  Normal  ExternalProvisioning  27s (x23 over 19m)  persistentvolume-controller  waiting for a volume to be created, either by external provisioner "docker.io/hostpath" or manually created by system administrator

我的理解是 docker.io/hostpath 是正確的供應商:

$ kubectl get storageclasses
NAME                 PROVISIONER          RECLAIMPOLICY   VOLUMEBINDINGMODE   ALLOWVOLUMEEXPANSION   AGE
hostpath (default)   docker.io/hostpath   Delete          Immediate           false                  20d

我看不到任何與 PCS 相關的 PV:

$ kubectl get pv | grep rabbit

為什么卷沒有自動創建,我該怎么辦?

是的,您的本地主機路徑不能用作動態卷配置器。 該運算符需要一個可以動態創建 PV 的存儲類名。 在您的情況下,您的操作員不斷等待創建 PV。 相反,如果您在本地計算機上執行操作,則可以手動創建 PV 和 PVC。 檢查這個例子 - https://github.com/rabbitmq/cluster-operator/blob/main/docs/examples/multiple-disks/rabbitmq.yaml

如果你打算嘗試任何像 AWS 這樣的雲提供商,那么它很容易。 在您的集群中部署 EBS CSI 驅動程序,這將為您創建一個存儲類,該存儲類將提供動態卷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM