在离线环境中部署

当您的组织禁止或无法访问 Internet 时,可以在离线环境中部署 ArcGIS Enterprise on Kubernetes。 为此,您必须创建组织的容器注册表,使用离线工具填充容器镜像,并将组织配置为使用本地资源。

准备部署

在部署 ArcGIS Enterprise on Kubernetes 以供离线使用之前,请查看系统要求和步骤以规划部署。 您还需要以下各项的访问权限:

  • 获取容器镜像的 Internet 访问权限
  • Esri Docker Hub 资料档案库的凭据
  • 您组织的容器注册表的读取和写入权限凭据
  • Docker Engine
  • 具有 100 GB 可用磁盘空间的存储设备,用于存储下载的镜像

注:

如果您想使用水平 pod 自动缩放,请确保您的注册表具有适当的图像。

了解离线工具

ArcGIS Enterprise on Kubernetes 部署包包括一组工具,用于将 Esri Docker Hub 资料档案库中的镜像提取到本地客户端计算机,以便您能够在离线环境中工作。

这些离线工具位于您提取部署包的目录中的 tools/create-offline-images 下,其中包括以下内容:

  • create-offline-manifest.sh - 用于下载 Esri 发布的版本清单文件并将其导入您的组织。
  • image-download.sh - 用于将容器镜像下载到您指定的存储设备。
  • image-upload.sh - 用于将容器镜像从存储设备上传到您的容器注册表。
  • image-transfer.sh - 在两个注册表之间直接传输图像。 如果客户端工作站可以访问两个注册表,这比使用 image-download.shimage-upload.sh 更快。

Readme.md 中的 registry-tools 文件夹中提供了更多信息。

注:

要运行离线工具,请确保您的客户端计算机上已安装 targzip 标准包。

下载镜像

要下载可用图像,请从具有 Internet 访问权限的客户端计算机完成以下步骤:

  1. 在您的 Kubernetes 客户端计算机上,打开终端。
  2. 将目录更改为离线工具的位置。
  3. 在终端中,使用以下命令格式运行 image-download.sh 脚本:
    ./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
    注:

    要查找版本的版本标记,请参阅发行说明

    1. 或者,使用位于 /setup/templates/registry-tools 的模板属性文件或创建一个 *.properties 文件并包含以下参数:
      DOWNLOAD_REGISTRY="<docker.io/esridocker>"
      DOWNLOAD_USER="<username>"
      DOWNLOAD_PASS="<password>"
      DOWNLOAD_TAG="<version_tag>"
      DOWNLOAD_DIR="</path/to/download/directory>"
      ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
      

      加密密钥文件是一个纯文本文件,用于密码的 AES-256 加密和解密。 该文件的内容为您指定的文本,并且不应包含密码。 该文件应保留在固定位置,并且不应更改内容。 例如:

      $ echo 'My Encryption Text!' >> /path/to/keyfile.txt
      
    2. 要使用属性文件运行脚本,请使用以下命令:
    ./image-download.sh -f <*.properties>
    
  4. 注:

    由于该脚本将从 Esri 资料档案库下载所有标记的镜像,因此完成该操作需要花费一些时间。 如果下载中断,请重新运行脚本以恢复下载。

上传镜像

下载镜像后,将其复制到具有容器注册表访问权限的客户端计算机,然后完成以下步骤:

  1. 在您的 Kubernetes 客户端计算机上,打开终端。
  2. 将目录更改为离线工具的位置。
  3. 在终端中,使用以下命令格式运行 image-upload.sh 脚本:
    ./image-upload.sh -r <registry_host>/<organization> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
    
    注:

    使用的版本标签应与上方步骤中用于下载镜像的标签相同。

    1. 或者,使用位于 /setup/templates/registry-tools 的模板属性文件或创建一个 *.properties 文件并包含以下参数:
      UPLOAD_REGISTRY="<registry_host>/<organization>"
      UPLOAD_USER="<username>"
      UPLOAD_PASS="<password>"
      UPLOAD_TAG="<version_tag>"
      DOWNLOAD_DIR="</path/to/download/directory>"
      ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
      

      加密密钥文件是一个纯文本文件,用于密码的 AES-256 加密和解密。 该文件的内容为您指定的文本,并且不应包含密码。 该文件应保留在固定位置,并且不应更改内容。 例如:

      $ echo 'My Encryption Text!' >> /path/to/keyfile.txt
      
    2. 要使用属性文件运行脚本,请使用以下命令:
    ./image-upload.sh -f <*.properties>
    
  4. 注:

    由于该脚本会将所有标记的镜像上传到您的容器注册表,因此完成该操作需要花费一些时间。 如果上传中断,请重新运行脚本以恢复上传。

部署

将镜像上传到容器注册表后,请运行部署脚本以部署 ArcGIS Enterprise on Kubernetes。 部署脚本是交互式的,会提示您输入多个参数。

注:
在指定注册表主机时,您必须指定容器注册表的详细信息。

配置组织

运行部署脚本后,请按照相应步骤创建组织。 对于具有和不具有网络访问权限的组织,这些步骤是相同的。

下载并导入版本清单

默认情况下,ArcGIS Enterprise Administrator API 将使用众所周知的 URL 来检测容器镜像更新何时可用。 如果您的 Kubernetes 集群未连接到网络,则必须下载此文件并将其导入您的组织。

可以先使用 create-offline-manifest.sh 脚本下载 Esri 发布的版本清单文件,然后将其导入您的组织。 下载版本清单文件时,需要 Internet 访问权限。

  1. 在您的 Kubernetes 客户端计算机上,打开终端。
  2. 将目录更改为离线工具的位置。
  3. 在终端中,使用以下命令格式运行 create-offline-manifest.sh 脚本:
    ./create-offline-manifest.sh -d /path/to/download/directory
    
  4. 下载完成后,使用以下命令格式再次运行 create-offline-manifest.sh 脚本以将版本清单文件导入您的组织:
    ./create-offline-manifest.sh -i </path/to/download/directory/manifest.dat> -u <username> -p <password> -a https://organization_URL/context
    
    1. 如果您使用 configure.sh 脚本创建了组织,则执行以下命令:
      ./create-offline-manifest.sh -i </path/to/download/directory/manifest.dat> -f ../configure/configure.properties
      
  5. 导入版本清单后,您已完成部署步骤。 接下来,您将配置组织以在适用的情况下使用本地资源。

    注:

    要检查版本清单是否已导入,您可以运行以下命令:

    kubectl get secret arcgis-version-manifest -n arcgis
    

配置本地资源

当组织与网络断开连接时,请将组织配置为在适用的情况下使用本地服务和资源。

配置自定义底图

该组织预先配置了来自 ArcGIS Online 的一组底图。 不支持在断开连接的环境中使用这些底图。 但可创建自己的自定义底图,并对组织进行配置以便在底图库中提供这些底图。

有关在组织中创建和配置自定义底图的详细信息,请参阅自定义底图

配置实用程序服务

默认情况下,实用程序服务将配置为使用来自 ArcGIS Online 的实用程序服务。 要了解如何更新实用程序服务以指向您自己的本地服务,请参阅配置实用程序服务

ArcGIS Living Atlas of the World 内容

ArcGIS Living Atlas of the World 是由 ArcGIS Online 提供的即用型地理信息内容集合。 它在离线环境中不受支持。 要禁用 ArcGIS Living Atlas of the World 内容,请参阅禁用或调整其他 ArcGIS Online 资源的步骤。

禁用外部内容

因为某些 Esri 内容需要通过外部访问网络,因此必须禁用该内容,以防止请求 ArcGIS Online 资源。 当禁用内容时,将禁用特定的一组项目:

  • "esri_[lang]" 拥有的所有内容,包括底图项目,其中包含指向外部站点的 URL。 禁用的项目将取决于针对您的组织启用的内容语言。
  • "esri" 拥有的所有内容,其中包含指向外部站点的 URL。
  • “esri_apps”拥有的所有内容,其中包含指向外部站点的 URL。

要禁用外部内容,请完成以下步骤:

  1. 登录到 ArcGIS Enterprise Administrator API

    URL 格式为 https://organization.example.com/context/admin

  2. 单击系统 > 内容 > 外部内容 > 更新
  3. 启用外部内容设置为 False
  4. 单击更新

禁用外部内容后,将无法在搜索结果中发现或返回包含指向外部站点的 URL 的项目。

禁用或调整其他 ArcGIS Online

组织中的某些功能已预先配置为使用来自 ArcGIS Online 的服务或内容。 在离线环境中工作时,可以通过调整组织属性来禁用这些服务和内容。 示例属性包括以下各项:

  • extentService: "<URL to local map service>", - 范围服务用于在组织的设置范围对话框中更新或设置 web 地图项目的范围。 默认情况下,范围服务源自 ArcGIS Online。 在离线环境中,您必须使用 GIS Server 切片地图服务来配置您的组织。 该服务必须使用 WGS84 地理坐标系及熟知的 ID (WKID) 4326。

  • gcsBasemapService: "<URL to local map service>", - GCS 底图服务用作不支持 Web 墨卡托坐标系的 OGC WMS 服务的底图。 默认情况下,GCS 底图服务源自 ArcGIS Online。 在离线环境中,您必须使用 GIS Server 地图服务来配置您的组织。 该服务必须使用 WGS84 地理坐标系及熟知的 ID (WKID) 4326。

  • configurePortalAGOEnv: "www.arcgis.com", - 可确定用于已配置实用程序服务的代理。 已配置实用程序服务的默认代理为 www.arcgis.com。 在断开连接的环境下,将此属性设置为 false

  • portalAGOConfigEnabled: true, - 在组织的设置页面中控制 ArcGIS Online 选项卡的显示。 在断开连接的环境下,将此属性设置为 false

  • portalLivingAtlasConfigEnabled: true, - 此属性连同 portalAGOConfigEnabled 属性一起,控制组织的设置页面 ArcGIS Online 选项卡中配置 Living Atlas 内容部分的显示。 在断开连接的环境下,将此属性设置为 false

  • searchArcGISOnlineEnabled: true, - 通过此属性,可禁用 Map Viewer 经典版 中用于在 ArcGIS Online 中搜索图层的选项。 默认值为 true。 如果禁用,则用于在 ArcGIS Online搜索图层的选项将从 Map Viewer 经典版 的搜索图层对话框中隐藏。 在断开连接的环境下,将此属性设置为 false

有关可更改属性的详细信息,请参阅 Sharing API 文档并按照相应步骤设置高级门户选项

升级或更新

当软件更新和升级可用时,您必须执行以下操作:

  • 使用 Esri 中的容器映像准备组织的容器注册表
  • Esri 下载清单并将其上传到您的组织。 此操作将确保 ArcGIS Enterprise 可以发现新的可用更新或升级。
  • 向您的组织应用更新升级