[英]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.