当您将组织的容器注册表用于 ArcGIS Enterprise on Kubernetes 时,必须在执行新的部署、更新或升级操作之前使用 Esri 容器镜像完成准备工作。 为此,您可以使用软件附带的注册表工具将 Esri Docker Hub 镜像推送到您组织的容器注册表中。
了解注册表工具
ArcGIS Enterprise on Kubernetes 部署包包含一组用于将图像传输到您组织的容器注册表的工具。
这些工具位于您提取部署包的目录中的 /setup/tools/registry-tools 下,其中包括以下内容:
- image-download.sh - 下载所有容器镜像到指定的存储设备,作为 .tar.gz 档案。
- image-upload.sh - 将容器镜像从存储设备上传到您的容器注册表。
- image-transfer.sh - 在两个注册表之间直接传输图像。 如果客户端工作站可以访问两个注册表,这比使用 image-download.sh 和 image-upload.sh 更快。
- create-offline-manifest.sh - 下载版本清单并将其导入到您的组织中,允许离线访问更新和升级。
registry-tools 文件夹还包含 registry-tools.properties.template 文件。 此模板属性文件可用于 image-download.sh、image-upload.sh 和 image-transfer.sh 工具。 要获取有关属性文件和注册表工具的详细信息,请参阅此文件夹中的 Readme.md 文件。
当客户端计算机可以访问 Docker Hub 和组织的容器注册表时,准备注册表
如果您的客户端计算机可以访问 Docker Hub 和您组织的注册表,则可以使用 image-transfer.sh 工具为新部署、更新或升级准备注册表。
完成以下步骤:
- 通过 My Esri 获取要部署的 ArcGIS Enterprise on Kubernetes 软件版本。
- 下载部署脚本并将其提取到您的客户端计算机。
为了准备升级,请下载新版本的部署脚本以获取最新的图像。
- 打开终端并切换到 /setup/tools/registry-tools 目录。
- 如果您的注册表要求您预先创建镜像存储库,例如在 Amazon Elastic Container Registry (ECR) 中,请运行以下命令来获取所需镜像存储库的列表:
./image-transfer.sh -l
- 获取相关版本信息:
- 如果准备新部署,请通过参考发行说明或运行以下命令查看可用的图像标签,确定您要部署的软件版本的相应版本标签:
./image-transfer.sh -s
您将在指定 DOWNLOAD_TAGS 属性时使用这些标签。
- 如果准备升级或更新,请确定组织的当前版本,该版本将版本和内部版本组合在一起。 登录 ArcGIS Enterprise Manager,滚动到概览页面的底部,然后单击关于本组织来查找此信息。
例如,对于版本 11.4.0 和内部版本 6144,CURRENT_VERSION 为 11.4.0.6144。
- 如果准备新部署,请通过参考发行说明或运行以下命令查看可用的图像标签,确定您要部署的软件版本的相应版本标签:
- 使用位于 registry-tools 文件夹中的模板或创建单独属性文件,其中应包括以下参数:
DOWNLOAD_REGISTRY="docker.io/esridocker" DOWNLOAD_USER="<username>" DOWNLOAD_PASS="<password>" CURRENT_VERSION="<current_version_tag>" DOWNLOAD_TAGS="<version_tag>" UPLOAD_REGISTRY="<registry_host>/<repository_prefix>" UPLOAD_USER="<username>" UPLOAD_PASS="<password>" UPLOAD_TAGS="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
有关其中一些属性的详细信息,请查看以下内容:
- CURRENT_VERSION - 在步骤 5 中确定的组织的当前版本,在准备更新和升级时使用。 如果准备新部署,则将跳过此属性。
- DOWNLOAD_TAGS 和 UPLOAD_TAGS - 用于新部署。 如果准备更新或升级,则将跳过这些属性。
- UPLOAD_REGISTRY - 您将向其中上传镜像的容器注册表。 提供注册表主机以及与注册表关联的资料档案库前缀(如果适用)。 注册表主机是容器注册表主机的完全限定域名。 资料档案库前缀是用于存储容器映像的镜像存储库。
- ENCRYPTION_KEYFILE - 加密密钥文件是一个纯文本文件,用于密码的 AES-256 加密和解密。 该文件的内容为您指定的文本,并且不应包含密码。 该文件应保留在固定位置,并且不应更改内容,例如:
$ echo 'My Encryption Text!' >> </path/to/keyfile.txt>
- 使用与您的工作流相关的命令运行脚本:
- 准备新部署
./image-transfer.sh -f </path/to/properties/file>
- 准备更新
./image-transfer.sh -f </path/to/properties/file> --update
- 准备升级
./image-transfer.sh -f </path/to/properties/file> --upgrade
有关相关标记的详细信息,请查看以下内容:
- --update - 传输应用最新更新所需的容器镜像。
- --upgrade - 传输升级到最新 ArcGIS Enterprise on Kubernetes 版本所需的容器镜像。
- --view - 与 --update 或 --upgrade 配合使用,查看累积镜像列表,而不下载。
提示:
image_transfer.sh 工具完成后,图像仍然存在于容器运行时缓存中。 为了在成功完成后释放空间,建议清理 Docker 缓存中不需要的项目。 您可以通过运行 docker system prune 或 docker image rm 来执行此操作。
- 准备新部署
准备与 Internet 断开连接的注册表
如果您组织的注册表与互联网断开连接,您可以使用 image-download.sh 和 image-upload.sh 工具为新的部署、更新或升级准备注册表。
完成以下步骤:
- 通过 My Esri 获取要部署的 ArcGIS Enterprise on Kubernetes 软件版本。
- 将部署脚本下载并提取到运行下载工具的客户端计算机和运行上传工具的客户端计算机。
建议使用相同版本的部署脚本。 为了准备升级,请下载新版本的部署脚本以获取最新的图像。
- 在运行下载工具的客户端计算机上,打开终端并切换到 /setup/tools/registry-tools 目录。
- 如果您的注册表要求您预先创建镜像存储库,例如在 Amazon Elastic Container Registry (ECR) 中创建,请运行以下命令来获取所需镜像存储库的列表:
./image-download.sh -l
- 获取相关版本信息:
- 如果准备新部署,请通过参考发行说明或运行以下命令查看可用的图像标签,确定您要部署的软件版本的相应版本标签:
./image-download.sh -s
您将在指定 DOWNLOAD_TAGS 属性时使用这些标签。
- 如果准备升级或更新,请确定组织的当前版本,该版本将版本和内部版本组合在一起。 登录 ArcGIS Enterprise Manager,滚动到概览页面的底部,然后单击关于本组织来查找此信息。
例如,对于版本 11.4.0 和内部版本 6144,CURRENT_VERSION 为 11.4.0.6144。
- 如果准备新部署,请通过参考发行说明或运行以下命令查看可用的图像标签,确定您要部署的软件版本的相应版本标签:
- 如果您正在准备新部署并且未使用属性文件,请使用以下命令格式运行 image-download.sh 工具:
./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
- 如果使用属性文件,请使用位于 registry-tools 文件夹中的模板或创建单独属性文件,其中应包括以下参数:
DOWNLOAD_REGISTRY="docker.io/esridocker" DOWNLOAD_USER="<username>" DOWNLOAD_PASS="<password>" CURRENT_VERSION="<current_version_tag>" DOWNLOAD_TAGS="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
有关其中一些属性的详细信息,请查看以下内容:
- CURRENT_VERSION - 在步骤 5 中确定的组织的当前版本,在准备更新和升级时使用。 如果准备新部署,则将跳过此属性。
- DOWNLOAD_TAGS - 用于新部署。 如果准备更新或升级,则将跳过此属性。
- ENCRYPTION_KEYFILE - 加密密钥文件是一个纯文本文件,用于密码的 AES-256 加密和解密。 该文件的内容为您指定的文本,并且不应包含密码。 该文件应保留在固定位置,并且不应更改内容,例如:
$ echo 'My Encryption Text!' >> </path/to/keyfile.txt>
- 使用与您的工作流相关的命令运行脚本:
- 准备新部署
./image-download.sh -f </path/to/properties/file>
- 准备更新
./image-download.sh -f </path/to/properties/file> --update
- 准备升级
./image-download.sh -f </path/to/properties/file> --upgrade
有关相关标记的详细信息,请查看以下内容:
- --update - 传输应用最新更新所需的容器镜像。
- --upgrade - 传输升级到最新 ArcGIS Enterprise on Kubernetes 版本所需的容器镜像。
- --view - 与 --update 或 --upgrade 配合使用,查看累积镜像列表,而不下载。
由于该脚本将从 Esri 资料档案库下载多个镜像,因此完成该操作需要花费一些时间。 如果下载中断,请重新运行脚本以恢复下载。
提示:
image_download.sh 工具完成后,图像仍然存在于容器运行时缓存中。 为了在成功完成后释放空间,建议清理 Docker 缓存中不需要的项目。 您可以通过运行 docker system prune 或 docker image rm 来执行此操作 - 准备新部署
- 按照您所在组织的流程将图像移动到断开连接的客户端机器。
这台机器必须有权访问您的私人注册表。
- 在具有访问容器注册表权限的客户端计算机上,打开终端并切换到 /setup/tools/registry-tools 目录。
- 如果未使用属性文件,请使用以下命令格式运行 image-upload.sh 工具:
./image-upload.sh -r <registry_host>/<repository_prefix> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
- 如果使用属性文件,请使用位于 registry-tools 文件夹中的模板或创建单独属性文件,其中应包括以下参数:
UPLOAD_REGISTRY="<registry_host>/<repository_prefix>" UPLOAD_USER="<username>" UPLOAD_PASS="<password>" UPLOAD_TAGS="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
有关其中一些属性的详细信息,请查看以下内容:
- UPLOAD_REGISTRY - 您将向其中上传镜像的容器注册表。 提供注册表主机以及与注册表关联的资料档案库前缀(如果适用)。 注册表主机是容器注册表主机的完全限定域名。 资料档案库前缀是用于存储容器映像的镜像存储库。 如果准备更新或升级,请确保指定复制的映像存档的目录。
- UPLOAD_TAGS - 在准备新部署时使用。 如果准备更新或升级,则将跳过此属性。
- 使用与您的工作流相关的命令运行脚本:
- 准备新部署
./image-upload.sh -f </path/to/properties/file>
- 准备更新或升级
./image-upload.sh -f </path/to/properties/file> -t all
为 -t 选项指定 all 将上传您之前使用 --update 或 --upgrade 标记下载的所有镜像。
由于该脚本会将所有标记的镜像上传到您的容器注册表,因此完成该操作需要花费一些时间。 如果上传中断,请重新运行脚本以恢复上传。
注:
image-upload.sh 工具完成后,图像仍然存在于容器运行时缓存中。 为了在成功完成后释放空间,建议清理 Docker 缓存中不需要的项目。 您可以通过运行 docker system prune 或 docker image rm 来执行此操作。
- 准备新部署