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

linode/csi-provisioner Docker 镜像 - 轩辕镜像

csi-provisioner
linode/csi-provisioner
监控Kubernetes PersistentVolumeClaim对象并触发卷创建/删除操作的组件
0 次下载activelinode镜像
🚀专业版镜像服务,面向生产环境设计
中文简介版本下载
🚀专业版镜像服务,面向生产环境设计

CSI External Provisioner 镜像文档

1. 镜像概述和主要用途

1.1 概述

CSI External Provisioner(外部供应器)是 Kubernetes CSI(容器存储接口)规范的核心组件之一,作为独立运行的外部服务,负责协调 Kubernetes 控制平面与 CSI 存储驱动之间的卷供应流程。其核心逻辑是监听 Kubernetes 集群中的 PersistentVolumeClaim(PVC)对象事件,并根据 PVC 定义的存储需求,调用 CSI 驱动的卷供应接口,实现持久化卷的动态创建与删除。

1.2 主要用途
  • 连接 Kubernetes 控制平面与 CSI 存储驱动,作为两者之间的通信桥梁
  • 自动化处理 PVC 的生命周期事件(创建触发卷供应,删除触发卷清理)
  • 确保卷供应流程符合 Kubernetes 存储类(StorageClass)定义的参数和策略
  • 实现卷供应的标准化流程,兼容所有符合 CSI 规范的存储驱动

2. 核心功能和特性

2.1 核心功能
  • PVC 事件监听:持续监控 Kubernetes API Server 中的 PVC 对象,捕获创建、删除等事件
  • 卷供应触发:当检测到新 PVC 时,根据关联的 StorageClass 参数,调用 CSI 驱动的 CreateVolume 接口创建卷
  • 卷清理触发:当检测到 PVC 被删除且关联的 PV 回收策略为删除时,调用 CSI 驱动的 DeleteVolume 接口清理卷
  • 状态同步:将卷供应结果(成功/失败)同步至 Kubernetes PV/PVC 对象状态
2.2 关键特性
  • CSI 规范兼容:严格遵循 CSI 1.0+ 规范,支持所有符合 CSI 标准的存储驱动
  • 参数传递:支持将 StorageClass 和 PVC 中的 parameters 字段传递给 CSI 驱动,实现定制化卷配置
  • 重试机制:内置失败重试逻辑,处理临时网络故障或驱动不可用场景
  • 日志与监控:提供详细的操作日志(支持日志级别调整),并暴露 Prometheus 监控指标

3. 使用场景和适用范围

3.1 典型使用场景
  • 动态卷供应:在 Kubernetes 集群中通过 PVC 动态创建持久化卷(如 AWS EBS、GCP PD、Ceph RBD 等)
  • 存储自动化:替代手动创建 PV 的传统方式,实现卷生命周期的全自动化管理
  • 多存储集成:在同一集群中集成多种存储后端(通过不同 StorageClass 关联不同 CSI 驱动)
3.2 适用范围
  • 环境要求:Kubernetes 集群(版本 ≥ 1.13,CSI 规范稳定版)
  • 驱动兼容性:需配合 CSI 存储驱动使用(如 Ceph CSI、AWS EBS CSI、Azure Disk CSI 等)
  • 部署模式:仅运行于 Kubernetes 集群内部(作为 DaemonSet 或 Deployment),不建议单机 Docker 环境使用

4. 使用方法和配置说明

4.1 部署方式概述

External Provisioner 通常作为 Kubernetes 部署(Deployment)运行,与 CSI 驱动的 sidecar 容器共同部署,通过 Unix Domain Socket 与 CSI 驱动通信。生产环境中不建议直接使用 Docker 命令运行(需依赖 Kubernetes API 和集群内网络),以下提供测试环境的 Docker 运行示例及生产环境的 Kubernetes 部署示例。

4.2 Docker 部署示例(测试环境)
4.2.1 前置条件
  • 本地运行 Kubernetes 集群(如 Minikube、Kind),且已部署 CSI 驱动(如 hostpath.csi.k8s.io)
  • 已获取集群管理员权限的 kubeconfig 文件
4.2.2 docker run 命令示例
bash
docker run -d \
  --name csi-provisioner \
  --network=host \  # 测试环境简化网络配置,生产环境需使用 Pod 网络
  -v /var/lib/kubelet/plugins/hostpath.csi.k8s.io/csi.sock:/csi/csi.sock \  # 挂载 CSI 驱动 socket
  -v ~/.kube/config:/kubeconfig \  # 挂载本地 kubeconfig(测试用)
  quay.io/k8scsi/csi-provisioner:v3.5.0 \  # 镜像版本(需与 CSI 驱动兼容)
  --provisioner=hostpath.csi.k8s.io \  # CSI 驱动的供应器名称(需与 StorageClass 匹配)
  --csi-address=/csi/csi.sock \  # CSI 驱动 socket 路径
  --kubeconfig=/kubeconfig \  # 测试环境连接 Kubernetes API 的配置文件
  --v=5  # 日志级别(5 为调试级别,生产环境建议 2-3)
4.3 Kubernetes 部署示例(生产环境)
4.3.1 Deployment 配置示例(以 HostPath CSI 驱动为例)
yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: csi-provisioner-hostpath
  namespace: kube-system
spec:
  replicas: 1
  selector:
    matchLabels:
      app: csi-provisioner-hostpath
  template:
    metadata:
      labels:
        app: csi-provisioner-hostpath
    spec:
      serviceAccountName: csi-provisioner  # 需绑定集群管理员权限的 SA
      containers:
        - name: csi-provisioner
          image: quay.io/k8scsi/csi-provisioner:v3.5.0
          args:
            - "--provisioner=hostpath.csi.k8s.io"  # CSI 驱动供应器名称
            - "--csi-address=$(ADDRESS)"
            - "--timeout=30s"  # 操作超时时间
            - "--retry-interval-start=500ms"  # 初始重试间隔
            - "--v=2"  # 日志级别
          env:
            - name: ADDRESS
              value: /csi/csi.sock  # CSI 驱动 socket 路径
          volumeMounts:
            - name: socket-dir
              mountPath: /csi
      volumes:
        - name: socket-dir
          hostPath:
            path: /var/lib/kubelet/plugins/hostpath.csi.k8s.io
            type: DirectoryOrCreate

5. 配置参数和环境变量

5.1 核心命令行参数
参数名描述示例值是否必填
--provisionerCSI 驱动的供应器名称(需与 StorageClass 中的 provisioner 字段一致)hostpath.csi.k8s.io是
--csi-addressCSI 驱动的 Unix Domain Socket 路径/csi/csi.sock是
--kubeconfig连接 Kubernetes API 的配置文件路径(仅非集群内运行时需指定)/kubeconfig否
--timeout调用 CSI 驱动接口的超时时间30s否
--retry-interval-start失败重试的初始间隔(指数退避)500ms否
--v日志级别(0-10,越高越详细)2(生产)/ 5(调试)否
5.2 环境变量(辅助配置)
环境变量名描述示例值
CSI_ENDPOINT同 --csi-address,用于通过环境变量传递 CSI 驱动地址(优先级低于命令行参数)unix:///csi/csi.sock
KUBE_CONFIG_PATH同 --kubeconfig,用于通过环境变量传递 kubeconfig 路径(优先级低于命令行参数)/etc/kubernetes/kubeconfig

6. 注意事项

  • 版本兼容性:需确保 External Provisioner 版本与 CSI 驱动版本兼容(参考驱动文档),例如 CSI 1.5 驱动需搭配 v3.x 系列 Provisioner
  • 权限配置:运行 Provisioner 的 ServiceAccount 需绑定 ClusterRole,包含对 PVC、PV、StorageClass 等资源的操作权限
  • Socket 挂载:必须与 CSI 驱动共享同一 Unix Domain Socket 文件(通常通过 emptyDir 或 hostPath 卷挂载)
  • 存储类配置:PVC 必须关联存在的 StorageClass,且 StorageClass 的 provisioner 字段需与 --provisioner 参数一致
查看更多 csi-provisioner 相关镜像 →
longhornio/csi-provisioner logo
longhornio/csi-provisioner
by Longhorn
CSI Provisioner是实现容器存储接口(CSI)的存储卷供应组件,用于为Kubernetes等容器集群动态创建、管理存储卷,支持存储资源的自动分配与生命周期管理,满足容器化应用的存储需求。
10M+ pulls
上次更新:16 天前
dyrnq/csi-provisioner logo
dyrnq/csi-provisioner
by dyrnq
Kubernetes CSI Provisioner 是外部配置器组件,通过 CSI 接口动态创建和管理存储卷,支持与 Kubernetes PV/PVC 生命周期集成,实现存储资源的自动化配置与管理。
2100K+ pulls
上次更新:5 天前
giantswarm/csi-provisioner logo
giantswarm/csi-provisioner
by giantswarm
暂无描述
100K+ pulls
上次更新:2 个月前
v5cn/csi-provisioner logo
v5cn/csi-provisioner
by v5cn
暂无描述
10K+ pulls
上次更新:4 个月前
apecloud/csi-provisioner logo
apecloud/csi-provisioner
by apecloud
暂无描述
10K+ pulls
上次更新:10 个月前

轩辕镜像配置手册

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

登录仓库拉取

通过 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访问体验非常流畅,大镜像也能快速完成下载。"

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

官方QQ群: 13763429