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:

Dieser Workflow sollte vor der Konfiguration einer ArcGIS Enterprise-Organisation durchgeführt werden. ArcGIS Enterprise Manager kann über einen Browser aufgerufen werden, 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 werden:

  • 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 innerhalb 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. Kopieren Sie die folgenden YAML-Daten in eine Datei auf dem 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
    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, der 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 wird zweimal in den YAML-Daten angezeigt und beide Vorkommnisse müssen ersetzt werden. Stellen Sie sicher, dass Sie den Wert in der appgw.ingress.kubernetes.io/health-probe-path-Annotation aktualisieren.

  3. Speichern Sie diese YAML-Daten in eine Datei auf dem Client-Computer.

    Beispiel: ingress.yaml.

  4. Wenden Sie die YAML-Daten mit dem folgenden Befehl auf den Cluster an:
    kubectl apply -f ingress.yaml
    

Nach Abschluss dieses Workflows wird ein Ingress-Objekt mit dem Namen "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, versuchen Sie Folgendes:

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