
CSI Attacher(Container Storage Interface Attacher)是容器存储接口(CSI)规范定义的核心组件之一,负责协调持久化存储卷(Volume)与容器节点(Node)之间的附加(Attach)和分离(Detach)操作。它作为CSI存储插件与容器编排平台(如Kubernetes)之间的桥梁,实现存储卷在节点上的可用性管理,是CSI存储插件正常工作的必要组件。
CSI Attacher通常以容器化方式部署,支持独立Docker运行或在Kubernetes中通过Deployment/DaemonSet部署(推荐后者,需与CSI插件协同)。
4.1.1 Docker独立部署(测试场景)
通过docker run直接启动容器,需指定CSI插件的通信地址(通常为CSI插件暴露的UNIX域套接字或TCP地址)。
示例命令:
bashdocker 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 # 最大重试间隔
4.1.2 Kubernetes部署(生产场景)
在Kubernetes中,CSI Attacher通常以Deployment形式部署(单副本或多副本,通过Leader选举确保唯一性),并通过CSIDriver资源与CSI插件关联。
Kubernetes Deployment示例(精简版):
yamlapiVersion: 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 登录认证访问私有仓库
无需登录使用专属域名
Kubernetes 集群配置 Containerd
K3s 轻量级 Kubernetes 镜像加速
VS Code Dev Containers 配置
Podman 容器引擎配置
HPC 科学计算容器配置
ghcr、Quay、nvcr 等镜像仓库
Harbor Proxy Repository 对接专属域名
Portainer Registries 加速拉取
Nexus3 Docker Proxy 内网缓存
需要其他帮助?请查看我们的 常见问题Docker 镜像访问常见问题解答 或 提交工单
docker search 限制
站内搜不到镜像
离线 save/load
插件要用 plugin install
WSL 拉取慢
安全与 digest
新手拉取配置
镜像合规机制
manifest unknown
no matching manifest(架构)
invalid tar header(解压)
TLS 证书失败
DNS 超时
域名连通性排查
410 Gone 排查
402 与流量用尽
401 认证失败
429 限流
D-Bus 凭证提示
413 与超大单层
来自真实用户的反馈,见证轩辕镜像的优质服务