|
本文档采用自动化机器翻译技术翻译。 尽管我们力求提供准确的译文,但不对翻译内容的完整性、准确性或可靠性作出任何保证。 若出现任何内容不一致情况,请以原始 英文 版本为准,且原始英文版本为权威文本。 |
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服务器,以下是填充您的私有注册表的步骤。
-
收集cert-manager镜像(除非您自带证书或在负载均衡器上终止TLS)
先决条件
这些步骤要求您使用具有互联网访问权限、可以访问您的私有注册表,并且至少有 20 GB 磁盘空间的 Linux 工作站。
如果您将使用 ARM64 主机,则注册表必须支持清单。截至 2020 年 4 月,亚马逊弹性容器注册表不支持清单。
1.查找您Rancher版本所需的资产
-
访问 Prime Artifacts URL,找到您想要安装的Rancher v2.x.x版本,然后点击*show*。
-
要在隔离环境中安装 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。
-
获取最新的
cert-managerHelm 图表并解析模板以获取镜像详细信息:对 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 -
对镜像列表进行排序并去重,以消除源之间的任何重叠:
sort -u rancher-images.txt -o rancher-images.txt
3.将镜像保存到您的工作站
-
(可选) 在拉取之前验证镜像列表:
wc -l rancher-images.txt head rancher-images.txt -
将
rancher-save-images.sh设为可执行文件:chmod +x rancher-save-images.sh -
使用
rancher-save-images.sh镜像列表运行rancher-images.txt以创建所有所需镜像的 tarball:./rancher-save-images.sh --image-list ./rancher-images.txt -
(可选) 指定自定义输出文件:
./rancher-save-images.sh \ --image-list ./rancher-images.txt \ --images rancher-images-custom.tar.gz*结果:*Docker 开始拉取用于隔离安装的镜像。请耐心等待。此过程需要几分钟。
-
验证 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 也应位于同一目录中。
-
如有需要,请登录您的私有注册表:
docker login <REGISTRY.YOURDOMAIN.COM:PORT> -
将
rancher-load-images.sh设为可执行文件:chmod +x rancher-load-images.sh
-
使用
rancher-load-images.sh提取、标记并推送rancher-images.txt和rancher-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 服务器工作站收集并推送。
-
〈p-1〉准备 Docker 守护程序〈/p-1〉
先决条件
这些步骤要求您使用具有互联网访问权限、能够访问您的私有注册表,并且至少拥有 50 GB 磁盘空间的 Windows Server 1809 工作站。
工作站必须安装 Docker 18.02 及以上版本,以支持在配置 Windows 集群时所需的清单。
您的注册表必须支持清单。截至 2020 年 4 月,亚马逊弹性容器注册表不支持清单。
1.查找您 Rancher 版本所需的资产
-
访问 Prime Artifacts URL,找到您想要安装的 Rancher v2.x.x 版本,然后点击 show。
-
要在隔离环境中安装 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 工作站。
-
使用
powershell,转到上一步下载文件的目录。 -
运行
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 也应位于同一目录中。
-
使用`powershell`,如有需要,登录到您的私有注册表:
docker login <REGISTRY.YOURDOMAIN.COM:PORT> -
使用
powershell,使用rancher-load-images.ps1从rancher-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 版本所需的资产
-
浏览到我们的 发布页面,找到您想要安装的 Rancher v2.x.x 版本。请勿下载标记为
rc或Pre-release的版本,因为它们不适合生产环境。点击 资产。 -
在版本的 资产 部分,下载以下文件:
| 发布文件 | 说明 |
|---|---|
|
此文件包含安装 Rancher、配置集群和使用 Rancher 工具所需的镜像列表。 |
|
此文件包含用于配置 Windows 集群所需的镜像列表。 |
|
此脚本从 Docker Hub 拉取 |
|
此脚本从 |
2.收集所有必需的镜像。
*使用 Rancher 生成的自签名证书进行 Kubernetes 安装:*在 Kubernetes 安装中,如果您选择使用 Rancher 默认的自签名 TLS 证书,则必须将 cert-manager 镜像也添加到 rancher-images.txt 中。如果您使用自己的证书,则可以跳过此步骤。
-
获取最新的
cert-managerHelm 图表并解析模板以获取镜像详细信息:对 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 -
对镜像列表进行排序并去重,以消除源之间的任何重叠:
sort -u rancher-images.txt -o rancher-images.txt
3.将镜像保存到您的工作站
-
将
rancher-save-images.sh设为可执行文件:chmod +x rancher-save-images.sh
-
使用
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.gz 将 rancher-load-images.sh script 中的镜像移动到您的私有注册表。
镜像列表 rancher-images.txt 或 rancher-windows-images.txt 应该在您运行 rancher-load-images.sh 脚本的工作站的同一目录中。rancher-images.tar.gz 也应在同一目录中。
-
如有需要,请登录您的私有注册表:
docker login <REGISTRY.YOURDOMAIN.COM:PORT> -
将
rancher-load-images.sh设为可执行文件:chmod +x rancher-load-images.sh
-
使用
rancher-load-images.sh从rancher-images.tar.gz提取、标记并推送镜像到您的私有注册表:
./rancher-load-images.sh --image-list ./rancher-images.txt \
--windows-image-list ./rancher-windows-images.txt \
--registry <REGISTRY.YOURDOMAIN.COM:PORT>