Exécuter le script de déploiement

Pour déployer ArcGIS Enterprise on Kubernetes, vous pouvez exécutez un script Bash ainsi que les manifestes Kubernetes. Le paquetage de déploiement est disponible en téléchargement sur My Esri et est livré sous forme d’un fichier .tar.gz. Avant d’exécuter le script de déploiement, lisez les instructions de prise en main.

Remarque :

Pour exécuter le script de déploiement en mode interactif, le mot de passe de votre registre de conteneur ne doit pas comporter plus de 30 caractères. Si le mot de passe de votre registre de conteneur comporte plus de 30 caractères, vous pouvez exécuter le script de déploiement en mode silencieux. Au préalable, utilisez l’outil password-encrypt.sh pour générer un mot de passe chiffré, supprimez-en les sauts de ligne et indiquez-le dans le fichier deploy.properties comme CONTAINER_REGISTRY_PASSWORD.

Exécuter le script de déploiement en mode interactif

Si vous exécutez le script de déploiement ArcGIS Enterprise on Kubernetes sans spécifier un fichier de paramètres de configuration, il s’ouvre en mode interactif. Le script invite à renseigner chaque paramètre et vérifie immédiatement la validité de chaque valeur. C’est un moyen rapide de vérifier chaque paramètre de configuration dans votre déploiement.

  1. Sur votre machine cliente Kubernetes, ouvrez un terminal en tant qu’administrateur.
  2. Remplacez le répertoire par celui sur lequel se trouve votre script de déploiement.
  3. Créez le fichier de clé de chiffrement.

    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 brut 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é.

  4. (Facultatif) Créez le secret TLS dans l’espace de noms.
  5. Sur le terminal, exécutez le script de déploiement sous le format de commande suivant :
    ./deploy.sh
    
  6. Renseignez les paramètres.

    Le script vous invite à renseigner les paramètres suivants, l’un après l’autre. Si vous fournissez une valeur non valide, le script renvoie immédiatement une erreur et invite à saisir un paramètre valide. Voici un récapitulatif des entrées utilisateur :

    Remarque :

    Il est inutile d’exécuter ce script en tant qu’utilisateur racine.

    • Deployment platform (Plateforme de déploiement) : ArcGIS Enterprise on Kubernetes utilise ingress pour acheminer le trafic entrant vers les services dans le cluster. Si vous procédez au déploiement dans un service Kubernetes géré par un fournisseur d’hébergement sur le Cloud comme Amazon Web Services EKS ou Microsoft Azure Kubernetes Service (AKS), le contrôleur ingress peut être exposé en externe à l’aide d’un équilibreur de charge par le fournisseur Cloud. Dans ce cas, ArcGIS Enterprise on Kubernetes provisionne un équilibreur de charge durant le processus de déploiement.
    • Load balancer (Équilibreur de charge) : au cours du déploiement, ArcGIS Enterprise on Kubernetes peut provisionner les équilibreurs de charge Cloud sélectionnés grâce aux options Azure Load Balancer (externe et interne) et AWS Network Load Balancer (NLB-externe et NLB-interne). Chaque option vous invite à spécifier l’adresse IP de l’équilibreur de charge. Dans cette version, seuls les équilibreurs de charge Azure prennent en charge cette option ; AWS EKS ne prend pas en charge l’option d’adresse IP de l’équilibreur de charge. Pour utiliser les fonctionnalités du système d’équilibrage de la charge 7 des couches via un contrôleur Ingress préexistant, vous devez indiquer que vous ne voulez pas utiliser un système d’équilibrage de la charge Cloud.
    • Cluster-level ingress controller (Contrôleur Ingress au niveau du cluster) : un contrôleur Ingress au niveau du cluster peut être utilisé pour acheminer le trafic vers un déploiement ArcGIS Enterprise on Kubernetes et ainsi permettre aux organisations d’utiliser les fonctionnalités du système d’équilibrage de la chaque 7 des couches. Pour permettre la création du service de contrôleur Ingress NGINX au sein du cluster en tant que type ClusterIP, répondez yes à la question sur l’utilisation d’un contrôleur Ingress au niveau du cluster.
    • Namespace (Espace de noms) : espace de noms de cluster Kubernetes dans lequel ArcGIS Enterprise on Kubernetes va être déployé.
    • Encryption Keyfile (Fichier de clé de chiffrement) : le fichier de clé de chiffrement que vous avez créé à l’étape 3.
    • Registry Host (Hôte de registre) : nom du domaine complet (FQDN) de l’hôte du registre de conteneur (docker.io, par exemple).
    • Image Path (Chemin d’image) : référentiel des images utilisé pour extraire les images de conteneur (esridocker, par exemple).
    • Registry Username (Nom d’utilisateur du registre) : nom d’utilisateur d’un compte figurant dans le registre de conteneur spécifié qui stocke les autorisations à extraire du registre.
      Attention :

      Le compte de registre de conteneur que vous spécifiez doit être associé à un niveau minimum de privilèges, par exemple, uniquement ceux pour télécharger des images de conteneur. Par défaut,Kubernetes stocke les informations d’identification non chiffrées de ce compte sous forme de secret et y accède. Il est recommandé de ne pas spécifier de compte disposant de privilèges permettant d’intégrer des modifications, de mettre à jour des métadonnées ou d’administrer le registre de conteneur.

    • Registry Password (Mot de passe du registre) : mot de passe relatif au compte de registre de conteneur spécifié.
    • Fully Qualified Domain Name (Nom du domaine complet) : FQDN nécessaire pour accéder à ArcGIS Enterprise on Kubernetes. Il désigne un équilibreur de charge, un proxy inversé, un routeur périphérique ou un autre point front-end Web configuré pour acheminer le trafic vers le contrôleur ingress.
    • Context Path (Chemin de contexte) : chemin de contexte utilisé dans l’URL pour ArcGIS Enterprise on Kubernetes (par exemple, https://<FQDN>/<context path>) .
      Remarque :

      Une fois le déploiement terminé, le chemin de contexte que vous spécifiez ici est utilisé lors de la configuration de ArcGIS Enterprise on Kubernetes Web Adaptor avec votre organisation.

    • Node Port (Port de nœud) : le contrôleur ingress expose le trafic externe sur un type de service "LoadBalancer" ou "NodePort". Le port peut être spécifié dans la plage 30000-32767. Si aucun port n’est spécifié, Kubernetes alloue automatiquement un port disponible dans cette plage.
    • TLS Certificate (Certificat TLS) : un certificat TLS (auto-signé ou signé par une autorité de certification tierce) est requis avec le FQDN et l’autre nom de l’objet. Il s’agira du certificat TLS par défaut pour le contrôleur ingress.

  7. À l’invite, indiquez si vous souhaitez déployer ou enregistrer le fichier de propriétés.

    Si vous devez personnaliser des paramètres dans le fichier de propriétés, notamment les propriétés supplémentaires de déploiement en mode silencieux, quittez le script de déploiement et mettez à jour le fichier sur le disque. Parmi les exemples de propriétés supplémentaires se trouve la mise à jour de ALLOWED_PRIVILEGED_CONTAINERS=false pour exécuter uniquement des conteneurs sans privilège ou la mise à jour de K8S_AVAILABILITY_TOPOLOGY_KEY=topology.kubernetes.io/zone pour prendre en charge le déploiement d’un cluster sur plusieurs zones de disponibilité.

Lorsque vous avez spécifié tous les paramètres valides, un fichier de propriétés est enregistré dans votre répertoire de travail actuel. Utilisez ce fichier de propriétés pour automatiser les déploiements à venir ou annuler le déploiement de ArcGIS Enterprise on Kubernetes.

La dernière étape du déploiement consiste à créer votre organisation ArcGIS Enterprise.

Conseil :

Le script de déploiement utilise les commandes kubectl pour valider les conditions prérequises, tel qu’un espace de noms valide. Si la commande kubectl n’est pas en mesure de communiquer avec le cluster du fait d’un problème lié au réseau ou au pare-feu, le script de déploiement risque de ne pas répondre. Si cela se produit, terminez la commande ./deploy.sh et exécutez kubectl directement sur un terminal afin de lancer la communication avec le cluster.

Exécuter le script de déploiement en mode silencieux

Au lieu d’exécuter le script de déploiement en mode interactif, vous pouvez déployer ArcGIS Enterprise on Kubernetes en mode silencieux. Le script de déploiement est groupé à un fichier deploy.properties qui fournit un jeu de paramètres vous invitant à une entrée unique dans votre déploiement ArcGIS Enterprise on Kubernetes.

  1. Sur votre machine cliente Kubernetes, ouvrez un terminal en tant qu’administrateur.
  2. Remplacez le répertoire par celui sur lequel se trouvent votre script de déploiement et le fichier deploy.properties.
  3. Ouvrez le fichier deploy.properties.
  4. Reportez-vous aux commentaires de description dans le fichier pour obtenir un résumé des entrées utilisateur et fournir des valeurs pour chaque paramètre figurant dans le fichier.

    Le fichier contient les sections suivantes :

    • Plateforme de déploiement
    • Espace de noms
    • Fichier de clé de chiffrement
    • Registre de conteneur
    • Nom du domaine complet
    • Certificat TLS
    • Propriétés supplémentaires
  5. Enregistrez le fichier. Vous pouvez aussi renommer le fichier.
  6. Dans le terminal, exécutez l’outil password-encrypt.sh pour générer des mots de passe chiffrés à utiliser dans le fichier deploy.properties.
  7. Sur le terminal, exécutez le script de déploiement sous le format de commande suivant :
    ./deploy.sh -f <user_properties>
    

Le contenu de <user properties> provient du fichier deploy.properties.

Avant de déployer ArcGIS Enterprise on Kubernetes, le script de déploiement vérifie que votre système répond à la configuration système requise et que vous avez fourni une entrée valide pour chaque paramètre figurant dans le fichier deploy.properties.

La dernière étape du déploiement consiste à créer votre organisation ArcGIS Enterprise.

Propriétés supplémentaires de déploiement en mode silencieux

Le fichier deploy.properties contient des propriétés supplémentaires pouvant être utilisées lors du déploiement en mode silencieux. Les valeurs par défaut de chacune d’elles sont fournies.

ALLOWED_PRIVILEGED_CONTAINERS=true : si vous ne pouvez pas exécuter un conteneur privilégié, définissez cette valeur sur false. Ce faisant, vous devez également exécuter la commande # "sysctl -w vm.max_map_count=262144" en tant qu’utilisateur racine pour élever vm.max_map_count à la valeur 262144 sur tous les nœuds de votre cluster.

CONTAINER_IMAGE_PULL_POLICY="Always" : lorsque de nouveaux conteneurs sont démarrés, la propriété ImagePullPolicy détermine si une nouvelle image de conteneur est extraite du registre du conteneur. La valeur par défaut est "Always" et extrait une nouvelle image chaque fois qu’un conteneur démarre. Si vous voulez qu’une nouvelle image ne soit extraite que lorsqu’il n’en existe aucune, définissez cette valeur sur "IfNotPresent".

INGRESS_HSTS_ENABLED=false : le protocole HSTS (HTTP Strict Transport Security) ajoute une couche de sécurité au trafic Web de votre organisation. Par défaut, le protocole HSTS est défini sur false. Pour activer HSTS, définissez cette valeur sur true.

INGRESS_SSL_PROTOCOLS="TLSv1.2 TLSv1.3" : définit les protocoles SSL à utiliser. La valeur par défaut est "TLSv1.2 TLSv1.3". Si des versions TLS supplémentaires doivent être autorisées, spécifiez-les à cet emplacement.

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" : cette propriété définit la liste des suites cryptographiques SSL à activer. Si des suites cryptographiques supplémentaires sont nécessaires, spécifiez-les à cet emplacement.

K8S_CLUSTER_DOMAIN="cluster.local" : si vous possédez un suffixe de domaine de cluster personnalisé pour les services et les pods (par exemple, organisation.com), vous pouvez utiliser cette propriété pour autoriser ArcGIS Enterprise on Kubernetes à utiliser votre suffixe de domaine de cluster. La valeur par défaut est cluster.local.

K8S_AVAILABILITY_TOPOLOGY_KEY="kubernetes.io/hostname" : si vous déployez ArcGIS Enterprise on Kubernetes et que votre cluster Kubernetes couvre trois zones de disponibilité ou plus, remplacez "kubernetes.io/hostname" par "topology.kubernetes.io/zone" ou l’étiquette de topologie du domaine personnalisé. Pour plus d’informations sur les déploiements sur plusieurs zones de disponibilité, reportez-vous à la rubrique Administration d’un cluster Kubernetes sur plusieurs zones de disponibilité.

INGRESS_SERVICE_USE_CLUSTER_IP=false  : pour utiliser les fonctionnalités du système d’équilibrage de la charge 7 des couches via un contrôleur Ingress préexistant, vous devez définir cette valeur comme true. Définir cette valeur comme true entraîne le remplacement de la valeur définie pour le paramètre INGRESS_TYPE.

Après la mise à jour des paramètres requis pour le cluster de votre organisation dans le fichier des propriétés de déploiement, déployez ArcGIS Enterprise on Kubernetes à l’aide de la commande suivante :

./deploy.sh -f <user_properties>