Nutzen des Application Gateway Ingress Controller auf Microsoft Azure Kubernetes Service

Mit einem Ingress-Controller auf Clusterebene lässt sich Datenverkehr zu einer ArcGIS Enterprise-Bereitstellung auf Microsoft Azure Kubernetes Service (AKS) weiterleiten. Weitere Informationen finden Sie unter Ingress-Controller auf Clusterebene.

Hinweis:

Führen Sie diesen Workflow vor der Erstellung einer ArcGIS Enterprise-Organisation durch. Sie können ArcGIS Enterprise Manager über einen Browser aufrufen, nachdem ein Load Balancer bereitgestellt und konfiguriert wurde.

Voraussetzungen

Beachten Sie die allgemeinen Voraussetzungen, und stellen Sie sicher, dass die folgenden AKS-spezifischen Voraussetzungen erfüllt sind:

  • Sie müssen einen Kubernetes-Cluster in AKS vorbereitet haben.
  • Der Application Gateway Ingress Controller muss für den Cluster bereitgestellt werden. Darüber hinaus müssen Sie über ein Azure Application Gateway in der Subskription verfügen. Weitere Informationen dazu, wie Sie sicherstellen, dass der Application Gateway Ingress Controller ordnungsgemäß bereitgestellt und für die Verwendung mit einem Anwendungs-Gateway konfiguriert wurde, finden Sie in der Azure-Dokumentation.
  • Die Azure CLI muss auf dem Client-Computer installiert sein. Stellen Sie sicher, dass Sie sich über die CLI bei der Subskription authentifizieren können, in der sich der AKS-Cluster befindet.
  • Kubectl muss auf dem Client-Computer installiert sein. Stellen Sie sicher, dass Sie eine Verbindung mit dem Kubernetes-API-Server, der mit dem erstellten Cluster verknüpft ist, herstellen und Befehle an diesen ausgeben können.
  • Sie müssen ein TLS-Secret zum Speichern der Zertifikatinformationen für das Ingress-Objekt erstellt haben. Das in diesem Secret gespeicherte TLS-Zertifikat sollte für den vollständig qualifizierten Domänennamen, den Sie für den Namespace der ArcGIS Enterprise on Kubernetes-Bereitstellung ausgewählt haben, gültig sein.
  • Sie müssen einen DNS-Eintrag im gewünschten DNS-Anbieter erstellt haben, der dann die Front-End-IP-Adresse des Application Gateways dem vollständig qualifizierten Domänennamen zuordnet, den Sie für die ArcGIS Enterprise on Kubernetes-Bereitstellung ausgewählt haben.

Implementieren eines Ingress-Controllers auf Clusterebene

Führen Sie die folgenden Schritte aus, um einen Ingress-Controller auf Clusterebene zum Weiterleiten des Datenverkehrs an eine ArcGIS Enterprise-Bereitstellung auf Microsoft AKS zu implementieren:

  1. Öffnen Sie die Vorlage im Ordner layer-7-templates, oder kopieren Sie das folgende Beispiel in eine Datei auf Ihrem Client-Computer:
    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"
        appgw.ingress.kubernetes.io/request-timeout: "600"
      labels:
        id: custom-ingress-resource
    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. Ersetzen Sie die folgenden Werte:
    • deploymentFQDN: Geben Sie den vollständig qualifizierten Domänennamen an, der bei der ursprünglichen Bereitstellung festgelegt wurde.
    • tlsSecretName: Geben Sie den Namen des TLS-Secret an, das im Bereitstellungs-Namespace erstellt wurde.
    • namespace: Geben Sie den Namespace an, in dem Sie ArcGIS Enterprise on Kubernetes bereitgestellt haben.
    • context: Geben Sie den Kontext an, der bei der Bereitstellung festgelegt wurde.
      Hinweis:

      Dieser Wert kommt zweimal vor, und beide Vorkommnisse müssen ersetzt werden. Stellen Sie sicher, dass Sie den Wert in der Annotation appgw.ingress.kubernetes.io/health-probe-path aktualisieren.

  3. Speichern Sie die Datei auf dem Client-Computer.

    Beispiel: ingress.yaml.

  4. Führen Sie einen der folgenden Schritte aus, um das Ingress-Objekt zu erstellen:
    • Wenden Sie die Ingress-YAML-Daten mit dem folgenden Befehl auf den Cluster an:
      kubectl apply -f ingress.yaml
      
    • Wenn Sie das Bereitstellungsskript automatisch ausführen, legen Sie CLUSTER_INGRESS_CONTROLLER_YAML_FILENAME auf den Speicherort der Ingress-YAML-Datei fest.

Nach Abschluss dieses Workflow wird das Ingress-Objekt arcgis-enterprise-ingress erstellt. Der Application Gateway Ingress Controller konfiguriert mit den in dieser Ingress-Objekt-YAML definierten Informationen das verknüpfte Application Gateway, um den Datenverkehr an die ArcGIS Enterprise-Bereitstellung weiterzuleiten. Nachdem dieser Ingress erfolgreich angewendet wurde, lässt sich die ArcGIS Enterprise-Bereitstellung über das Application Gateway aufrufen.

Hinweis:

Die Bereitstellung von "arcgis-ingress-controller" muss möglicherweise aktualisiert werden, damit die Verbindung über den neu erstellten Ingress ordnungsgemäß hergestellt wird. Wenn Sie nach der Erstellung des Ingress eine Fehlermeldung beim Zugriff auf ArcGIS Enterprise Manager erhalten, führen Sie folgenden Code aus:

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