如果你使用 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 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 控制器通信。以下为典型部署方案示例。
Kubernetes StatefulSet 部署示例(推荐)
在 CSI 控制器的 StatefulSet 配置中,将 external-attacher 作为 sidecar 容器包含:
yamlapiVersion: 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 测试部署示例(非生产环境)
本地测试时,可通过 docker run 启动(需提前部署 CSI 驱动并暴露套接字):
bashdocker 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 实现):
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", "patch"] - apiGroups: ["coordination.k8s.io"] resources: ["leases"] verbs: ["get", "list", "create", "update"] # leader election 所需
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。





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