本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com

CSI Attacher(Container Storage Interface Attacher)是容器存储接口(CSI)规范定义的核心组件之一,负责协调持久化存储卷(Volume)与容器节点(Node)之间的附加(Attach)和分离(Detach)操作。它作为CSI存储插件与容器编排平台(如Kubernetes)之间的桥梁,实现存储卷在节点上的可用性管理,是CSI存储插件正常工作的必要组件。
CSI Attacher通常以容器化方式部署,支持独立Docker运行或在Kubernetes中通过Deployment/DaemonSet部署(推荐后者,需与CSI插件协同)。
通过docker run直接启动容器,需指定CSI插件的通信地址(通常为CSI插件暴露的UNIX域套接字或TCP地址)。
示例命令:
docker run -d \ --name csi-attacher \ --privileged \ # 部分场景下需访问主机设备或套接字 -v /var/lib/csi/sockets/pluginproxy/csi-plugin.sock:/csi/csi.sock \ # 挂载CSI插件的UNIX套接字 quay.io/k8scsi/csi-attacher:v4.0.0 \ # 镜像版本(需替换为实际版本) --csi-address=/csi/csi.sock \ # CSI插件的通信地址(容器内路径) --v=5 \ # 日志级别(1-10,5为默认) --timeout=30s \ # 单次CSI操作超时时间 --retry-interval-start=1s \ # 初始重试间隔 --retry-interval-max=30s # 最大重试间隔
在Kubernetes中,CSI Attacher通常以Deployment形式部署(单副本或多副本,通过Leader选举确保唯一性),并通过CSIDriver资源与CSI插件关联。
Kubernetes Deployment示例(精简版):
apiVersion: apps/v1 kind: Deployment metadata: name: csi-attacher namespace: kube-system spec: replicas: 1 # 单副本(Leader选举模式下可多副本) selector: matchLabels: app: csi-attacher template: metadata: labels: app: csi-attacher spec: containers: - name: csi-attacher image: quay.io/k8scsi/csi-attacher:v4.0.0 args: - --csi-address=/csi/csi.sock # CSI插件的套接字路径(需通过Volume挂载) - --v=5 - --timeout=30s - --retry-interval-start=1s - --retry-interval-max=30s volumeMounts: - name: csi-plugin-socket mountPath: /csi # 挂载CSI插件的UNIX套接字目录 volumes: - name: csi-plugin-socket hostPath: path: /var/lib/csi/sockets/pluginproxy/csi-plugin.sock # 主机上CSI插件的套接字路径 type: Socket
CSI Attacher通过命令行参数或环境变量配置,常用参数如下:
| 参数名 | 描述 | 默认值 | 示例 |
|---|---|---|---|
--csi-address | CSI插件的通信地址(UNIX域套接字路径或TCP地址,如unix:///csi.sock或tcp://127.0.0.1:50051) | 无(必填) | --csi-address=unix:///csi.sock |
--v | 日志级别(1-10,数值越大日志越详细) | 5 | --v=6 |
--timeout | 单次CSI操作超时时间(如AttachVolume请求) | 1m | --timeout=30s |
--retry-interval-start | 初始重试间隔(操作失败后的第一次重试等待时间) | 1s | --retry-interval-start=2s |
--retry-interval-max | 最大重试间隔(重试间隔的上限) | 30s | --retry-interval-max=60s |
--leader-election | 是否启用Leader选举(多副本部署时确保唯一活跃实例) | true | --leader-election=false |
--metrics-addr | Prometheus指标暴露地址(如:8080) | :8080 | --metrics-addr=:9090 |
部分参数可通过环境变量配置(优先级低于命令行参数):
CSI_ATTACHER_TIMEOUT:等价于--timeout。CSI_ATTACHER_RETRY_INTERVAL_START:等价于--retry-interval-start。CSI_PROBE_TIMEOUT:CSI插件健康检查超时时间(默认5s)。csi-driver-registrar、CSI存储插件本身)协同工作,确保CSI插件已正常部署且通信地址可访问。--privileged或CAP_SYS_ADMIN capability)。--metrics-addr暴露的Prometheus指标可集成监控系统(如Grafana),日志可通过标准输出采集(如ELK stack)。
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429