本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。

2.收集并发布镜像到您的私有注册表

本页面概述了将容器镜像收集并发布到私有注册表的步骤,以便进行SUSE Rancher Prime的隔离安装。

您可以使用在Prime Artifacts URL上列出的任何Rancher Prime版本来获取这些步骤中提到的资产。要了解有关 Prime Artifacts URL 的更多信息,请参阅我们的 仅限 Prime 的文档。需要身份验证。使用您的 SUSE 客户中心 (SCC) 凭据登录。

默认情况下,所有用于配置Kubernetes集群或在Rancher中启动任何工具(例如监控、管道、警报)的镜像均从Docker Hub拉取。在Rancher的隔离安装中,您需要一个可由Rancher服务器访问的私有注册表,以加载所有镜像。

用镜像填充私有注册表的过程与使用Docker安装Rancher和在Kubernetes集群上安装Rancher的过程相同。

本节中的步骤因您是否计划使用Rancher配置带有Windows节点的下游集群而异。默认情况下,我们提供填充您的私有注册表的步骤,假设Rancher将仅配置带有Linux节点的下游Kubernetes集群。但如果您计划配置任何使用Windows节点的下游Kubernetes集群,则有单独的说明来支持所需的镜像。

先决条件:

您必须有一个 私有注册表可供使用。

如果注册表有证书,请参考https://documentation.suse.com/cloudnative/k3s/latest/en/installation/private-registry.html[K3s文档]以了解如何添加私有注册表。证书和注册表配置文件需要挂载到Rancher容器中。

  • 仅限Linux集群

  • Linux 和 Windows 集群

对于仅配置Linux集群的Rancher服务器,以下是填充您的私有注册表的步骤。

先决条件

这些步骤要求您使用具有互联网访问权限、可以访问您的私有注册表,并且至少有 20 GB 磁盘空间的 Linux 工作站。

如果您将使用 ARM64 主机,则注册表必须支持清单。截至 2020 年 4 月,亚马逊弹性容器注册表不支持清单。

1.查找您Rancher版本所需的资产

  1. 访问 Prime Artifacts URL,找到您想要安装的Rancher v2.x.x版本,然后点击*show*。

  2. 要在隔离环境中安装 Rancher,您必须下载以下文件:

    发布文件 说明

    rancher-images.txt

    此文件包含安装 Rancher、配置集群和使用 Rancher 工具所需的镜像列表。

    rancher-save-images.sh

    此脚本从 Docker Hub 拉取 rancher-images.txt 中的所有镜像,并将所有镜像保存为 rancher-images.tar.gz

    rancher-load-images.sh

    此脚本从 rancher-images.tar.gz 文件加载镜像并将其推送到您的私有注册表。

2.收集 cert-manager 镜像

如果您使用自己的证书,或者在外部负载均衡器上终止 TLS,请跳过此步骤。

在 Kubernetes 安装中,如果您选择使用 Rancher 默认的自签名 TLS 证书,则还必须将 cert-manager 镜像添加到 rancher-images.txt

  1. 获取最新的 cert-manager Helm 图表并解析模板以获取镜像详细信息:

    对 cert-manager 的最近更改需要进行升级。如果您正在升级 Rancher 并使用版本低于 v0.12.0 的 cert-manager,请参阅我们的 升级文档

    helm repo add jetstack https://charts.jetstack.io
    helm repo update
    helm fetch jetstack/cert-manager
    helm template ./cert-manager-<version>.tgz | awk '$1 ~ /image:/ {print $2}' | sed s/\"//g >> ./rancher-images.txt
  2. 对镜像列表进行排序并去重,以消除源之间的任何重叠:

    sort -u rancher-images.txt -o rancher-images.txt

3.将镜像保存到您的工作站

  1. (可选) 在拉取之前验证镜像列表:

    wc -l rancher-images.txt
    head rancher-images.txt
  2. rancher-save-images.sh 设为可执行文件:

    chmod +x rancher-save-images.sh
  3. 使用 rancher-save-images.sh 镜像列表运行 rancher-images.txt 以创建所有所需镜像的 tarball:

    ./rancher-save-images.sh --image-list ./rancher-images.txt
  4. (可选) 指定自定义输出文件:

    ./rancher-save-images.sh \
      --image-list ./rancher-images.txt \
      --images rancher-images-custom.tar.gz

    *结果:*Docker 开始拉取用于隔离安装的镜像。请耐心等待。此过程需要几分钟。

  5. 验证 tarball 是否已创建:

    ls -lh rancher-images.tar.gz

    如果某些镜像拉取失败,请查看输出并在解决任何问题后重试。

4.填充私有注册表

接下来,您将使用脚本将 rancher-images.tar.gz 中的镜像移动到您的私有注册表。

使用脚本将 rancher-images.tar.gz 中的镜像移动到您的私有注册表。

预计 rancher-images.txt 应位于您运行 rancher-load-images.sh 脚本的工作站的同一目录中。rancher-images.tar.gz 也应位于同一目录中。

  1. 如有需要,请登录您的私有注册表:

       docker login <REGISTRY.YOURDOMAIN.COM:PORT>
  2. rancher-load-images.sh 设为可执行文件:

       chmod +x rancher-load-images.sh
  3. 使用 rancher-load-images.sh 提取、标记并推送 rancher-images.txtrancher-images.tar.gz 到您的私有注册表:

       ./rancher-load-images.sh --image-list ./rancher-images.txt --registry <REGISTRY.YOURDOMAIN.COM:PORT>

对于将提供 Linux 和 Windows 集群的 Rancher 服务器,填充 Windows 镜像和 Linux 镜像的私有注册表有不同的步骤。由于 Windows 集群是 Linux 和 Windows 节点的混合,因此推送到私有注册表的 Linux 镜像是清单。

Windows 步骤

Windows 镜像需要从 Windows 服务器工作站收集并推送。

先决条件

这些步骤要求您使用具有互联网访问权限、能够访问您的私有注册表,并且至少拥有 50 GB 磁盘空间的 Windows Server 1809 工作站。

工作站必须安装 Docker 18.02 及以上版本,以支持在配置 Windows 集群时所需的清单。

您的注册表必须支持清单。截至 2020 年 4 月,亚马逊弹性容器注册表不支持清单。

1.查找您 Rancher 版本所需的资产

  1. 访问 Prime Artifacts URL,找到您想要安装的 Rancher v2.x.x 版本,然后点击 show

  2. 要在隔离环境中安装 Rancher,您必须下载以下文件:

    发布文件 说明

    rancher-windows-images.txt

    此文件包含配置 Windows 集群所需的 Windows 镜像列表。

    rancher-save-images.ps1

    此脚本从 Docker Hub 拉取 rancher-windows-images.txt 中的所有镜像,并将所有镜像保存为 rancher-windows-images.tar.gz

    rancher-load-images.ps1

    此脚本从 rancher-windows-images.tar.gz 文件加载图像并将其推送到您的私有注册表。

2.将图像保存到您的 Windows Server 工作站。

  1. 使用 powershell,转到上一步下载文件的目录。

  2. 运行 rancher-save-images.ps1 以创建所有所需图像的 tar 包:

    ./rancher-save-images.ps1

    *结果:*Docker 开始拉取用于隔离安装的镜像。请耐心等待。此过程需要几分钟。当过程完成时,您当前的目录将生成一个名为 rancher-windows-images.tar.gz 的 tar 包。检查输出是否在该目录中。

3.准备 Docker 守护程序

将您的私有注册表地址附加到Docker守护程序中的`allow-nondistributable-artifacts`配置字段(C:\ProgramData\Docker\config\daemon.json)。由于Windows镜像的基础镜像由`mcr.microsoft.com`注册表维护,因此此步骤是必需的,因为Microsoft注册表中的层在Docker Hub中缺失,需要拉取到私有注册表中。

   {
     ...
     "allow-nondistributable-artifacts": [
       ...
       "<REGISTRY.YOURDOMAIN.COM:PORT>"
     ]
     ...
   }

4.填充私有注册表

使用脚本将 rancher-windows-images.tar.gz 中的镜像移动到您的私有注册表。

预计 rancher-windows-images.txt 应位于您运行 rancher-load-images.ps1 脚本的工作站的同一目录中。rancher-windows-images.tar.gz 也应位于同一目录中。

  1. 使用`powershell`,如有需要,登录到您的私有注册表:

    docker login <REGISTRY.YOURDOMAIN.COM:PORT>
  2. 使用 powershell,使用 rancher-load-images.ps1rancher-images.tar.gz 提取、标记并推送图像到您的私有注册表:

    ./rancher-load-images.ps1 --registry <REGISTRY.YOURDOMAIN.COM:PORT>

Linux步骤

Linux 镜像需要从 Linux 主机收集并推送,但_必须在_将 Windows 镜像填充到私有注册表后进行。这些步骤不同于仅适用于 Linux 的步骤,因为推送的 Linux 镜像实际上会生成支持 Windows 和 Linux 镜像的清单。

先决条件

您必须先将 Windows 镜像填充到私有注册表,然后再填充 Linux 镜像。如果您已经用 Linux 镜像填充了注册表,则需要再次按照这些说明操作,因为它们将发布支持 Windows 和 Linux 镜像的清单。

这些步骤要求您使用具有互联网访问权限、可以访问您的私有注册表,并且至少有 20 GB 磁盘空间的 Linux 工作站。

工作站必须安装 Docker 18.02 及以上版本,以支持在配置 Windows 集群时所需的清单。

1.查找您所使用的 Rancher 版本所需的资产

  1. 浏览到我们的 发布页面,找到您想要安装的 Rancher v2.x.x 版本。请勿下载标记为 rcPre-release 的版本,因为它们不适合生产环境。点击 资产

  2. 在版本的 资产 部分,下载以下文件:

发布文件 说明

rancher-images.txt

此文件包含安装 Rancher、配置集群和使用 Rancher 工具所需的镜像列表。

rancher-windows-images.txt

此文件包含用于配置 Windows 集群所需的镜像列表。

rancher-save-images.sh

此脚本从 Docker Hub 拉取 rancher-images.txt 中的所有镜像,并将所有镜像保存为 rancher-images.tar.gz

rancher-load-images.sh

此脚本从 rancher-images.tar.gz 文件加载镜像并将其推送到您的私有注册表。

2.收集所有必需的镜像。

*使用 Rancher 生成的自签名证书进行 Kubernetes 安装:*在 Kubernetes 安装中,如果您选择使用 Rancher 默认的自签名 TLS 证书,则必须将 cert-manager 镜像也添加到 rancher-images.txt 中。如果您使用自己的证书,则可以跳过此步骤。

  1. 获取最新的 cert-manager Helm 图表并解析模板以获取镜像详细信息:

    对 cert-manager 的最近更改需要进行升级。如果您正在升级 Rancher 并使用版本低于 v0.12.0 的 cert-manager,请参阅我们的 升级文档

    helm repo add jetstack https://charts.jetstack.io
    helm repo update
    helm fetch jetstack/cert-manager
    helm template ./cert-manager-<version>.tgz | awk '$1 ~ /image:/ {print $2}' | sed s/\"//g >> ./rancher-images.txt
  2. 对镜像列表进行排序并去重,以消除源之间的任何重叠:

    sort -u rancher-images.txt -o rancher-images.txt

3.将镜像保存到您的工作站

  1. rancher-save-images.sh 设为可执行文件:

    chmod +x rancher-save-images.sh
  2. 使用 rancher-save-images.sh 镜像列表运行 rancher-images.txt 以创建所有所需镜像的 tar 包:

    ./rancher-save-images.sh --image-list ./rancher-images.txt

*结果:*Docker 开始拉取用于隔离安装的镜像。请耐心等待。此过程需要几分钟。当过程完成时,您当前的目录将输出一个名为 rancher-images.tar.gz 的 tar 包。检查输出是否在该目录中。

4.填充私有注册表

使用 rancher-images.tar.gzrancher-load-images.sh script 中的镜像移动到您的私有注册表。

镜像列表 rancher-images.txtrancher-windows-images.txt 应该在您运行 rancher-load-images.sh 脚本的工作站的同一目录中。rancher-images.tar.gz 也应在同一目录中。

  1. 如有需要,请登录您的私有注册表:

    docker login <REGISTRY.YOURDOMAIN.COM:PORT>
  2. rancher-load-images.sh 设为可执行文件:

    chmod +x rancher-load-images.sh
  3. 使用 rancher-load-images.shrancher-images.tar.gz 提取、标记并推送镜像到您的私有注册表:

./rancher-load-images.sh --image-list ./rancher-images.txt \
   --windows-image-list ./rancher-windows-images.txt \
   --registry <REGISTRY.YOURDOMAIN.COM:PORT>