Lorsque vous utilisez le registre de conteneur de votre organisation avec ArcGIS Enterprise on Kubernetes, vous devez le préparer avec les images de conteneur Esri avant tout nouveau déploiement, mise à jour ou mise à niveau. Pour ce faire, vous devez utiliser les outils de registre inclus avec le logiciel pour intégrer les images Docker Hub Esri dans le registre de conteneur de votre organisation.
Comprendre les outils de registre
Le paquet de déploiement ArcGIS Enterprise on Kubernetes comprend un ensemble d’outils permettant de transférer des images vers le registre de conteneur de votre organisation.
Ces outils se trouvent sous setup/tools/registry-tools dans le répertoire où vous avez extrait le paquet de déploiement et incluent les éléments suivants :
- image-download.sh : télécharge toutes les images de conteneur vers le périphérique de stockage spécifié sous forme d’archives .tar.gz.
- image-upload.sh : charge les images du conteneur depuis le périphérique de stockage vers le registre de conteneur.
- image-transfer.sh : transfère les images directement entre deux registres. Cette méthode est plus rapide que celle consistant à utiliser image-download.sh et image-upload.sh si le poste de travail client peut accéder aux deux registres.
- create-offline-manifest.sh : télécharge le manifeste de version et l’importe dans votre organisation, permettant ainsi un accès hors ligne aux mises à jour et aux mises à niveau.
Le dossier registry-tools contient également le fichier registry-tools.properties.template. Ce fichier de propriétés de modèle peut être utilisé avec les outils image-download.sh, image-upload.sh et image-transfer.sh. Reportez-vous au fichier Readme.md de ce dossier pour en savoir plus sur le fichier de propriété et les outils de registre.
Préparez votre registre lorsque la machine cliente a accès à Docker Hub et au registre de votre organisation
Si votre machine client a accès à Docker Hub et au registre de votre organisation, vous pouvez préparer votre registre pour un nouveau déploiement, une mise à jour ou une mise à niveau à l’aide de l’outil image-transfer.sh.
Pour préparer votre registre, procédez comme suit :
- Sur My Esri, obtenez la version logicielle de ArcGIS Enterprise on Kubernetes que vous voulez déployer.
- Téléchargez et extrayez le script de déploiement sur votre machine cliente.
Pour préparer une mise à niveau, téléchargez la nouvelle version du script de déploiement afin d’obtenir les dernières images.
- Ouvrez un terminal et modifiez les répertoires pour désigner le répertoire setup/tools/registry-tools.
- Si votre registre vous oblige à pré-créer les référentiels d’images, par exemple dans Amazon Elastic Container Registry (ECR), exécutez la commande suivante pour obtenir la liste des référentiels d’images requis.
/setup/tools/registry-tools/image-transfer.sh -l
- Identifiez la balise de version correspondant à la version du logiciel que vous comptez déployer en vous référant aux notes de version ou en exécutant la commande suivante pour visualiser les balises d’images disponibles :
/setup/tools/registry-tools/image-transfer.sh -s
- Utilisez le modèle qui se trouve dans le dossier registry-tools ou créez un fichier de propriétés à part et incluez les paramètres suivants :
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>"
Le fichier de clé de chiffrement est un fichier de texte brut utilisé pour le chiffrement AES-256 et le déchiffrement des mots de passe. Le fichier contient le texte que vous spécifiez et ne doit inclure aucun mot de passe. Ce fichier doit rester à un emplacement fixe et son contenu ne doit pas être modifié. Par exemple :
$ echo 'My Encryption Text!' >> /path/to/keyfile.txt
- Exécutez le script à l’aide de la commande suivante :
./image-transfer.sh -f </properties/file/path>
Comme le script transfère toutes les images balisées dans votre registre de conteneur, l’opération dure un certain temps. Si un transfert est interrompu, exécutez à nouveau le script pour le recommencer.
Conseil :
Une fois l’outil image_transfer.sh exécuté, les images sont conservées dans le cache d’exécution du conteneur. Pour libérer de l’espace une fois l’outil exécuté avec succès, il est recommandé de supprimer les éléments non requis dans le cache Docker. Pour ce faire, exécutez docker system prune ou docker image rm.
Préparez votre registre lorsque le registre de votre organisation est déconnecté d’Internet
Si le registre de votre organisation est déconnecté d’Internet, vous pouvez préparer votre registre pour un nouveau déploiement, une mise à jour ou une mise à niveau à l’aide des outils image-download.sh et image-upload.sh.
Pour préparer votre registre, procédez comme suit :
- Sur My Esri, obtenez la version logicielle de ArcGIS Enterprise on Kubernetes que vous voulez déployer.
- Téléchargez et extrayez les scripts de déploiement sur la machine cliente exécutant l’outil de téléchargement et la machine cliente exécutant l’outil de chargement.
Il est recommandé d’utiliser la même version que les scripts de déploiement. Pour préparer une mise à niveau, téléchargez la nouvelle version des scripts de déploiement afin d’obtenir les dernières images.
- Sur la machine cliente qui exécute l’outil de téléchargement, ouvrez un terminal et modifiez les répertoires pour désigner le répertoire setup/tools/registry-tools.
- Si votre registre vous oblige à pré-créer les référentiels d’images, par exemple dans Amazon Elastic Container Registry (ECR), exécutez la commande suivante pour obtenir la liste des référentiels d’images requis.
/setup/tools/registry-tools/image-download.sh -l
- Identifiez la balise de version correspondant à la version du logiciel que vous comptez déployer en vous référant aux notes de version ou en exécutant la commande suivante pour visualiser les balises d’images disponibles :
/setup/tools/registry-tools/image-download.sh -s
- Si vous n’utilisez pas le fichier de propriétés, exécutez l’outil image-download.sh sous le format de commande suivant :
./image-download.sh -r docker.io/esridocker -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
- Si vous utilisez le fichier de propriétés, utilisez le modèle qui se trouve dans le dossier registry-tools ou créez un fichier de propriétés à part et incluez les paramètres suivants :
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>"
Le fichier de clé de chiffrement est un fichier de texte brut utilisé pour le chiffrement AES-256 et le déchiffrement des mots de passe. Le fichier contient le texte que vous spécifiez et ne doit inclure aucun mot de passe. Ce fichier doit rester à un emplacement fixe et son contenu ne doit pas être modifié. Par exemple :
$ echo 'My Encryption Text!' >> /path/to/keyfile.txt
- Exécutez le script à l’aide de la commande suivante :
./image-download.sh -f </properties/file/path>
Comme le script télécharge toutes les images balisées du référentiel Esri, l’opération dure un certain temps. Si un téléchargement est interrompu, exécutez à nouveau le script pour le recommencer.
Conseil :
Une fois l’outil image_download.sh exécuté, les images sont conservées dans le cache d’exécution du conteneur. Pour libérer de l’espace une fois l’outil exécuté avec succès, il est recommandé de supprimer les éléments non requis dans le cache Docker. Pour ce faire, exécutez docker system prune ou docker image rm.
- Exécutez le script à l’aide de la commande suivante :
- Suivez les processus de votre organisation pour déplacer les images sur votre machine cliente déconnectée.
Cette machine doit avoir accès à votre registre privé.
- Sur la machine cliente ayant accès à votre registre de conteneur, ouvrez un terminal et modifiez les répertoires pour désigner le répertoire setup/tools/registry-tools.
- Si vous n’utilisez pas le fichier de propriétés, exécutez l’outil image-upload.sh sous le format de commande suivant :
./image-upload.sh -r <registry_host>/<organization> -u <username> -p <password> -d </path/to/download/directory> -t <version_tag>
- Si vous utilisez le fichier de propriétés, utilisez le modèle qui se trouve dans le dossier registry-tools ou créez un fichier de propriétés à part et incluez les paramètres suivants :
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>"
- Exécutez le script à l’aide de la commande suivante :
./image-upload.sh -f <properties file path>
Comme le script charge toutes les images balisées dans votre registre de conteneur, l’opération dure un certain temps. Si un chargement est interrompu, exécutez à nouveau le script pour le recommencer.
Remarque :
Une fois l’outil image-upload.sh exécuté, les images sont conservées dans le cache d’exécution du conteneur. Pour libérer de l’espace une fois l’outil exécuté avec succès, il est recommandé de supprimer les éléments non requis dans le cache Docker. Pour ce faire, exécutez docker system prune ou docker image rm.
- Exécutez le script à l’aide de la commande suivante :
Préparer votre registre pour les mises à jour et les mises à niveau
Si vous préparez votre registre avant d’appliquer la dernière mise à jour ou de mettre à niveau votre organisation, utilisez un fichier de propriétés et définissez la propriété CURRENT_VERSION afin de vous assurer que l’outil de registre télécharge ou transfère uniquement les images requises. Une fois que vous avez effectué les étapes 1 à 4 de l’une des sections ci-dessus et avez complété le fichier de propriétés, procédez comme suit :
- Identifiez la version actuelle de votre organisation en vous connectant à l’API d’administration et en associant la version et la build.
Par exemple, pour la version 11.4.0 et la build 6144, la propriété CURRENT_VERSION serait 11.4.0.6144.
- Définissez la propriété CURRENT_VERSION dans le fichier de propriétés.
- Si vous vous préparez à appliquer la dernière mise à jour, exécutez les outils image-transfer.sh ou image-download.sh.
- Si votre poste de travail client a un accès direct à Docker Hub et au registre de l’organisation cible, exécutez la commande au format suivant :
./image-transfer.sh -f <properties_file> --update
- Si votre poste de travail client a accès à Docker Hub mais pas au registre de l’organisation cible, exécutez la commande au format suivant :
./image-download.sh -f <properties_file> --update
- Si votre poste de travail client a un accès direct à Docker Hub et au registre de l’organisation cible, exécutez la commande au format suivant :
- Si vous vous préparez à mettre à niveau votre organisation vers la dernière version, exécutez les outils image-transfer.sh ou image-download.sh.
- Si votre poste de travail client a un accès direct à Docker Hub et au registre de l’organisation cible, exécutez la commande au format suivant :
./image-transfer.sh -f <properties_file> --upgrade
- Si votre poste de travail client a accès à Docker Hub mais pas au registre de l’organisation cible, exécutez la commande au format suivant :
./image-download.sh -f <properties_file> --upgrade
- Si votre poste de travail client a un accès direct à Docker Hub et au registre de l’organisation cible, exécutez la commande au format suivant :
Remarque :
Si vous avez utilisé l’outil image-download.sh, vous devez également transférer les images vers un poste de travail client qui a accès au registre de l’organisation et exécuter l’outil image-upload.sh qui pointe vers le répertoire des archives d’images copiées.Vous avez un commentaire à formuler concernant cette rubrique ?