准备外部平台镜像仓库

对于新的生产部署,您可以使用由客户管理的外部镜像仓库,作为 Core、托管集群和 Extensions 的中央镜像源。启动安装程序之前,仓库中必须包含完整的目标版本负载。

安装前准备仓库

选择外部仓库后,安装程序不会部署平台内置 Registry,也不会将缺失的镜像或软件包复制到外部仓库。在运行 setup.sh 之前,请完成本页所述的两种上传方式。

了解仓库角色

以下仓库角色彼此独立:

角色用途生命周期负责人
平台内置 Registry在使用 Platform Deployment 作为镜像仓库安装 global 集群时,存储平台 Core 镜像和 Extension 工件。 部署该服务;平台管理员负责管理其容量和备份。
外部平台镜像仓库取代平台内置 Registry,作为 Core、托管集群和 Extensions 的镜像源。您负责提供和运营该仓库,并上传所有必需的目标版本负载。

本页配置供 组件和集群使用的平台镜像源。本页不会配置应用工作负载的镜像服务。

现有环境和非生产评估仍支持使用平台内置 Registry。本页不介绍从内置 Registry 在线迁移到外部仓库的方法。

Registry Requirements

Required Capabilities and Access

上传目标版本负载之前,请确认该仓库:

  • 支持 Core Package 工具执行的标准容器镜像推送和拉取操作。
  • 使用格式为 <host-or-IP>[:port] 的地址,例如 registry.example.com:5000。请勿在安装程序仓库地址中包含 http:// 或 https://。
  • 可通过所需的防火墙、代理和网络路由,从安装节点以及拉取平台镜像的每个集群节点访问。
  • 提供可创建或更新所需仓库路径并推送镜像的上传凭据。传递给 setup.sh 的凭据必须具有拉取权限。上传凭据和拉取凭据可以属于不同的账户;向 setup.sh 进行身份验证时,请同时提供其用户名和密码。
  • 具有足够的可用存储空间,用于存放您上传的目标版本 Core 和 Extension 负载。

Production Recommendations

对于生产仓库:

  • 使用 HTTPS,并为仓库地址配置有效证书。确保安装节点以及拉取平台镜像的每个集群节点都信任签发该证书的 CA。
  • 使用可从安装节点和所有集群节点解析的稳定 DNS 名称。
  • 为每种所需的 CPU 架构,以及为升级、回滚和节点恢复而保留的版本规划容量。
  • 根据您的环境提供适当的可用性、监控、备份和恢复机制。在启动新 Pod、替换节点、创建或升级集群,以及安装或升级 Extensions 时,都必须确保仓库可用。
  • 配置保留策略,确保不会删除已安装平台版本、集群或 Extensions 仍在引用的清单或摘要。
Customer-Managed Service

使用外部仓库,但不会安装、升级、备份、监控或修复该仓库。有关这些操作,请遵循仓库供应商的管理文档。

准备目标版本负载

使用与要安装的 Distribution Version 和 CPU 架构完全匹配的 Core Package。请勿重复使用其他版本或架构的负载。

  1. 完成 Download,解压 Core Package,然后切换到其 installer/ 目录。

  2. 按照 Required Aligned Extensions 中的说明,将所需的 Aligned Extension 软件包复制到 plugins/。all 上传模式会处理当前位于此目录中的软件包。

  3. 在当前 shell 中设置仓库地址和上传凭据。读取密码时不要将其写入 shell 历史记录:

    export REGISTRY_ADDRESS="registry.example.com"
    export REGISTRY_USERNAME="<registry-username>"
    read -rsp "Registry password: " REGISTRY_PASSWORD
    export REGISTRY_PASSWORD
    printf '\n'

    对于允许匿名推送的仓库,将 REGISTRY_USERNAME 和 REGISTRY_PASSWORD 都设置为空值。

  4. 从解压后的 installer/ 目录运行两种上传模式。您可以按任意顺序运行这些命令,但两者都必须成功完成:

    bash res/upload.sh all \
      "$REGISTRY_ADDRESS" "$REGISTRY_USERNAME" "$REGISTRY_PASSWORD"
    
    bash res/upload.sh necessary \
      "$REGISTRY_ADDRESS" "$REGISTRY_USERNAME" "$REGISTRY_PASSWORD"

    两种模式的处理范围有所重叠,但两者互不替代:

    • all 会上传产品镜像、集群版本 operator 镜像,以及当前位于 plugins/ 中的每个 *.tgz 软件包。它不会上传安装程序工件。
    • necessary 会上传产品镜像、集群版本 operator 镜像、安装程序工件,以及创建 global 集群所需的引导插件。它不会上传 plugins/ 中的每个软件包。
  5. 在仓库管理界面或 API 中,确认新上传的仓库和清单均已存在,并且不会立即符合清理条件。

故障排除

症状可能原因操作
x509: certificate signed by unknown authority仓库 CA 或中间证书不受信任。在安装节点以及拉取镜像的每个集群节点上安装完整的 CA 链,然后重试。请勿在生产环境中以不安全仓库替代 HTTPS 作为变通方案。
证书名称不匹配仓库地址与证书的主题备用名称不匹配。使用证书所涵盖的仓库 DNS 名称,或替换证书。
unauthorized 或 authentication required上传凭据不正确或缺少推送权限。验证 res/upload.sh 使用的账户,并确认该账户可以推送到所需的仓库路径。
denied 或仓库创建失败上传账户无法创建或更新所需的仓库路径。授予该账户所需的仓库权限,然后重新运行两种上传模式。
报告未找到所需软件包Core Package 不完整,解压了错误的版本或架构,或者未将所需的 Extension 软件包复制到 plugins/。重试前,验证软件包校验和、版本、架构以及 plugins/ 的内容。

下一步

两种上传模式均成功且仓库中已包含目标负载后,请继续执行所选的安装路径: