Ausführen des Bereitstellungsskripts

Führen Sie für die Bereitstellung von ArcGIS Enterprise on Kubernetes ein Bash-Skript zusammen mit Kubernetes-Manifesten aus. Das Bereitstellungspaket steht unter My Esri als .tar.gz-Datei zum Download bereit. Lesen Sie vor der Ausführung des Bereitstellungsskripts die Anweisungen mit den ersten Schritten.

Hinweis:

Damit das Bereitstellungsskript im interaktiven Modus ausgeführt werden kann, darf das Kennwort für die Containerregistrierung nicht länger als 30 Zeichen sein. Sollte Ihr Kennwort für die Containerregistrierung eine Länge von 30 Zeichen überschreiten, können Sie das Bereitstellungsskript im automatischen Modus ausführen. Vor der Ausführung müssen Sie mit dem Werkzeug password-encrypt.sh ein verschlüsseltes Kennwort generieren, etwaige Zeilenumbrüche daraus entfernen und das Kennwort in der Datei deploy.properties als CONTAINER_REGISTRY_PASSWORD angeben.

Ausführen des Bereitstellungsskripts im interaktiven Modus

Wenn Sie das Bereitstellungsskript für ArcGIS Enterprise on Kubernetes ohne Angabe einer Datei mit Konfigurationsparametern ausführen, wird es im interaktiven Modus geöffnet. Sie werden dann zur Eingabe der einzelnen Parameter aufgefordert, wobei das Skript jeden Wert unmittelbar auf Gültigkeit prüft. Mit dieser Methode werden die Konfigurationsparameter für Ihre Bereitstellung schnell überprüft.

  1. Öffnen Sie auf dem Kubernetes-Client-Computer eine Terminalsitzung als Administrator.
  2. Ändern Sie das Verzeichnis in den Speicherort des Bereitstellungsskripts.
  3. Erstellen Sie die Verschlüsselungs-Schlüsseldatei.

    Die Verschlüsselungs-Schlüsseldatei ist eine Nur-Text-Datei, die für die AES-256-Verschlüsselung und -Entschlüsselung von Kennwörtern verwendet wird. Der Inhalt dieser Datei ist Nur-Text, der von Ihnen angegeben wird; die Datei sollte keine Kennwörter enthalten. Der Speicherort dieser Datei sowie ihr Inhalt sollten nicht geändert werden.

  4. (Optional) Erstellen Sie das TLS-Secret im Namespace.
  5. Führen Sie im Terminal das Bereitstellungsskript mit dem folgenden Befehlsformat aus:
    ./deploy.sh
    
  6. Legen Sie die Parameter fest.

    Das Skript fordert einzeln zur Eingabe der folgenden Parameter auf. Bei Eingabe eines ungültigen Werts wird unmittelbar eine Fehlermeldung ausgegeben, und Sie werden zur Eingabe eines gültigen Parameters aufgefordert. Im nachfolgenden Abschnitt finden Sie eine Übersicht über die Benutzereingaben:

    Hinweis:

    Es ist nicht nötig, das Skript als Root-Benutzer auszuführen.

    • Deployment platform: ArcGIS Enterprise on Kubernetes leitet eingehenden Datenverkehr über Eingänge an die Services im Cluster weiter. Wenn Sie die Bereitstellung in einem von einem Cloud-Anbieter verwalteten Kubernetes-Service wie Amazon Web Services EKS oder Microsoft Azure Kubernetes Service (AKS) durchführen, kann der Ingress-Controller extern über einen Load-Balancer-Service des Cloud-Anbieters bereitgestellt werden. In diesem Fall stellt ArcGIS Enterprise on Kubernetes während des Bereitstellungsprozesses einen Load Balancer bereit.
    • Load Balancer: Während der Bereitstellung kann ArcGIS Enterprise on Kubernetes ausgewählte Cloud-Load Balancer mit dem Azure Load Balancer (extern und intern) und dem AWS Network Load Balancer (NLB-External und NLB-Internal) bereitstellen. Bei jeder Option werden Sie zur Angabe der IP-Adresse des Load Balancers aufgefordert. In dieser Version wird diese Option nur durch Azure Load Balancer unterstützt; AWS EKS unterstützt die Option mit der Load-Balancer-IP-Adresse nicht. Um die Funktionen eines Load Balancers auf Schicht 7 über einen bereits vorhandenen Ingress-Controller zu nutzen, müssen Sie angeben, dass Sie keinen Cloud-Load-Balancer verwenden möchten.
    • Ingress-Controllers auf Clusterebene: Mit einem Ingress-Controller auf Clusterebene lässt sich Datenverkehr zu einer ArcGIS Enterprise on Kubernetes-Bereitstellung weiterleiten, sodass Organisationen Funktionen eines Load Balancers auf Schicht 7 nutzen können. Um die Erstellung des clusterinternen NGINX-Ingress-Controller-Service als Typ "ClusterIP" zu ermöglichen, antworten Sie auf die Frage nach der Verwendung eines Ingress-Controllers auf Clusterebene mit yes.
    • Namespace: Der Namespace des Kubernetes-Clusters, in dem ArcGIS Enterprise on Kubernetes bereitgestellt wird.
    • Encryption Keyfile: Die Verschlüsselungs-Schlüsseldatei, die Sie in Schritt 3 erstellt haben.
    • Registry Host: Der vollständig qualifizierte Domänenname (FQDN) des Registrierungs-Hosts für den Container (z. B. docker.io).
    • Image Path: Das Image-Repository, aus dem die Container-Images abgerufen werden (z. B. esridocker).
    • Registry Username: Der Benutzername des Kontos in der angegebenen Containerregistrierung, in der die Berechtigungen zum Abrufen von Daten aus der Registrierung gespeichert sind.
      Vorsicht:

      Das Containerregistrierungskonto, das Sie angeben, sollte über Mindestberechtigungen verfügen (z. B. nur zum Herunterladen von Container-Images). Standardmäßig werden die unverschlüsselten Anmeldeinformationen von Kubernetes als Secret gespeichert und abgerufen. Es wird empfohlen, kein Konto anzugeben, das über Berechtigungen zum Durchführen von Änderungen, zum Bearbeiten von Metadaten oder zum Verwalten der Containerregistrierung verfügt.

    • Registry Password: Das Kennwort für das angegebene Containerregistrierungskonto.
    • Fully Qualified Domain Name: Der für den Zugriff auf ArcGIS Enterprise on Kubernetes erforderliche FQDN. Dieser verweist auf einen Load Balancer, Reverse-Proxy, Edge-Router oder sonstigen Web-Front-End-Punkt, der für die Weiterleitung von Datenverkehr an den Ingress-Controller konfiguriert wurde.
    • Context Path: Der in der URL für ArcGIS Enterprise on Kubernetes verwendete Kontextpfad (z. B. https://<FQDN>/<context path>).
      Hinweis:

      Nach Abschluss der Bereitstellung wird der hier angegebene Kontextpfad für die Konfiguration von ArcGIS Enterprise on Kubernetes Web Adaptor für die Organisation verwendet.

    • Node Port: Der Ingress-Controller stellt externen Datenverkehr über den Service-Typ "LoadBalancer" oder "NodePort" bereit. Der Port-Bereich kann zwischen 30000 und 32767 liegen. Wenn kein Port angegeben wird, weist Kubernetes automatisch einen verfügbaren Port im diesem Bereich zu.
    • TLS Certificate: Für den FQDN und den alternativen Namen (SAN) ist ein (selbstsigniertes oder von der Zertifizierungsstelle eines Drittanbieters signiertes) TLS-Zertifikat erforderlich. Dies ist das Standard-TLS-Zertifikat für den Ingress-Controller.

  7. Geben Sie an, ob Sie die Eigenschaftsdatei bereitstellen oder speichern möchten.

    Wenn Sie Parameter in der Eigenschaftsdatei anpassen müssen, z. B. die zusätzlichen Eigenschaften für die automatische Bereitstellung, schließen Sie das Bereitstellungsskript, und aktualisieren Sie die Datei auf dem Datenträger. Häufige Beispiele für zusätzliche Eigenschaften sind die Aktualisierung von ALLOWED_PRIVILEGED_CONTAINERS=false, um nur Container ohne entsprechende Berechtigungen auszuführen, oder die Aktualisierung von K8S_AVAILABILITY_TOPOLOGY_KEY=topology.kubernetes.io/zone, um eine Cluster-Bereitstellung in einer Multi-Verfügbarkeitszone zu unterstützen.

Wenn Sie alle gültigen Parameter angegeben haben, wird in Ihrem Arbeitsverzeichnis eine Eigenschaftendatei gespeichert. Mit dieser Eigenschaftendatei können Sie künftige Bereitstellungen automatisieren oder die Bereitstellung von ArcGIS Enterprise on Kubernetes aufheben.

Der letzte Bereitstellungsschritt besteht im Erstellen Ihrer ArcGIS Enterprise-Organisation.

Tipp:

Das Bereitstellungsskript validiert die Voraussetzungen wie einen gültigen Namespace mithilfe von kubectl-Befehlen. Wenn der Befehl kubectl aufgrund eines Problems mit dem Netzwerk oder der Firewall nicht mit dem Cluster kommunizieren kann, reagiert das Bereitstellungsskript möglicherweise nicht mehr. Beenden Sie in diesem Fall den Befehl ./deploy.sh, und führen Sie kubectl direkt von einem Terminal aus, um die Kommunikation mit dem Cluster zu initiieren.

Ausführen des Bereitstellungsskripts im automatischen Modus

Statt das Bereitstellungsskript im interaktiven Modus auszuführen, können Sie ArcGIS Enterprise on Kubernetes auch automatisch bereitstellen. Das Bereitstellungsskript wird mit einer deploy.properties-Datei gebündelt, die eine Reihe von Parametern bereitstellt, welche zu eindeutigen Eingaben für die ArcGIS Enterprise on Kubernetes-Bereitstellung auffordern.

  1. Öffnen Sie auf dem Kubernetes-Client-Computer eine Terminalsitzung als Administrator.
  2. Ändern Sie die Verzeichnisse in die Speicherorte des Bereitstellungsskripts und der Datei deploy.properties.
  3. Öffnen Sie die Datei deploy.properties.
  4. Eine Übersicht über die Benutzereingaben finden Sie in den beschreibenden Kommentaren in der Datei. Geben Sie für die in der Datei aufgeführten Parameter Werte an.

    Die Datei ist in die folgenden Abschnitte unterteilt:

    • Deployment platform
    • Namespace
    • Encryption keyfile
    • Container registry
    • Fully Qualified Domain Name (FQDN)
    • TLS certificate
    • Zusätzliche Eigenschaften
  5. Speichern Sie die Datei. Benennen Sie die Datei bei Bedarf um.
  6. Führen Sie das Werkzeug password-encrypt.sh im Terminal aus, um verschlüsselte Kennwörter zu generieren, die in der Datei deploy.properties verwendet werden.
  7. Führen Sie im Terminal das Bereitstellungsskript mit dem folgenden Befehlsformat aus:
    ./deploy.sh -f <user_properties>
    

Der Inhalt von <user properties> wird aus der deploy.properties-Datei abgeleitet.

Vor der Bereitstellung von ArcGIS Enterprise on Kubernetes wird mit dem Bereitstellungsskript geprüft, ob Ihr System die Mindestsystemanforderungen erfüllt und ob Sie für die in der Datei deploy.properties aufgeführten Parameter gültige Werte eingegeben haben.

Der letzte Bereitstellungsschritt besteht im Erstellen Ihrer ArcGIS Enterprise-Organisation.

Zusätzliche Eigenschaften für die automatische Bereitstellung

Die Datei deploy.properties enthält zusätzliche Eigenschaften, die bei der automatischen Bereitstellung verwendet werden können. Die Standardwerte für jede Eigenschaft sind angegeben.

ALLOWED_PRIVILEGED_CONTAINERS=true: Wenn Sie keinen Container mit Berechtigungen ausführen können, legen Sie diesen Wert auf false fest. In diesem Fall müssen Sie außerdem den Befehl # "sysctl -w vm.max_map_count=262144" als Root-Benutzer ausführen, um vm.max_map_count auf allen Knoten in Ihrem Cluster auf 262144 zu erhöhen.

CONTAINER_IMAGE_PULL_POLICY="Always": Wenn neue Container gestartet werden, bestimmt ImagePullPolicy, ob ein neues Container-Image aus der Container-Registrierung abgerufen wird. Die Standardeinstellung "Always" bewirkt, dass bei jedem Start eines Containers ein neues Image abgerufen wird. Soll ein neues Image nur dann abgerufen werden, wenn noch kein Image vorhanden ist, legen Sie diesen Wert auf "IfNotPresent" fest.

INGRESS_HSTS_ENABLED=false: HSTS (HTTP Strict Transport Security) bietet eine zusätzliche Sicherheitsebene für den Webdatenverkehr Ihrer Organisation. Standardmäßig ist die Option für das HSTS-Protokoll auf false festgelegt. Um HSTS zu aktivieren, legen Sie diesen Wert auf true fest.

INGRESS_SSL_PROTOCOLS="TLSv1.2 TLSv1.3": Legt die zu verwendenden SSL-Protokolle fest. Die Standardeinstellung ist "TLSv1.2 TLSv1.3". Falls zusätzliche TLS-Versionen zugelassen werden müssen, geben Sie diese hier an.

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": Diese Eigenschaft legt die Liste der zu aktivierenden SSL-Verschlüsselungen fest. Falls zusätzliche SSL-Verschlüsselungen erforderlich sind, geben Sie diese hier an.

K8S_CLUSTER_DOMAIN="cluster.local": Wenn Sie über ein benutzerdefiniertes Cluster-Domänensuffix für Services und Pods verfügen (z. B. "organisation.com"), können Sie mit dieser Eigenschaft zulassen, dass ArcGIS Enterprise on Kubernetes das Cluster-Domänensuffix verwendet. Der Standardwert ist cluster.local.

K8S_AVAILABILITY_TOPOLOGY_KEY="kubernetes.io/hostname": Wenn Sie ArcGIS Enterprise on Kubernetes bereitstellen und der Kubernetes-Cluster sich über drei oder mehr Verfügbarkeitszonen erstreckt, ersetzen Sie "kubernetes.io/hostname" durch "topology.kubernetes.io/zone" oder die benutzerdefinierte Domänentopologie-Beschriftung. Weitere Informationen zu Bereitstellungen in Multi-Verfügbarkeitszonen finden Sie unter Clusterverwaltung in einer Multi-Verfügbarkeitszone.

INGRESS_SERVICE_USE_CLUSTER_IP=false: Um die Funktionen eines Load Balancer auf Schicht 7 über einen bereits vorhandenen Ingress-Controller zu nutzen, müssen Sie diesen Wert auf true festlegen. Wenn Sie diesen Wert auf true festlegen, wird der für den Parameter INGRESS_TYPE festgelegte Wert überschrieben.

Nachdem Sie die erforderlichen Parameter für den Cluster der Organisation in der Datei mit den Bereitstellungseigenschaften aktualisiert haben, stellen Sie ArcGIS Enterprise on Kubernetes mit dem folgenden Befehl bereit:

./deploy.sh -f <user_properties>