当您将组织的容器注册表用于 ArcGIS Enterprise on Kubernetes 时,必须在执行新的部署、更新或升级操作之前使用 Esri 容器镜像完成准备工作。 为此,您可以使用软件附带的注册表工具将 Esri Docker Hub 映像推送到您组织的容器注册表中。
注:
要使用下面描述的方法,您需要在涉及传输容器映像的每个客户端工作站上下载并提取 ArcGIS Enterprise on Kubernetes 部署脚本。
了解注册表工具
ArcGIS Enterprise on Kubernetes 部署包包含一组用于将图像传输到您组织的容器注册表的工具。
这些工具位于您提取部署包的目录中的 tools/registry-tools 下,其中包括以下内容:
- image-download.sh - 将所有 ArcGIS Enterprise on Kubernetes Docker 镜像从指定的 Docker 注册表或存储库下载到本地文件夹作为 .tar.gz 档案。 它使用 docker save 命令来创建档案。
- image-upload.sh - 将 image-download.sh 下载的图像上传至指定的注册表。 它使用 docker load 命令来提取档案。
- image-transfer.sh - 在两个注册表之间直接传输图像。 如果客户端工作站可以访问两个注册表,这比使用 image-download.sh 和 image-upload.sh 更快。
- create-offline-manifest.sh - 使用 Admin API 导入版本清单。 这将覆盖在 arcgis-enterprise.properties 中定义的外部清单 URL,并允许离线用户访问更新和升级。
Readme.md 中的 registry-tools 文件夹中提供了更多信息。
注:
建议您在将图像传输到组织的注册表时使用相同版本的部署脚本。 为了准备升级,请下载新版本的部署脚本以获取最新的图像。
当客户端计算机可以访问 Docker Hub 和组织的注册表时,准备注册表
如果您的客户端计算机可以访问 Docker Hub 和您组织的注册表,则可以使用 image-transfer.sh 脚本为新部署、更新或升级准备注册表。
要传输图像,请完成以下步骤:
- 通过 My Esri 获取要部署的 ArcGIS Enterprise on Kubernetes 软件版本。
- 下载部署脚本并将其提取到您的客户端计算机。
- 如果您的注册表要求您预先创建映像存储库,例如在 Amazon Elastic Container Registry (ECR) 中,请运行以下命令来获取所需映像存储库的列表:
/setup/tools/registry-tools/image-transfer.sh -l
- 通过参考发行说明或运行以下命令查看可用的图像标签,确定您要部署的软件版本的相应版本标签:
/setup/tools/registry-tools/image-transfer.sh -s
- 使用 image-transfer.sh 脚本将容器镜像从 Docker Hub 传输到您组织的注册表。
请参阅 image-transfer.sh -h 以了解更多信息。
- 运行部署脚本以部署 ArcGIS Enterprise on Kubernetes。
当您组织的注册表与互联网断开连接时,请准备您的注册表
如果您组织的注册表与互联网断开连接,您可以使用 image-download.sh 和 image-upload.sh 脚本为新的部署、更新或升级准备注册表。
为此,请完成以下步骤:
- 通过 My Esri 获取要部署的 ArcGIS Enterprise on Kubernetes 软件版本。
- 将部署脚本下载并提取到运行下载脚本的客户端计算机和运行上传脚本的客户端计算机。
- 如果您的注册表要求您预先创建映像存储库,例如在 Amazon Elastic Container Registry (ECR) 中,请运行以下命令来获取所需映像存储库的列表:
/setup/tools/registry-tools/image-download.sh -l
- 通过参考发行说明或运行以下命令查看可用的图像标签,确定您要部署的软件版本的相应版本标签:
/setup/tools/registry-tools/image-download.sh -s
- 使用 image-download.sh 脚本将容器镜像下载到您的客户端计算机。
请参阅 image-download.sh -h 以了解更多信息。
注:
image-download.sh 工具完成后,图像仍然存在于容器运行时缓存中。 为了在成功完成后释放空间,建议清理 Docker 缓存中不需要的项目。 您可以通过运行 docker system prune 或 docker image rm 来执行此操作。
- 按照您所在组织的流程将图像移动到断开连接的客户端机器。
这台机器必须有权访问您的私人注册表。
- 在您的私人客户端计算机上,使用 image-upload.sh 脚本将容器镜像上传到您组织的容器注册表中。
注:
image-upload.sh 工具完成后,图像仍然存在于容器运行时缓存中。 为了在成功完成后释放空间,建议清理 Docker 缓存中不需要的项目。 您可以通过运行 docker system prune 或 docker image rm 来执行此操作。
- 运行部署脚本以部署 ArcGIS Enterprise on Kubernetes。