Wenn Sie die Containerregistrierung Ihrer Organisation für ArcGIS Enterprise on Kubernetes verwenden, müssen Sie vor neuen Bereitstellungen, Aktualisierungen oder Upgrades die Esri Container-Images vorbereiten. Dazu können Sie die in der Software enthaltenen Registrierungswerkzeuge verwenden, um die Docker Hub-Images von Esri in die Containerregistrierung der Organisation zu verschieben.
Registrierungswerkzeuge
Das ArcGIS Enterprise on Kubernetes-Bereitstellungspaket enthält verschiedene Werkzeuge, die für die Übertragung von Images in die Containerregistrierung Ihrer Organisation verwendet werden.
Diese Werkzeuge befinden sich unter setup/tools/registry-tools in dem Verzeichnis, in dem Sie das Bereitstellungspaket extrahiert haben. Es sind folgende Werkzeuge enthalten:
- image-download.sh: Damit werden alle Container-Images als .tar.gz-Archive auf das angegebene Speichergerät heruntergeladen.
- image-upload.sh: Damit werden auf dem Speichergerät befindliche Container-Images in die Containerregistrierung hochgeladen.
- image-transfer.sh: Damit werden Images direkt zwischen zwei Registrierungen übertragen. Diese Option ist schneller als die Verwendung von image-download.sh und image-upload.sh, wenn die Client-Workstation Zugriff auf beide Registrierungen hat.
- create-offline-manifest.sh: Damit wird das Versionsmanifest heruntergeladen und in die Organisation importiert, um den Offline-Zugriff auf Aktualisierungen und Upgrades zu ermöglichen.
Der Ordner registry-tools enthält auch die Datei registry-tools.properties.template. Diese Eigenschaftendatei der Vorlage kann mit den Werkzeugen image-download.sh, image-upload.sh und image-transfer.sh verwendet werden. Weitere Informationen über die Eigenschaftendatei und die Registrierungswerkzeuge finden Sie in der Datei Readme.md in diesem Ordner.
Vorbereiten der Registrierung, wenn der Client-Computer Zugriff auf Docker Hub und die Registrierung Ihrer Organisation hat
Wenn der Client-Computer Zugriff auf Docker Hub und die Registrierung Ihrer Organisation hat, können Sie die Registrierung mithilfe des Werkzeugs image-transfer.sh für eine neue Bereitstellung, eine Aktualisierung bzw. ein Upgrade vorbereiten.
Gehen Sie wie folgt vor, um die Registrierung vorzubereiten:
- Rufen Sie von My Esri die ArcGIS Enterprise on Kubernetes-Softwareversion ab, die Sie bereitstellen möchten.
- Laden Sie das Bereitstellungsskript auf Ihren Client-Computer herunter, und extrahieren Sie es.
Laden Sie zur Vorbereitung auf ein Upgrade die neue Version des Bereitstellungsskripts herunter, um die aktuellen Images zu erhalten.
- Öffnen Sie ein Terminal, und ändern Sie die Verzeichnisse in das Verzeichnis setup/tools/registry-tools.
- Wenn Ihre Registrierung verlangt, dass Sie die Image-Repositorys vorab erstellen, z. B. in Amazon Elastic Container Registry (ECR), führen Sie den folgenden Befehl aus, um eine Liste der erforderlichen Image-Repositorys zu erhalten:
/setup/tools/registry-tools/image-transfer.sh -l
- Identifizieren Sie das entsprechende Versions-Tag für die Softwareversion, die Sie bereitstellen möchten, mithilfe der Versionshinweise oder durch Ausführen des folgenden Befehls zur Anzeige der verfügbaren Image-Tags:
/setup/tools/registry-tools/image-transfer.sh -s
- Verwenden Sie die Vorlage im Ordner registry-tools, oder erstellen Sie eine separate Eigenschaftendatei, und binden Sie diese Parameter ein:
DOWNLOAD_REGISTRY="docker.io/esridocker" DOWNLOAD_USER="<username>" DOWNLOAD_PASS="<password>" CURRENT_VERSION="<current_version_tag>" DOWNLOAD_TAG="<version_tag>" UPLOAD_REGISTRY="<registry_host>/<organization>" UPLOAD_USER="<username>" UPLOAD_PASS="<password>" UPLOAD_TAG"="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE"</path/to/keyfile.txt>"
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 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. Beispiel:
$ echo 'My Encryption Text!' >> /path/to/keyfile.txt
- Führen Sie das Skript mit dem folgenden Befehl aus:
./image-transfer.sh -f </properties/file/path>
Da mit dem Skript alle getaggten Images in die private Containerregistrierung übertragen werden, nimmt der Vorgang einige Zeit in Anspruch. Sollte die Übertragung unterbrochen werden, führen Sie das Skript erneut aus, um den Vorgang fortzusetzen.
Tipp:
Nachdem das Werkzeug image_transfer.sh erfolgreich abgeschlossen wurde, sind die Images weiterhin im Cache der Container-Runtime vorhanden. Um im Anschluss Speicherplatz freizugeben, wird empfohlen, den Docker-Cache von nicht benötigten Elementen zu bereinigen. Führen Sie hierfür docker system prune oder docker image rm aus.
Vorbereiten der Registrierung, wenn die Registrierung Ihrer Organisation nicht mit dem Internet verbunden ist
Wenn die Registrierung Ihrer Organisation nicht mit dem Internet verbunden ist, können Sie die Registrierung mithilfe der Werkzeuge image-download.sh und image-upload.sh für eine neue Bereitstellung, eine Aktualisierung bzw. ein Upgrade vorbereiten.
Gehen Sie wie folgt vor, um die Registrierung vorzubereiten:
- Rufen Sie von My Esri die ArcGIS Enterprise on Kubernetes-Softwareversion ab, die Sie bereitstellen möchten.
- Laden Sie die Bereitstellungsskripte auf den Client-Computer herunter, auf dem das Werkzeug zum Herunterladen ausgeführt wird, und auf den Client-Computer, auf dem das Werkzeug zum Hochladen ausgeführt wird, und extrahieren Sie sie.
Es wird empfohlen, die gleiche Version der Bereitstellungsskripte zu verwenden. Laden Sie zur Vorbereitung auf ein Upgrade die neue Version der Bereitstellungsskripte herunter, um die aktuellen Images zu erhalten.
- Öffnen Sie auf dem Client-Computer, auf dem das Werkzeug zum Herunterladen ausgeführt wird, ein Terminal, und ändern Sie die Verzeichnisse in das Verzeichnis setup/tools/registry-tools.
- Wenn Ihre Registrierung verlangt, dass Sie die Image-Repositorys vorab erstellen, z. B. in Amazon Elastic Container Registry (ECR), führen Sie den folgenden Befehl aus, um eine Liste der erforderlichen Image-Repositorys zu erhalten:
/setup/tools/registry-tools/image-download.sh -l
- Identifizieren Sie das entsprechende Versions-Tag für die Softwareversion, die Sie bereitstellen möchten, mithilfe der Versionshinweise oder durch Ausführen des folgenden Befehls zur Anzeige der verfügbaren Image-Tags:
/setup/tools/registry-tools/image-download.sh -s
- Wenn Sie die Eigenschaftendatei nicht verwenden, führen Sie das Werkzeug image-download.sh mit dem folgenden Befehlsformat aus:
./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
- Wenn Sie die Eigenschaftendatei verwenden, verwenden Sie die Vorlage im Ordner registry-tools, oder erstellen Sie eine separate Eigenschaftendatei, und binden Sie diese Parameter ein:
DOWNLOAD_REGISTRY="<docker.io/esridocker>" DOWNLOAD_USER="<username>" DOWNLOAD_PASS="<password>" DOWNLOAD_TAG="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
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 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. Beispiel:
$ echo 'My Encryption Text!' >> /path/to/keyfile.txt
- Führen Sie das Skript mit dem folgenden Befehl aus:
./image-download.sh -f </properties/file/path>
Da mit dem Skript alle getaggten Images aus dem Esri Repository heruntergeladen werden, nimmt der Vorgang einige Zeit in Anspruch. Sollte der Download unterbrochen werden, führen Sie das Skript erneut aus, um den Vorgang fortzusetzen.
Tipp:
Nachdem das Werkzeug image_download.sh erfolgreich abgeschlossen wurde, sind die Images weiterhin im Cache der Container-Runtime vorhanden. Um im Anschluss Speicherplatz freizugeben, wird empfohlen, den Docker-Cache von nicht benötigten Elementen zu bereinigen. Führen Sie hierfür docker system prune oder docker image rm aus.
- Führen Sie das Skript mit dem folgenden Befehl aus:
- Befolgen Sie die Prozesse Ihrer Organisation zum Verschieben von Images auf den nicht verbundenen Client-Computer.
Dieser Computer muss Zugriff auf Ihre private Registrierung haben.
- Öffnen Sie auf dem Client-Computer mit Zugriff auf die Containerregistrierung ein Terminal, und ändern Sie die Verzeichnisse in das Verzeichnis setup/tools/registry-tools.
- Wenn Sie die Eigenschaftendatei nicht verwenden, führen Sie das Werkzeug image-upload.sh mit dem folgenden Befehlsformat aus:
./image-upload.sh -r <registry_host>/<organization> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
- Wenn Sie die Eigenschaftendatei verwenden, verwenden Sie die Vorlage im Ordner registry-tools, oder erstellen Sie eine separate Eigenschaftendatei, und binden Sie diese Parameter ein:
UPLOAD_REGISTRY="<registry_host>/<organization>" UPLOAD_USER="<username>" UPLOAD_PASS="<password>" UPLOAD_TAG="<version_tag>" DOWNLOAD_DIR="</path/to/download/directory>" ENCRYPTION_KEYFILE="</path/to/keyfile.txt>"
- Führen Sie das Skript mit dem folgenden Befehl aus:
./image-upload.sh -f <properties file path>
Da mit dem Skript alle getaggten Images in die private Containerregistrierung hochgeladen werden, nimmt der Vorgang einige Zeit in Anspruch. Sollte der Upload unterbrochen werden, führen Sie das Skript erneut aus, um den Vorgang fortzusetzen.
Hinweis:
Nachdem das Werkzeug image-upload.sh erfolgreich abgeschlossen wurde, sind die Images weiterhin im Cache der Container-Runtime vorhanden. Um im Anschluss Speicherplatz freizugeben, wird empfohlen, den Docker-Cache von nicht benötigten Elementen zu bereinigen. Führen Sie hierfür docker system prune oder docker image rm aus.
- Führen Sie das Skript mit dem folgenden Befehl aus:
Vorbereiten der Registrierung für Aktualisierungen oder Upgrades
Wenn Sie die Registrierung vorbereiten, bevor Sie die neueste Aktualisierung anwenden oder ein Upgrade für Ihre Organisation durchführen, verwenden Sie eine Eigenschaftendatei, und legen Sie die Eigenschaft CURRENT_VERSION fest, um sicherzustellen, dass das Registrierungswerkzeug nur erforderliche Images herunterlädt oder überträgt. Nachdem Sie die Schritte 1–4 in einem der obigen Abschnitte ausgeführt und die Eigenschaftendatei gefüllt haben, führen Sie die folgenden Schritte aus:
- Identifizieren Sie die aktuelle Version der Organisation, indem Sie sich bei der Admin-API anmelden und Version und Build kombinieren.
Beispiel: Für Version 11.4.0 und Build 6144 lautet die CURRENT_VERSION 11.4.0.6144.
- Legen Sie die Eigenschaft CURRENT_VERSION in der Eigenschaftendatei fest.
- Wenn Sie die Anwendung der letzten Aktualisierung vorbereiten, führen Sie das Werkzeug image-transfer.sh oder image-download.sh aus.
- Falls die Client-Workstation direkten Zugriff sowohl auf Docker Hub als auch auf die Registrierung der Zielorganisation hat, führen Sie den Befehl im folgenden Format aus:
./image-transfer.sh -f <properties_file> --update
- Falls die Client-Workstation Zugriff auf Docker Hub, nicht jedoch auf die Registrierung der Zielorganisation hat, führen Sie den Befehl im folgenden Format aus:
./image-download.sh -f <properties_file> --update
- Falls die Client-Workstation direkten Zugriff sowohl auf Docker Hub als auch auf die Registrierung der Zielorganisation hat, führen Sie den Befehl im folgenden Format aus:
- Wenn Sie ein Upgrade Ihrer Organisation auf die nächste veröffentlichte Version vorbereiten, führen Sie das Werkzeug image-transfer.sh oder image-download.sh aus.
- Falls die Client-Workstation direkten Zugriff sowohl auf Docker Hub als auch auf die Registrierung der Zielorganisation hat, führen Sie den Befehl im folgenden Format aus:
./image-transfer.sh -f <properties_file> --upgrade
- Falls die Client-Workstation Zugriff auf Docker Hub, nicht jedoch auf die Registrierung der Zielorganisation hat, führen Sie den Befehl im folgenden Format aus:
./image-download.sh -f <properties_file> --upgrade
- Falls die Client-Workstation direkten Zugriff sowohl auf Docker Hub als auch auf die Registrierung der Zielorganisation hat, führen Sie den Befehl im folgenden Format aus: