Mit einem Ingress-Controller auf Clusterebene lässt sich Datenverkehr zu einer ArcGIS Enterprise-Bereitstellung auf Amazon Elastic Kubernetes Service (EKS) weiterleiten. Weitere Informationen finden Sie unter Ingress-Controller auf Clusterebene.
Hinweis:
Dieser Workflow sollte vor der Erstellung 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 EKS-spezifischen Voraussetzungen erfüllt werden:
- Sie müssen einen Kubernetes-Cluster in Amazon EKS vorbereitet haben. Dazu zählt auch die Bereitstellung des AWS Load Balancer Controllers.
- Die AWS CLI muss auf dem Client-Computer installiert sein. Stellen Sie sicher, dass Sie sich über die CLI bei dem Konto authentifizieren können, in dem sich der EKS-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.
- Der EKS-Cluster, die VPC und die verknüpften Ressourcen erfüllen die Anforderungen, die unter Application Load Balancing auf Amazon EKS beschrieben sind.
- Sie benötigen ein TLS-Zertifikat. Mit Amazon Certificate Manager (ACM) können Sie dieses Zertifikat erstellen oder importieren.
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 Amazon EKS zu implementieren:
- Rufen Sie den Amazon-Ressourcennamen (ARN), der mit dem ACM-Zertifikat verknüpft ist, mit einer der in der AWS-Dokumentation beschriebenen Methoden ab.
- Öffnen Sie die im Ordner layer-7-templates enthaltene Vorlage, oder kopieren Sie das folgende Beispiel in eine Datei auf Ihrem Client-Computer:
apiVersion: networking.k8s.io/v1 kind: Ingress metadata: namespace: <deploymentNamespace> name: arcgis-enterprise-ingress annotations: alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ip alb.ingress.kubernetes.io/backend-protocol: HTTPS alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS":443}]' alb.ingress.kubernetes.io/healthcheck-port: '443' alb.ingress.kubernetes.io/healthcheck-protocol: HTTPS alb.ingress.kubernetes.io/healthcheck-path: /<context>/admin alb.ingress.kubernetes.io/success-codes: '200-399' alb.ingress.kubernetes.io/certificate-arn: <ACMCertificateARN> alb.ingress.kubernetes.io/load-balancer-attributes: idle_timeout.timeout_seconds=600 #alb.ingress.kubernetes.io/inbound-cidrs: <inboundCIDRRange> #alb.ingress.kubernetes.io/security-groups: <securityGroupID1>,<securityGroupID2> labels: id: custom-ingress-resource spec: ingressClassName: alb rules: - host: <deploymentFQDN> http: paths: - path: /<context> pathType: Prefix backend: service: name: arcgis-ingress-nginx port: number: 443
Weitere Informationen zu einigen der Annotationen finden Sie im Abschnitt Annotations-Beschreibungen weiter unten.
- Ersetzen Sie die folgenden Werte:
- alb.ingress.kubernetes.io/certificate-arn: Geben Sie den Amazon-Ressourcennamen an, den Sie in Schritt 1 abgerufen haben.
- alb.ingress.kubernetes.io/inbound-cidrs: Wenn Sie eingehenden Datenverkehr von bestimmten CIDR-IP-Adressenbereichen zulassen möchten, heben Sie die Auskommentierung dieser Zeile auf, und geben Sie den Bereich an. Wenn in der Annotation alb.ingress.kubernetes.io/security-groups Sicherheitsgruppen angegeben sind, wird diese Annotation ignoriert.
- alb.ingress.kubernetes.io/security-groups: Wenn Sie vorhandene Sicherheitsgruppen an den Application Load Balancer anfügen möchten, heben Sie die Auskommentierung dieser Zeile auf, und geben Sie die IDs der Sicherheitsgruppen an.
- namespace: Geben Sie den Namespace an, in dem Sie ArcGIS Enterprise on Kubernetes bereitgestellt haben.
- deploymentFQDN: Geben Sie den vollständig qualifizierten Domänennamen an, der bei der ursprünglichen Bereitstellung festgelegt wurde.
- 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 alb.ingress.kubernetes.io/healthcheck-path-Annotation aktualisieren.
- Speichern Sie die Datei auf der Client-Workstation.
Beispiel: ingress.yaml.
- 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.
- Wenden Sie die Ingress-YAML-Daten mit dem folgenden Befehl auf den Cluster an:
Nach Abschluss dieses Workflows wird ein Ingress-Objekt mit dem Namen "arcgis-enterprise-ingress" erstellt. Wenn Sie zum ersten Mal einen Ingress-Controller verwenden, um den externen Zugriff auf den EKS-Cluster zu verwalten, müsste ein Application Load Balancer im Bereitstellungsstatus im AWS-Konto, in dem Sie gerade arbeiten, angezeigt werden. Der AWS Load Balancer Controller stellt diesen Application Load Balancer und die zusätzlichen Komponenten gemäß den YAML-Daten, die auf den Namespace angewendet wurden, bereit. Sobald der Load Balancer aktiv ist, sollte die ArcGIS Enterprise-Bereitstellung verfügbar sein und es kann ein CNAME-DNS-Eintrag erstellt werden. Mit diesem werden Clients vom vollständig qualifizierten Domänennamen, der bei der ursprünglichen Bereitstellung angegeben wurde, zum bereitgestellten Load Balancer weitergeleitet.
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>
Annotations-Beschreibungen
Im Folgenden finden Sie weitere Informationen zu einigen der Annotationen:
- alb.ingress.kubernetes.io/scheme: internet-facing: Hiermit wird ein Application Load Balancer (ALB) erstellt, der über das Internet aufgerufen werden kann. Wenn der ALB nur von Ihrem VPC aus verfügbar sein soll, können Sie alternativ die Annotation alb.ingress.kubernetes.io/scheme: internal angeben.
- alb.ingress.kubernetes.io/target-type: ip: Mit dieser Annotation wird zugelassen, dass Datenverkehr im Load-Balancing-Verfahren direkt an Back-End-Pod-IP-Adressen weitergeleitet wird.