运行部署脚本

This ArcGIS 11.1 documentation has been archived and is no longer updated. Content and links may be outdated. See the latest documentation.

要部署 ArcGIS Enterprise on Kubernetes,您需要运行 bash 脚本以及 Kubernetes 清单。 您可以从 My Esri 下载部署包,该部署包会以 .tar.gz 文件形式提供。 在运行部署脚本之前,请查看入门说明

注:

要在交互式模式下运行部署脚本,容器注册表密码不得超过 30 个字符。 如果容器注册表密码超过 30 个字符,则可以在静默模式下运行部署脚本。 在执行此操作之前,使用 password-encrypt.sh 工具生成加密密码,移除其中的所有换行符,然后在 deploy.properties 文件中将其指定为 CONTAINER_REGISTRY_PASSWORD

以交互式模式运行部署脚本

如果在未指定配置参数文件的情况下运行 ArcGIS Enterprise on Kubernetes 部署脚本,该脚本将以交互式模式打开。 该脚本会提示您输入每个参数,并立即检查每个值的有效性。 这种方法可以快速验证部署的每个配置参数。

  1. Kubernetes 客户端计算机上,以管理员身份打开终端。
  2. 将目录更改为部署脚本所在的目录。
  3. 在终端使用以下命令格式运行部署脚本:
    ./deploy.sh
    
  4. 完成参数。

    该脚本会提示您输入以下参数(一次输入一个参数)。 如果提供的值无效,脚本将立即返回错误并提示您输入有效参数。 以下内容是用户输入的汇总:

    注:

    您无需以 root 用户身份运行此脚本。

    • 部署平台 - ArcGIS Enterprise on Kubernetes 使用入口将传入流量路由至集群中的服务。 如果您要在 Amazon Web Services EKS 或 Microsoft Azure Kubernetes Service (AKS) 等云提供商托管的 Kubernetes 服务中执行部署操作,则云提供商可以使用负载均衡器服务在外部显示入口控制器。 在这种情况下,ArcGIS Enterprise on Kubernetes 会在部署流程中配置负载均衡器。
    • 负载均衡器 - 在部署过程中,ArcGIS Enterprise on Kubernetes 可以使用 Azure 负载均衡器(外部和内部)、AWS 网络负载均衡器(NLB 外部)和 AWS 网络负载均衡器(NLB 外部和 NLB 内部)配置所选云负载均衡器。 每个选项均会提示您指定负载均衡器的 IP。 在此版本中,只有 Azure 负载均衡器才支持此选项;AWS EKS 不支持负载均衡器 IP 选项。 如果使用的是 OpenShift,则可以使用路径,该路径通常由 HAProxy 或基于 Big-IP 的负载均衡器支持。
    • 命名空间 - Kubernetes 集群命名空间,将在其中部署 ArcGIS Enterprise on Kubernetes
    • 加密密钥文件 - 加密密钥文件是一个纯文本文件,用于密码的 AES-256 加密和解密。 该文件的内容为您指定的纯文本,并且不应包含密码。 该文件应保留在固定位置,并且不应更改内容。
    • 注册表主机 - 容器注册表主机的完全限定域名 (FQDN)(例如 docker.io)。
    • 映像路径 - 用于提取容器映像的映像存储库(例如 esridocker)。
    • 注册表用户名 - 指定容器注册表中帐户的用户名,该帐户可存储要从注册表中提取的权限。
      警告:

      您指定的容器注册表帐户应已关联最低权限级别,例如,仅具有下载容器映像的权限。 默认情况下,Kubernetes 将此帐户的未加密凭据作为机密存储和访问。 建议您不要指定具有推送更改、编辑元数据或管理容器注册表权限的帐户。

    • 注册表密码 - 指定容器注册表帐户的密码。
    • 完全限定域名 - 访问 ArcGIS Enterprise on Kubernetes 所需的 FQDN。 这是指负载均衡器、反向代理、边缘路由器或其他被配置为将流量路由到入口控制器的 Web 前端点。
    • 上下文路径 - 在 ArcGIS Enterprise on Kubernetes URL 中使用的上下文路径(例如 https://<FQDN>/<context path>)。
      注:

      部署完成后,您在此处指定的上下文路径将在为您的组织配置 ArcGIS Enterprise on Kubernetes Web Adaptor 时使用。

    • 节点端口 - 入口控制器通过服务类型“LoadBalancer”或“NodePort”显示外部流量。 您可以指定 30000-32767 范围内的端口。 如果未指定端口,Kubernetes 会自动分配此范围内的可用端口。
    • TLS 证书 - 需要具有 FQDN 和主题备选名称的 TLS 证书(自签名证书或第三方 CA 签名证书)。 这将是入口控制器的默认 TLS 证书。

提供所有有效参数后,属性文件将被保存到当前工作目录中。 使用此属性文件来自动执行未来部署或取消部署 ArcGIS Enterprise on Kubernetes

注:

在生成属性文件后,可以在其中自定义参数以满足部署需求。 例如,如果组织必须运行非特权容器,在部署之前更新 ALLOWED_PRIVILEGED_CONTAINERS=false。 有关详细信息,请参阅下方的其他静默部署属性部分。

最后的部署步骤是创建 ArcGIS Enterprise 组织

提示:

部署脚本使用 kubectl 命令来验证先决条件,例如有效的命名空间。 如果 kubectl 命令由于网络或防火墙问题无法与集群进行通信,则部署脚本可能处于无响应状态。 如果发生这种情况,请结束 ./deploy.sh 命令并直接从终端运行 kubectl 以启动与集群的通信。

以静默模式运行部署脚本

作为以交互式模式运行部署脚本的替代方法,您可以静默部署 ArcGIS Enterprise on Kubernetes。 该部署脚本随 deploy.properties 文件提供,该文件可为您的 ArcGIS Enterprise on Kubernetes 部署提供一组提示您输入唯一值的参数。

注:
建议您运行 password-encrypt.sh 工具生成用于 deploy.properties 文件的加密密码

  1. Kubernetes 客户端计算机上,以管理员身份打开终端。
  2. 将目录更改为部署脚本和 deploy.properties 文件所在的目录。
  3. 打开 deploy.properties 文件。
  4. 有关用户输入的摘要,请参考文件中的描述性注释,并为文件中列出的每个参数提供值。

    文件分为以下部分:

    • 部署平台
    • 命名空间
    • 加密密钥文件
    • 容器注册表
    • 完全限定域名 (FQDN)
    • TLS 证书
    • 其他属性
  5. 保存文件。 或者,可以重命名文件。
  6. 在终端使用以下命令格式运行部署脚本:
    ./deploy.sh -f <user_properties>
    

通过 deploy.properties 文件获得 <user properties> 内容。

在部署 ArcGIS Enterprise on Kubernetes 之前,部署脚本将验证您的系统是否满足最低系统要求,以及是否为 deploy.properties 文件中列出的每个参数提供了有效的输入。

最后的部署步骤是创建 ArcGIS Enterprise 组织

其他静默部署属性

deploy.properties 文件包含可在静默部署时使用的其他属性。 提供了每个属性的默认值。

ALLOWED_PRIVILEGED_CONTAINERS=true - 如果您无法运行权限容器,将此值设置为 false。 如果这样做,则还需要以根用户身份运行 # "sysctl -w vm.max_map_count=262144" 命令,才能在集群的所有结点上将 vm.max_map_count 增加到 262144

CONTAINER_IMAGE_PULL_POLICY="Always" - 在启动新容器后,将由 ImagePullPolicy 决定是否从容器注册表中提取新容器映像。 默认值为 "Always",将在每次启动容器时提取新映像。 如果希望仅在不存在映像时提取新映像,将此值设置为 "IfNotPresent"

INGRESS_HSTS_ENABLED=false - HTTP 严格传输安全 (HSTS) 为组织的 Web 流量增加了一个安全性图层。 默认情况下,HSTS 协议选项设为 false。 要打开 HSTS,将此值设置为 true

INGRESS_SSL_PROTOCOLS="TLSv1.2 TLSv1.3" - 设置要使用的 SSL 协议。 默认值为 "TLSv1.2 TLSv1.3"。 如果必须允许其他 TLS 版本,在此进行指定。

INGRESS_SSL_CIPHERS="ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES256-SHA:ECDHE-RSA-CHACHA20-POLY1305:AES256-GCM-SHA384:AES256-SHA256:AES256-SHA:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES128-SHA:AES128-GCM-SHA256:AES128-SHA256:AES128-SHA:ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES256-SHA384:ECDHE-ECDSA-AES256-SHA:ECDHE-ECDSA-CHACHA20-POLY1305:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES128-SHA256:ECDHE-ECDSA-AES128-SHA" - 此属性用于设置要启用的 SSL 密码列表。 如果需要其他 SSL 密码,在此进行指定。

K8S_CLUSTER_DOMAIN="${K8S_CLUSTER_DOMAIN:-cluster.local}" - 如果您有用于服务和 Pod 的自定义 DNS(例如,organization.com),则可以使用此属性来允许 ArcGIS Enterprise on Kubernetes 使用自定义 DNS。 默认值为 cluster.local