本指南提供了详细步骤,用于诊断和解决在工作负载中挂载 OCI 注册表配置时 Connectors CSI 驱动程序的常见问题。
问题 | 潜在原因 | 影响 |
---|---|---|
卷挂载失败 | CSI 配置错误,驱动程序不可用 | 工作负载无法启动 |
找不到 Docker 配置 | 错误的挂载路径,缺少卷 | 镜像拉取/推送操作失败 |
身份验证失败 | 令牌问题,配置错误 | 注册表访问被拒绝 |
不安全的注册表问题 | Docker 守护进程配置错误 | TLS/证书错误 |
验证工作负载 YAML 中的 CSI 卷配置:
常见配置选项:
配置名称 | 描述 | 用例 |
---|---|---|
docker-config | 标准 Docker 配置 | 一般容器操作 |
dockerd | Docker 守护进程配置 | 用于 Docker 守护进程的 Docker 模式 |
buildkitd | BuildKit 守护进程配置 | 用于基于 BuildKit 的操作 |
常见配置问题:
问题 | 症状 | 解决方案 |
---|---|---|
驱动程序名称不正确 | MountVolume.SetUp failed 错误 | 将 driver 设置为 connectors-csi |
找不到连接器 | could not get connector 错误 | 确保连接器存在于同一命名空间 |
配置名称错误 | 未生成 Docker 配置 | 设置正确的 configuration.names 值 |
命名空间不匹配 | 卷附加失败 | 确保连接器与 Pod 在同一命名空间内 |
如何验证:
检查卷挂载配置是否正确:
不同配置的常见挂载路径:
配置 | 推荐挂载路径 | 描述 |
---|---|---|
docker-config | /root/.docker 或 $HOME/.docker | Docker 客户端配置目录 |
dockerd | /etc/docker | Docker 守护进程配置目录 |
buildkitd | /etc/buildkit | BuildKit 守护进程配置目录 |
检查 Pod 事件以获取与挂载相关的问题:
常见错误消息及解决方案:
错误消息 | 原因 | 解决方案 |
---|---|---|
MountVolume.SetUp failed | CSI 驱动程序问题或配置错误 | 检查驱动程序健康状态和卷配置 |
waiting for ephemeral inline CSI driver | CSI 驱动程序未就绪或未找到 | 验证 CSI 驱动程序 Pod 是否正在运行 |
connector not found | 连接器不存在或命名空间错误 | 创建连接器或修正命名空间 |
failed to generate configuration | 模板渲染错误 | 检查连接器和 ConnectorClass 状态 |
示例错误及解决方案:
解决方案: 创建连接器或在卷属性中更正连接器名称。
定位配置文件:
如果未找到配置文件,请检查:
检查生成的 config.json
文件:
预期配置元素:
检查生成的 daemon.json
文件:
预期配置元素:
检查生成的 buildkitd.toml
文件:
预期配置元素:
症状:
server certificate verification failed
错误故障排除:
验证不安全注册表设置是否正确配置:
检查容器运行时是否使用了挂载配置:
对于 containerd,验证代理地址是否正确配置:
检查 CSI 驱动程序日志以获取详细错误信息:
检查代理服务日志以获取身份验证或访问问题:
创建一个诊断 Pod 来测试 OCI 功能: