
如果你使用 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 无法访问外链,可 打开说明文档 复制全文粘贴。文档会随站点更新,复制内容可能过期,建议定期检查。
k8s.gcr.io/sig-storage/csi-attacher 是 Kubernetes SIG Storage 项目维护的 Docker 镜像,包含 CSI(容器存储接口)规范中的 卷附加器(Attacher) 组件。该组件作为 CSI 驱动的辅助容器(Sidecar Container),负责实现 CSI 规范中的卷附加(Attach)与分离(Detach)操作,是 Kubernetes 集群中部署 CSI 存储驱动时的核心辅助组件之一。
ControllerPublishVolume(Attach)和 ControllerUnpublishVolume(Detach)操作,将存储卷附加到节点或从节点分离。VolumeAttachment 对象,根据对象状态触发 CSI 驱动的 Attach/Detach 动作。VolumeAttachment、Node 等资源,实现与集群控制平面的联动。csi-attacher 实现卷的节点附加/分离逻辑。例如:
csi-provisioner(卷供应)、csi-snapshotter(卷快照)等组件协同,完成存储卷从创建到挂载的全流程。csi-attacher 通信)。csi-attacher 通常作为 Deployment 部署在 Kubernetes 集群中(控制平面组件,非节点级),与 CSI 驱动的 Controller 容器共享同一 Pod,通过挂载 CSI 驱动的 Unix Domain Socket 实现通信。
csi-attacher 通过命令行参数配置,常用参数如下:
| 参数 | 描述 | 默认值 |
|---|---|---|
--v | 日志级别(数值越大日志越详细,如 0=ERROR、5=INFO、10=DEBUG) | 5 |
--csi-address | CSI 驱动的 Unix Domain Socket 路径(需通过 hostPath 或 emptyDir 挂载) | /var/lib/csi/sockets/pluginproxy/csi.sock |
--leader-election | 是否启用 Leader Election(多实例部署时必选) | true |
--leader-election-namespace | Leader Election 锁对象所在命名空间 | 当前 Pod 所在命名空间 |
--retry-interval-start | 初始重试间隔(单位:秒),失败后指数退避 | 1s |
--retry-interval-max | 最大重试间隔(单位:秒) | 30s |
--timeout | CSI 操作超时时间(单位:秒) | 120s |
以下是部署 csi-attacher 作为 Sidecar 的示例 YAML(以 generic CSI 驱动为例):
yamlapiVersion: apps/v1 kind: Deployment metadata: name: csi-attacher namespace: kube-system spec: replicas: 2 # 多实例确保高可用(配合 leader election) selector: matchLabels: app: csi-attacher template: metadata: labels: app: csi-attacher spec: serviceAccountName: csi-attacher-sa # 需绑定 RBAC 权限(见下方) containers: - name: csi-attacher image: k8s.gcr.io/sig-storage/csi-attacher:v4.0.0 # 替换为实际版本 args: - "--v=5" - "--csi-address=/csi/csi.sock" # 对应 CSI 驱动的 socket 路径 - "--leader-election=true" - "--leader-election-namespace=kube-system" - "--retry-interval-start=1" - "--retry-interval-max=30" volumeMounts: - name: csi-socket-dir mountPath: /csi # 挂载 CSI 驱动的 socket 目录 # 此处省略 CSI 驱动的 Controller 容器配置(需与 csi-attacher 共享 csi-socket-dir 卷) volumes: - name: csi-socket-dir emptyDir: {} # 或 hostPath(若 CSI 驱动 socket 位于节点本地)
csi-attacher 需要访问 Kubernetes API 操作 VolumeAttachment 等资源,需配置 RBAC 权限(示例):
yamlapiVersion: 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", "delete"] - apiGroups: ["storage.k8s.io"] resources: ["volumeattachments/status"] verbs: ["update"] - apiGroups: [""] resources: ["nodes"] verbs: ["get", "list", "watch"] --- apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRoleBinding metadata: name: csi-attacher-binding subjects: - kind: ServiceAccount name: csi-attacher-sa namespace: kube-system roleRef: kind: ClusterRole name: csi-attacher-role apiGroup: rbac.authorization.k8s.io
bash# 需提前准备 CSI 驱动的 socket 文件(如 /host/var/lib/csi/sock/csi.sock) docker run -d \ --name csi-attacher \ -v /host/var/lib/csi/sock:/csi \ # 挂载 CSI 驱动的 socket 目录 k8s.gcr.io/sig-storage/csi-attacher:v4.0.0 \ --v=5 \ --csi-address=/csi/csi.sock \ --leader-election=false # 单实例运行时禁用 leader election
csi-attacher 的服务账户拥有访问 VolumeAttachment、Node 资源的权限,否则会导致操作失败。csi-attacher 版本)。--csi-address 必须指向 CSI 驱动 Controller 暴露的 Unix Domain Socket,且路径需通过卷挂载共享到 csi-attacher 容器。--leader-election,避免单点故障。您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。




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