本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
CSI External-Attacher(外部附加器)是 Kubernetes CSI(Container Storage Interface)规范的核心辅助组件,作为 sidecar 容器与 CSI 控制器插件协同工作。其主要用途是监听 Kubernetes VolumeAttachment API 对象的生命周期事件,通过协调调用 CSI 驱动的 ControllerPublishVolume 和 ControllerUnpublishVolume 接口,实现存储卷到节点的附加(attach)与分离(detach)操作的自动化管理。
ControllerPublishVolume 接口,将卷附加到目标节点。ControllerUnpublishVolume 接口,将卷从节点分离。status.attached 和 status.conditions),同步卷附加/分离操作的执行状态。ControllerPublishVolume 和 ControllerUnpublishVolume 接口的存储驱动。--metrics-addr)和健康检查接口(--health-addr),便于集成监控系统和问题排查。csi-controller)共同部署,实现卷附加/分离流程的自动化协调。ControllerPublishVolume 和 ControllerUnpublishVolume 接口的存储驱动(如 Ceph RBD、AWS EBS、Azure Disk、GCE PD 等)。CSI External-Attacher 通常作为 sidecar 容器与 CSI 控制器插件共同部署在 Kubernetes 集群中,通过 Unix 域套接字与 CSI 控制器通信。以下为典型部署方案示例。
在 CSI 控制器的 StatefulSet 配置中,将 external-attacher 作为 sidecar 容器包含:
apiVersion: apps/v1 kind: StatefulSet metadata: name: csi-controller namespace: kube-system spec: serviceName: "csi-controller" replicas: 2 # 多副本确保高可用 selector: matchLabels: app: csi-controller template: metadata: labels: app: csi-controller spec: serviceAccountName: csi-controller-sa # 需绑定 VolumeAttachment 相关 RBAC 权限 containers: - name: external-attacher image: registry.k8s.io/sig-storage/csi-attacher:v4.4.0 # 替换为最新版本 args: - --v=5 # 日志级别(0-5) - --csi-address=/csi/csi.sock # 与 CSI 控制器共享的套接字路径 - --leader-election=true # 启用 leader election - --leader-election-namespace=kube-system # 选举锁命名空间 - --timeout=30s # CSI RPC 超时时间 - --metrics-addr=:8080 # 指标暴露地址 - --health-addr=:9808 # 健康检查地址 volumeMounts: - name: socket-dir mountPath: /csi # 挂载共享套接字目录 resources: requests: cpu: 100m memory: 128Mi limits: cpu: 500m memory: 256Mi - name: csi-driver # CSI 控制器插件容器 image: <your-csi-driver-image> # 替换为实际 CSI 驱动镜像 args: - --csi-address=/csi/csi.sock # 与 external-attacher 共享套接字 volumeMounts: - name: socket-dir mountPath: /csi volumes: - name: socket-dir emptyDir: {} # 临时目录,用于 CSI 组件间通信
本地测试时,可通过 docker run 启动(需提前部署 CSI 驱动并暴露套接字):
docker run -d \ --name csi-attacher \ -v /host/path/to/csi-socket:/csi/csi.sock \ # 挂载 CSI 驱动的 Unix 域套接字 registry.k8s.io/sig-storage/csi-attacher:v4.4.0 \ --csi-address=/csi/csi.sock \ --v=5 \ --leader-election=false # 单节点测试禁用 leader election
| 参数名 | 描述 | 默认值 | 示例值 |
|---|---|---|---|
--v | 日志级别(0-5,数值越高日志越详细) | 0 | --v=5 |
--csi-address | CSI 驱动的 Unix 域套接字路径(需与 CSI 控制器共享) | /var/lib/csi/sockets/pluginproxy/csi.sock | --csi-address=/csi/csi.sock |
--timeout | CSI RPC 调用超时时间(如 ControllerPublishVolume) | 1m | --timeout=30s |
--leader-election | 是否启用 leader election(多副本部署时必须启用) | true | --leader-election=true |
--leader-election-namespace | leader election 锁(Lease)所在命名空间 | kube-system | --leader-election-namespace=storage |
--leader-election-lease-duration | leader 租约持续时间(需大于 renew-deadline) | 15s | --leader-election-lease-duration=30s |
--leader-election-renew-deadline | leader 租约续约截止时间(需大于 retry-period) | 10s | --leader-election-renew-deadline=20s |
--metrics-addr | 指标暴露 HTTP 服务地址(格式::端口) | :8080 | --metrics-addr=:9090 |
--health-addr | 健康检查 HTTP 服务地址(格式::端口) | :9808 | --health-addr=:8081 |
--volume-attachment-timeout | 等待 VolumeAttachment 处理完成的超时时间(超时后标记为失败) | 15m | --volume-attachment-timeout=30m |
部署时需为 external-attacher 绑定以下 RBAC 权限(通过 ServiceAccount 实现):
apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata: name: csi-attacher-role rules: - apiGroups: ["storage.k8s.io"] resources: ["volumeattachments"] verbs: ["get", "list", "watch", "create", "update", "patch"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["get", "list", "create", "update"] # leader election 所需


免费版仅支持 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