Piraeus DRBD 存储
Piraeus Operator 在 Kubernetes 上管理 DRBD 复制存储,提供高可用块设备、快照、扩容和跨节点复制。它适合数据库、消息队列等需要低延迟块存储的有状态服务。
核心概念:DRBDCluster、StorageClass、PersistentVolumeClaim、resource group 和 replica。数据在多个节点同步复制,Pod 漂移后可以重新挂载。
安装:
helm repo add piraeus-charts https://piraeus.io/helm-charts/
helm install piraeus-operator piraeus-charts/piraeus \
--namespace piraeus-system --create-namespace
kubectl -n piraeus-system get pods
创建 StorageClass:
kubectl apply -f - <<'EOF'
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: piraeus
provisioner: linstor.csi.linbit.com
parameters:
autoPlace: "3"
storagePool: "pool"
reclaimPolicy: Retain
allowVolumeExpansion: true
volumeBindingMode: WaitForFirstConsumer
EOF
创建 PVC:
kubectl apply -f - <<'EOF'
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: data
namespace: demo
spec:
accessModes: [ReadWriteOnce]
storageClassName: piraeus
resources:
requests:
storage: 10Gi
EOF
kubectl get pvc -n demo
查看 DRBD 资源:
kubectl get drbdclusters -A
kubectl get pvc -A
kubectl -n piraeus-system logs deploy/piraeus-operator -f
扩容:
kubectl patch pvc data -n demo \
-p '{"spec":{"resources":{"requests":{"storage":"20Gi"}}}}'
reclaimPolicy: Retain 删除 PVC 后数据仍保留,需手工清理。kubectl get pvc — 查看 PVC 状态kubectl get drbdclusters — 查看 DRBD 集群kubectl describe pvc — 查看调度和挂载事件kubectl -n piraeus-system logs — Operator 日志linstor — 底层资源管理(如已安装)