目录标题
以下是 Linstor 在 Kubernetes 中集成 CSI 插件 的完整指南,涵盖架构说明、部署步骤、StorageClass 配置、PVC 使用示例等,帮助你实现 Linstor 分布式块存储的自动化编排和持久化卷管理。
🧩 一、架构概览
Linstor CSI 插件通过 CSI(Container Storage Interface)标准与 Kubernetes 集成,主要组件如下:
| 组件 | 描述 |
|---|---|
| Linstor Controller | 控制面,管理资源调度、卷调度与复制等 |
| Linstor Satellite | 部署在每个工作节点上,执行实际数据操作 |
| CSI Controller Plugin | 接收 K8s CSI 请求并调用 Linstor API |
| CSI Node Plugin | 驻留在每个节点,负责挂载卷到 Pod |
| Linstor Operator(可选) | 用于自动化安装和管理 Linstor 组件 |
📦 二、前提条件
-
已部署的 Kubernetes 集群(建议 v1.21+)
-
每个节点安装好:
- DRBD 模块(或使用 ZFS 后端)
- LVM、ZFS、或其他存储后端(作为 Storage Pool)
-
启动并配置好的:
linstor-controller- 至少两个
linstor-satellite节点
🛠️ 三、部署 Linstor CSI 插件
1. 添加 LINBIT 官方 Helm 仓库(推荐方式)
helm repo add linstor https://charts.linstor.io/
helm repo update
2. 安装 Linstor CSI 插件
helm install linstor-csi linstor/linstor-csi \
--namespace linstor \
--create-namespace
你也可以单独安装
linstor-satellite和linstor-controller,或使用linstor-operator统一部署。
🧾 四、创建 StorageClass
以下是一个典型的 StorageClass 配置示例:
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: linstor-sc
provisioner: linstor.csi.linbit.com
parameters:
storagePool: lvm-thin # 指定 Linstor 中的存储池
replication: "2" # 设置副本数(需至少 2 个 Satellite 节点)
reclaimPolicy: Delete
volumeBindingMode: WaitForFirstConsumer
字段说明:
provisioner:Linstor CSI 插件名称(固定写法)parameters.storagePool:你在 Linstor 中配置的存储池名parameters.replication:副本数,常见为1或2volumeBindingMode: WaitForFirstConsumer:延迟绑定,适用于动态调度
📄 五、创建 PVC(动态卷申请)
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: linstor-pvc
spec:
accessModes:
- ReadWriteOnce
storageClassName: linstor-sc
resources:
requests:
storage: 10Gi
创建后,Linstor 会根据配置自动:
- 在选定的存储节点上创建卷
- 建立 DRBD 资源副本
- 将其挂载到使用该 PVC 的 Pod
🚀 六、使用 PVC 的 Pod 示例
apiVersion: v1
kind: Pod
metadata:
name: linstor-test-pod
spec:
containers:
- name: app
image: busybox
command: [ "sleep", "3600" ]
volumeMounts:
- mountPath: "/data"
name: linstor-volume
volumes:
- name: linstor-volume
persistentVolumeClaim:
claimName: linstor-pvc
🧪 七、验证部署
# 查看卷是否绑定成功
kubectl get pvc,pv
# 查看 Linstor 中资源状态
linstor resource list
linstor volume list
# 检查 CSI 插件日志
kubectl -n linstor logs -l app.kubernetes.io/name=linstor-csi
⚙️ 八、进阶配置建议
| 功能 | 说明 |
|---|---|
| 自动副本调度 | 可配合 Topology 约束,设置副本不在同一故障域 |
| 快照支持 | Linstor 支持 CSI 快照功能(需额外安装 Snapshot CRD) |
| ZFS 后端 | 支持精细化的卷快照、压缩、发送复制等 |
| Prometheus Exporter | 通过 LINSTOR Prometheus 插件进行监控 |
📚 官方参考资料
- LINSTOR Helm Chart 文档:https://charts.linstor.io
- LINSTOR CSI 插件仓库:https://github.com/LINBIT/linstor-csi
- CSI Spec 文档:https://kubernetes-csi.github.io
如果你还需要:
- Linstor CSI 快照恢复完整用例
- CSI Topology 限制存储调度(zone/host)
- 结合 StatefulSet 的动态卷管理实践
Linstor 在 Kubernetes 集成 CSI 插件指南

1870

被折叠的 条评论
为什么被折叠?



