
如果你使用 DeepSeek、元宝 AI、Copilot、ChatGPT 等 AI 工具,协助配置轩辕镜像、编写 docker pull 命令、修改 Docker Compose 镜像地址、配置镜像加速、排查镜像拉取失败、分析报错日志等问题,请先让 AI 阅读并遵守轩辕镜像的规则文档。
只需在 AI 对话中先发送下面这句话即可:
请先完整阅读并严格遵守以下文档中的全部规则与要求:
https://xuanyuan.cloud/agents.md
在未充分阅读并理解该文档前,不要生成任何命令、配置、修改建议、故障排查方案或技术回答。后续所有输出都必须严格以该文档中的规范为最高优先级执行。查看 agents.md 用法指南与完整示范。国内用户首推 元宝 AI、DeepSeek 的深度思考模式,不推荐豆包 AI;Cursor 等编辑器可在对话 @ 该链接,或加入 User Rules。 若 AI 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
CSI Provisioner(容器存储接口供应者)是基于Container Storage Interface (CSI)规范实现的存储卷供应组件。该镜像封装了CSI Provisioner核心功能,主要用于与Kubernetes等容器编排平台集成,实现存储卷的动态创建、绑定、删除等生命周期管理,解决容器集群中存储资源的自动供应问题,为容器化应用提供可靠的存储支持。
CSI Provisioner通常作为Kubernetes控制平面组件部署,以Deployment形式运行。需配合CSI驱动(如特定存储后端的CSI插件)使用。
4.1.1 Kubernetes Deployment示例
yamlapiVersion: apps/v1 kind: Deployment metadata: name: csi-provisioner namespace: kube-system spec: replicas: 1 selector: matchLabels: app: csi-provisioner template: metadata: labels: app: csi-provisioner spec: serviceAccountName: csi-provisioner-sa containers: - name: csi-provisioner image: csi-provisioner:latest # 替换为实际镜像名称 args: - "--csi-address=$(CSI_ENDPOINT)" - "--provisioner=$(PROVISIONER_NAME)" - "--volume-name-prefix=csi" - "--v=5" # 日志详细级别 env: - name: CSI_ENDPOINT value: "unix:///csi/csi.sock" # CSI驱动通信端点(需与CSI驱动共享) - name: PROVISIONER_NAME value: "storage.example.com/csi" # 供应者名称(需与StorageClass匹配) volumeMounts: - name: csi-socket-dir mountPath: /csi volumes: - name: csi-socket-dir emptyDir: {} # 通常与CSI驱动通过EmptyDir或HostPath共享套接字目录
4.1.2 RBAC权限配置
CSI Provisioner需要访问Kubernetes API以管理PV、PVC等资源,需配置RBAC权限:
yamlapiVersion: v1 kind: ServiceAccount metadata: name: csi-provisioner-sa namespace: kube-system --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: csi-provisioner-role rules: - apiGroups: [""] resources: ["persistentvolumes"] verbs: ["create", "delete", "get", "list", "watch", "update"] - apiGroups: [""] resources: ["persistentvolumeclaims"] verbs: ["get", "list", "watch", "update"] - apiGroups: ["storage.k8s.io"] resources: ["storageclasses"] verbs: ["get", "list", "watch"] # 其他必要权限(如events、nodes等) --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: csi-provisioner-binding subjects: - kind: ServiceAccount name: csi-provisioner-sa namespace: kube-system roleRef: kind: ClusterRole name: csi-provisioner-role apiGroup: rbac.authorization.k8s.io
4.2.1 核心环境变量
| 环境变量名 | 描述 | 示例值 |
|---|---|---|
CSI_ENDPOINT | CSI驱动的通信端点,通常为unix域套接字路径 | unix:///csi/csi.sock |
PROVISIONER_NAME | 供应者名称,需与StorageClass中的provisioner字段一致 | storage.example.com/csi |
STORAGECLASS_WHITELIST | 允许供应的StorageClass名称白名单(逗号分隔,默认允许所有) | standard,high-performance |
RETRY_INTERVAL | 操作失败后的重试间隔(秒) | 30 |
VERBOSE | 日志详细程度(0-5,5为最详细) | 5 |
4.2.2 命令行参数
除环境变量外,可通过命令行参数配置(优先级高于环境变量):
--csi-address:同CSI_ENDPOINT--provisioner:同PROVISIONER_NAME--storageclass-whitelist:同STORAGECLASS_WHITELIST--retry-interval-start:初始重试间隔(秒),默认1--retry-interval-max:最大重试间隔(秒),默认300--volume-name-prefix:生成的PV名称前缀,默认pvc部署CSI驱动:确保目标存储后端的CSI驱动已部署到Kubernetes集群(如Ceph CSI驱动)
部署CSI Provisioner:使用上述Deployment配置部署CSI Provisioner,确保与CSI驱动共享套接字目录
创建StorageClass:定义StorageClass资源,指定provisioner为PROVISIONER_NAME的值:
yamlapiVersion: storage.k8s.io/v1 kind: StorageClass metadata: name: csi-storageclass provisioner: storage.example.com/csi # 需与PROVISIONER_NAME一致 parameters: storageBackend: "ceph" # 存储后端参数,根据CSI驱动要求配置 replicaCount: "3" reclaimPolicy: Delete # PV回收策略(Delete/Retain) allowVolumeExpansion: true # 允许卷扩容
yamlapiVersion: v1 kind: PersistentVolumeClaim metadata: name: example-pvc spec: accessModes: - ReadWriteOnce resources: requests: storage: 10Gi storageClassName: csi-storageclass # 引用创建的StorageClass
bashkubectl get pv kubectl get pvc example-pvc
parameters需与CSI驱动要求匹配,否则可能导致供应失败replicas配置)以提高可用性以下是 longhornio/csi-provisioner 相关的常用 Docker 镜像,适用于 不同场景 等不同场景:
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。



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