在部署 vSphere Supervisor Services(如支持数据库即服务的 Data Services Operator)时默认容器镜像托管于公网仓库但隔离环境(无公网访问)需使用内部私有仓库。由于自签名 TLS 证书未被系统信任常导致部署失败这是运维人员高频遇到的难题。本文基于 vSphere 8.0 Update 3 及以上版本详细讲解四步配置法从工具安装、镜像迁移到证书信任配置附带避坑指南帮助读者快速解决自签名仓库的兼容性问题顺利完成服务部署。一、前置准备1. 环境要求vSphere 版本8.0 Update 3 及以上(支持私有仓库镜像迁移功能)私有容器仓库以 Harbor 为例(需提前部署完成且已配置自签名 TLS 证书)本地设备需具备公网访问权限(用于下载镜像)且安装 OpenSSL 工具(生成 / 处理证书)网络条件本地设备可连通 Broadcom 公网仓库与内部 Harbor 仓库2. 工具准备核心工具为 imgpkg(用于容器镜像的下载与迁移)支持 Linux、macOS 系统安装任选以下一种方式1、脚本安装(跨平台)# 创建工具目录并下载安装脚本 mkdir -p local-bin curl -L https://carvel.dev/install.sh | K14SIO_INSTALL_BIN_DIRlocal-bin bash # 配置环境变量 export PATH$PWD/local-bin/:$PATH # 验证安装(显示版本即成功) imgpkg version2、Homebrew 安装(macOS/Linux)brew tap carvel-dev/carvel brew install imgpkg二、分步配置教程第一步下载公网容器镜像需将 Broadcom 公网仓库的目标服务镜像(以 DSM Operator 为例)下载到本地保存为 tar 包格式方便后续导入私有仓库。1、执行以下命令下载镜像(需保持网络通畅根据镜像大小可能耗时数分钟)# 下载DSM Operator核心镜像 imgpkg copy -b projects.packages.broadcom.com/dsm-consumption-operator/dsm-consumption-operator-supervisor:9.0.0.0.24665381 --to-tar dsm-consumption-operator-supervisor.tar --cosign-signatures # 下载依赖镜像(消费型Operator) imgpkg copy -b projects.packages.broadcom.com/dsm-consumption-operator/consumption-operator:9.0.0.0.24665381 --to-tar consumption-operator.tar --cosign-signatures # 下载Webhook证书生成工具镜像 imgpkg copy -b projects.packages.broadcom.com/dsm-consumption-operator/kube-webhook-certgen:9.0.0.0.24665381 --to-tar kube-webhook-certgen.tar --cosign-signatures2、命令说明-b指定公网镜像地址(格式为 “仓库地址 / 镜像名版本号”)--to-tar指定本地保存的 tar 包名称--cosign-signatures保留镜像签名确保镜像完整性未被篡改第二步获取 Harbor 仓库自签名 CA 证书vSphere 信任私有仓库的核心是导入其根 CA 证书需先从 Harbor 获取有效证书(避免使用 API 获取易出现路径错误)1、直接从 Harbor 服务器获取登录 Harbor 部署服务器进入证书存放目录(默认路径为/data/cert)复制根 CA 证书文件ca.crt到本地设备(可通过 SCP、FTP 等工具传输)2、证书验证确保证书文件格式为 PEM(文本格式开头为-----BEGIN CERTIFICATE-----)若证书格式不符用 OpenSSL 转换openssl x509 -inform DER -in ca.cer -out ca.crt第三步导入镜像到私有 Harbor 仓库将本地下载的 tar 包镜像上传至 Harbor需提前在 Harbor 创建对应项目(如 “dsm”)并配置仓库访问权限。1、配置仓库认证信息# 设定Harbor登录密码(替换为实际密码) export IMGPKG_PASSWORDHarbor12345 # 设定Harbor用户名(默认管理员账号为admin) export IMGPKG_USERNAMEadmin2、执行镜像导入命令(需指定 CA 证书路径确保 HTTPS 连接信任)# 导入核心镜像到Harbor的dsm项目下 imgpkg copy --tar dsm-consumption-operator-supervisor.tar --to-repo registry.vcf.lab/dsm/dsm-consumption-operator-supervisor --cosign-signatures --registry-ca-cert-path ./ca.crt # 导入依赖镜像 imgpkg copy --tar consumption-operator.tar --to-repo registry.vcf.lab/dsm/consumption-operator --cosign-signatures --registry-ca-cert-path ./ca.crt # 导入工具镜像 imgpkg copy --tar kube-webhook-certgen.tar --to-repo registry.vcf.lab/dsm/kube-webhook-certgen --cosign-signatures --registry-ca-cert-path ./ca.crt3、参数说明--to-repoHarbor 仓库地址(格式为 “仓库 IP / 项目名 / 镜像名”)--registry-ca-cert-path本地 CA 证书文件路径(需与实际存放位置一致)4、验证结果登录 Harborweb 界面进入 “dsm” 项目若能看到 3 个导入的镜像说明上传成功。第四步配置 vSphere 信任私有仓库需在 vSphere 客户端添加私有仓库信息并导入 CA 证书让 Supervisor 服务信任自签名证书1、登录 vSphere Client导航至 “Supervisor 管理”→“Supervisors”选择目标 Supervisor 集群2、进入 “容器注册表” 页面点击 “添加注册表”填写以下信息名称自定义(如 “Harbor-DSM”)地址Harbor 仓库地址(如https://registry.vcf.lab)认证勾选 “需要认证”输入 Harbor 的用户名和密码TLS 证书上传之前获取的根 CA 证书ca.crt3、点击 “验证”通过后保存配置(验证成功说明 vSphere 已信任该仓库证书)4、部署测试在部署 vSphere Supervisor Services 时选择私有仓库中的镜像(如registry.vcf.lab/dsm/dsm-consumption-operator-supervisor)系统将自动信任证书并完成安装。三、常见问题排查1. TLS 错误 “unrecognized name”原因证书的主体备用名称(SAN)未包含 Harbor 仓库的访问域名 / IP导致 SNI 域名不匹配解决方案重新生成 Harbor 证书在扩展配置文件v3.ext中添加仓库的域名和 IPsubjectAltName alt_names [alt_names] DNS.1registry.vcf.lab IP.1192.168.1.100 # Harbor服务器IP2. 镜像导入失败 “certificate untrusted”原因本地设备未信任 Harbor 证书导致 imgpkg 无法建立 HTTPS 连接解决方案将ca.crt复制到本地设备的证书信任目录Linuxsudo cp ca.crt /etc/pki/ca-trust/source/anchors/ update-ca-trustmacOS双击ca.crt在钥匙串中设置为 “始终信任”3. vSphere 验证仓库失败原因 1CA 证书不是根证书(需确保上传的是ca.crt而非服务器证书harbor.crt)原因 2仓库地址端口错误(Harbor 默认 HTTPS 端口为 443若修改过需同步填写)解决方案重新获取根证书核对仓库地址格式(如https://registry.vcf.lab:443)总结通过 “下载镜像→获取证书→导入仓库→配置信任” 四步流程可彻底解决 vSphere Supervisor Services 与自签名容器仓库的兼容性问题。该方案适用于所有隔离环境部署场景核心是确保镜像完整性和证书信任链有效性。操作时需注意证书格式、仓库地址一致性遇到 TLS 相关错误优先检查证书配置。按照本教程操作可避免官方文档不清晰导致的反复试错高效完成服务部署。