在 Microsoft Azure Kubernetes Service 上使用应用程序网关入口控制器

集群级入口控制器可用于将流量路由到 Microsoft Azure Kubernetes Service (AKS) 上的 ArcGIS Enterprise 部署。 有关详细信息,请参阅集群级入口控制器

注:

应在配置 ArcGIS Enterprise 组织之前执行此工作流。 部署并配置负载均衡器后,可以通过浏览器访问 ArcGIS Enterprise Manager

先决条件

查看常规先决条件并确保满足以下 AKS 特定先决条件:

  • 您必须已在 AKS 中准备好 Kubernetes 集群
  • 必须将应用程序网关入口控制器部署到您的集群。 您还必须在订阅内包含 Azure 应用程序网关。 有关如何确保正确部署和配置应用程序网关入口控制器以与应用程序网关配合使用的更多详细信息,请参阅 Azure 文档
  • 必须在您的客户端计算机上安装 Azure CLI。 确保您可以从 CLI 对 AKS 集群所在的订阅进行身份验证。
  • 必须在您的客户端计算机上安装 Kubectl。 确保您可以连接到与您已创建的集群相关联的 Kubernetes API 服务器并向其发出命令。
  • 您必须创建一个 TLS 密钥,用于存储 Ingress 对象的证书信息。 此密钥内存储的 TLS 证书应对您为 ArcGIS Enterprise on Kubernetes 部署命名空间选择的完全限定域名有效。
  • 您必须在所选 DNS 提供程序中创建 DNS 记录,该记录可将应用程序网关的前端 IP 地址映射到您为 ArcGIS Enterprise on Kubernetes 部署选择的完全限定域名。

实施集群级入口控制器

要实施集群级入口控制器以将流量路由到 Microsoft AKS 上的 ArcGIS Enterprise 部署,请完成以下步骤:

  1. 将以下 YAML 数据复制到您的客户端计算机上的文件中:
    apiVersion: networking.k8s.io/v1
    kind: Ingress
    metadata:
      name: arcgis-enterprise-ingress
      namespace: <deploymentNamespace>
      annotations:
        kubernetes.io/ingress.class: azure/application-gateway
        appgw.ingress.kubernetes.io/ssl-redirect: "true"
        appgw.ingress.kubernetes.io/backend-protocol: "https"
        appgw.ingress.kubernetes.io/backend-hostname: <deploymentFQDN>
        appgw.ingress.kubernetes.io/health-probe-hostname: <deploymentFQDN>
        appgw.ingress.kubernetes.io/health-probe-port: "443"
        appgw.ingress.kubernetes.io/health-probe-status-codes: "200-399"
        appgw.ingress.kubernetes.io/health-probe-path: "/<context>/admin
    spec:
      tls:
        - hosts:
            - <deploymentFQDN>
          secretName: <tlsSecretName>
      rules:
        - host: <deploymentFQDN>
          http:
            paths:
              - backend:
                 service:
                   name: arcgis-ingress-nginx
                   port:
                     number: 443
                path: /<context>
                pathType: Prefix
    
  2. 替换以下值:
    • deploymentFQDN - 提供在初始部署期间指定的完全限定域名。
    • tlsSecretName - 提供在部署命名空间中创建的 TLS 密钥的名称。
    • namespace - 提供您已在其中部署 ArcGIS Enterprise on Kubernetes 的命名空间。
    • context - 提供在部署期间指定的上下文。
      注:

      该值将在 YAML 数据中出现两次,并且应该在这两种情况下进行替换。 确保更新 appgw.ingress.kubernetes.io/health-probe-path 注记内的值。

  3. 将此 YAML 数据保存到您的客户端计算机上的文件中。

    例如,ingress.yaml

  4. 可以使用以下命令将 YAML 数据应用于您的集群:
    kubectl apply -f ingress.yaml
    

完成此工作流后,将创建一个名为 arcgis-enterprise-ingress 的 Ingress 对象。 应用程序网关入口控制器将使用在此 Ingress 对象 YAML 中定义的信息来配置关联的应用程序网关,以将流量路由到您的 ArcGIS Enterprise 部署。 成功应用此 Ingress 后,应该可以通过应用程序网关访问您的 ArcGIS Enterprise 部署。

注:

可能需要刷新 arcgis-ingress-controller 部署,才能通过新创建的 Ingress 建立正确的连接。 在创建该入口后,如果您在访问 ArcGIS Enterprise Manager 时收到错误,请尝试运行以下命令:

kubectl rollout restart deployment/arcgis-ingress-controller -n <deploymentNamespace>