专属域名
文档搜索
轩辕助手
Run助手
邀请有礼
返回顶部
快速返回页面顶部
收起
收起工具栏

openebs/provisioner-localpv Docker 镜像 - 轩辕镜像

provisioner-localpv
openebs/provisioner-localpv
OpenEBS动态本地持久卷供应器,用于在容器环境中动态创建和管理本地持久卷,为应用提供本地化存储的持久化支持。
4 收藏0 次下载activeopenebs镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

OpenEBS Dynamic Local PV Provisioner 镜像文档

1. 镜像概述和主要用途

OpenEBS Dynamic Local PV Provisioner 是 OpenEBS 项目提供的容器化工具,用于在 Kubernetes 集群中动态供应本地持久卷(Local Persistent Volume, Local PV)。其核心功能是根据用户定义的存储类(StorageClass)配置,自动创建和管理基于节点本地存储的 PV 资源,简化本地存储在 Kubernetes 环境中的使用流程。

该镜像主要适用于需要利用节点本地存储(如主机路径、LVM 卷、ZFS 数据集等)的场景,通过动态供应机制替代手动创建 PV 的繁琐操作,提升本地存储资源的管理效率。

2. 核心功能和特性

2.1 动态 PV 供应
  • 支持基于 Kubernetes StorageClass 的声明式配置,自动响应 PVC(PersistentVolumeClaim)请求并创建 Local PV。
  • 无需手动预创建 PV,降低运维复杂度。
2.2 多存储类型支持
  • 兼容多种本地存储后端:
    • 主机路径(HostPath):直接使用节点文件系统路径
    • LVM:基于逻辑卷管理的块存储
    • ZFS:基于 ZFS 文件系统的存储池
    • 自定义存储后端(通过插件扩展)
2.3 存储策略自定义
  • 支持通过 StorageClass 参数定义存储特性,如文件系统类型(ext4、xfs)、存储路径前缀、容量限制等。
  • 支持基于节点标签的存储节点选择,实现存储资源的定向分配。
2.4 存储生命周期管理
  • 支持 PV 自动回收(当 PVC 删除且 StorageClass 配置 reclaimPolicy: Delete 时)。
  • 存储容量监控:可集成 Prometheus 暴露存储使用 metrics。
2.5 Kubernetes 原生集成
  • 符合 Kubernetes CSI(Container Storage Interface)规范,兼容 Kubernetes 1.14+ 版本。
  • 支持 PV 节点亲和性(Node Affinity),确保 Pod 调度到 PV 所在节点。

3. 使用场景和适用范围

3.1 典型使用场景
  • 低延迟应用:如数据库(PostgreSQL、MySQL、MongoDB)、消息队列(Kafka、RabbitMQ)等需要本地存储低延迟特性的应用。
  • 分布式存储本地缓存:作为分布式存储系统(如 Ceph、GlusterFS)的本地缓存层,提升读写性能。
  • 状态ful应用:需要持久化本地数据的 StatefulSet 应用(如分布式数据库集群、服务注册中心)。
  • 资源受限环境:在无法使用共享存储的边缘节点或小型集群中,高效利用本地磁盘资源。
3.2 适用范围
  • 环境要求:Kubernetes 集群(1.14+ 版本,推荐 1.18+),节点需配置可用的本地存储(磁盘、分区或文件系统路径)。
  • 存储限制:仅支持节点本地存储,不提供跨节点数据共享或高可用能力(需结合应用层副本机制实现高可用)。

4. 使用方法和配置说明

4.1 部署前提
  • Kubernetes 集群已运行(版本 ≥1.14),且节点已配置目标本地存储(如 /var/openebs/local 目录、LVM 卷组等)。
  • 集群已安装 kubectl 命令行工具,且用户具有集群管理员权限。
4.2 Kubernetes 部署示例
4.2.1 部署 Provisioner

通过 YAML 配置部署 Provisioner(以 DaemonSet 形式运行在目标节点):

yaml
# openebs-localpv-provisioner.yaml
apiVersion: apps/v1
kind: DaemonSet
metadata:
  name: openebs-localpv-provisioner
  namespace: openebs
spec:
  selector:
    matchLabels:
      name: openebs-localpv-provisioner
  template:
    metadata:
      labels:
        name: openebs-localpv-provisioner
    spec:
      serviceAccountName: openebs-localpv-provisioner
      containers:
      - name: provisioner
        image: openebs/provisioner-localpv:3.6.0  # 替换为最新版本
        env:
        - name: NODE_NAME
          valueFrom:
            fieldRef:
              fieldPath: spec.nodeName
        - name: OPENEBS_NAMESPACE
          valueFrom:
            fieldRef:
              fieldPath: metadata.namespace
        - name: PROVISIONER_NAME
          value: openebs.io/local
        - name: LOG_LEVEL
          value: "info"  # 可选:debug, info, warn, error
        volumeMounts:
        - name: localpv-mount
          mountPath: /var/openebs/local  # 宿主机本地存储根路径,需提前创建
      volumes:
      - name: localpv-mount
        hostPath:
          path: /var/openebs/local
          type: DirectoryOrCreate

应用部署:

bash
kubectl create namespace openebs
kubectl apply -f openebs-localpv-provisioner.yaml
4.2.2 创建 StorageClass

定义存储类(以 HostPath 为例):

yaml
# storageclass-localpv.yaml
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: openebs-local-hostpath
provisioner: openebs.io/local  # 需与 Provisioner 环境变量 PROVISIONER_NAME 一致
parameters:
  storage: "hostpath"  # 存储类型:hostpath/lvm/zfs
  path: "/var/openebs/local"  # 节点本地存储路径
  fsType: "ext4"  # 文件系统类型:ext4/xfs/btrfs
reclaimPolicy: Delete  # PV 回收策略:Delete/Retain
volumeBindingMode: WaitForFirstConsumer  # 延迟绑定,直到 Pod 调度后再创建 PV
allowedTopologies:  # 可选:限制存储节点(通过节点标签)
- matchLabelExpressions:
  - key: openebs.io/node
    values:
    - storage-node-1
    - storage-node-2

应用存储类:

bash
kubectl apply -f storageclass-localpv.yaml
4.2.3 创建 PVC 并使用

通过 PVC 请求本地 PV:

yaml
# pvc-localpv.yaml
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: local-pvc
spec:
  accessModes:
    - ReadWriteOnce  # Local PV 仅支持 ReadWriteOnce 或 ReadOnlyMany
  resources:
    requests:
      storage: 10Gi  # 请求存储容量
  storageClassName: openebs-local-hostpath  # 关联上述创建的 StorageClass

应用 PVC:

bash
kubectl apply -f pvc-localpv.yaml

在 Pod 中使用 PVC:

yaml
# pod-using-localpv.yaml
apiVersion: v1
kind: Pod
metadata:
  name: app-using-localpv
spec:
  containers:
  - name: app
    image: busybox
    command: ["sleep", "3600"]
    volumeMounts:
    - name: data
      mountPath: /data
  volumes:
  - name: data
    persistentVolumeClaim:
      claimName: local-pvc
4.3 配置参数说明
4.3.1 StorageClass 参数
参数名说明可选值默认值
storage本地存储类型hostpath/lvm/zfshostpath
path存储根路径(hostpath 类型必填)节点存在的绝对路径/var/openebs/local
fsType文件系统类型ext4/xfs/btrfsext4
lvm.vgNameLVM 卷组名称(lvm 类型必填)节点上存在的 LVM 卷组-
zfs.poolNameZFS 存储池名称(zfs 类型必填)节点上存在的 ZFS 池-
capacity单 PV 最大容量限制(需配合 Provisioner 配置)如 100Gi无限制
4.3.2 Provisioner 环境变量
环境变量名说明默认值
PROVISIONER_NAMEProvisioner 名称(需与 StorageClass provisioner 字段一致)openebs.io/local
NODE_NAME当前节点名称(自动从 fieldRef 获取,无需手动设置)节点 hostname
OPENEBS_NAMESPACEProvisioner 所在命名空间openebs
LOG_LEVEL日志级别info
STORAGE_PATH默认存储根路径(当 StorageClass 未指定 path 时使用)/var/openebs/local
NODE_SELECTOR_LABEL节点选择标签(仅在 DaemonSet 中调度到匹配标签的节点)无
PV_RECLAIM_DELAYPV 删除延迟时间(秒),用于防止误删除30

5. 常见问题与注意事项

  • PV 与节点绑定:Local PV 与创建时所在节点强绑定,若节点故障,PV 将不可用,需手动处理数据恢复。
  • 存储容量限制:PVC 请求容量不得超过节点实际可用存储,否则 Provisioner 将拒绝创建 PV。
  • 文件系统格式化:Provisioner 会自动格式化指定 fsType 的文件系统,若路径已存在数据,需确保 reclaimPolicy: Retain 避免数据丢失。
  • 升级兼容性:升级 Provisioner 前需确保所有 PVC 处于 Bound 状态,避免影响正在使用的 PV。
  • 监控集成:通过配置 Prometheus ServiceMonitor,可采集 PV 使用率、供应成功率等 metrics,配置示例参考 OpenEBS 官方文档。
查看更多 provisioner-localpv 相关镜像 →
openebs/zfs-driver logo
openebs/zfs-driver
by openebs
暂无描述
3100M+ pulls
上次更新:5 天前
openebs/linux-utils logo
openebs/linux-utils
by openebs
暂无描述
15M+ pulls
上次更新:1 个月前
openebs/rawfile-localpv logo
openebs/rawfile-localpv
by openebs
暂无描述
25M+ pulls
上次更新:13 天前
openebs/lvm-driver logo
openebs/lvm-driver
by openebs
暂无描述
1M+ pulls
上次更新:1 个月前
openebs/alpine-sh logo
openebs/alpine-sh
by openebs
暂无描述
500K+ pulls
上次更新:1 个月前

轩辕镜像配置手册

探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式

登录仓库拉取

通过 Docker 登录认证访问私有仓库

Linux

在 Linux 系统配置镜像服务

Windows/Mac

在 Docker Desktop 配置镜像

Docker Compose

Docker Compose 项目配置

K8s Containerd

Kubernetes 集群配置 Containerd

K3s

K3s 轻量级 Kubernetes 镜像加速

宝塔面板

在宝塔面板一键配置镜像

群晖

Synology 群晖 NAS 配置

飞牛

飞牛 fnOS 系统配置镜像

极空间

极空间 NAS 系统配置服务

爱快路由

爱快 iKuai 路由系统配置

绿联

绿联 NAS 系统配置镜像

威联通

QNAP 威联通 NAS 配置

Podman

Podman 容器引擎配置

Singularity/Apptainer

HPC 科学计算容器配置

其他仓库配置

ghcr、Quay、nvcr 等镜像仓库

专属域名拉取

无需登录使用专属域名

需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单

镜像拉取常见问题

轩辕镜像免费版与专业版有什么区别?

免费版仅支持 Docker Hub 访问,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。

轩辕镜像支持哪些镜像仓库?

专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等;免费版仅支持 docker.io。

流量耗尽错误提示

当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。

410 错误问题

通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。

manifest unknown 错误

先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。

镜像拉取成功后,如何去掉轩辕镜像域名前缀?

使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。

查看全部问题→

用户好评

来自真实用户的反馈,见证轩辕镜像的优质服务

oldzhang的头像

oldzhang

运维工程师

Linux服务器

5

"Docker访问体验非常流畅,大镜像也能快速完成下载。"

轩辕镜像
镜像详情
...
openebs/provisioner-localpv
官方博客Docker 镜像使用技巧与技术博客
热门镜像查看热门 Docker 镜像推荐
一键安装一键安装 Docker 并配置镜像源
提交工单
免费获取在线技术支持请 提交工单,官方QQ群:13763429 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
免费获取在线技术支持请提交工单,官方QQ群: 。
轩辕镜像面向开发者与科研用户,提供开源镜像的搜索和访问支持。所有镜像均来源于原始仓库,本站不存储、不修改、不传播任何镜像内容。
官方邮箱:点击复制邮箱
©2024-2026 源码跳动
官方邮箱:点击复制邮箱Copyright © 2024-2026 杭州源码跳动科技有限公司. All rights reserved.
轩辕镜像 官方专业版 Logo
轩辕镜像轩辕镜像官方专业版
首页个人中心搜索镜像
交易
充值流量我的订单
工具
提交工单镜像收录一键安装
Npm 源Pip 源Homebrew 源
帮助
常见问题
其他
关于我们网站地图

官方QQ群: 13763429