For LINUX platforms[16.0.0.3 and later]

Configuration de clusters configurables Liberty dans des conteneurs Docker ou des serveurs Node.js

Vous pouvez configurer une collectivité pour qu'elle accepte les déploiements autonomes d'un serveur Liberty dans un conteneur Docker ou d'un serveur Node.js. Le contrôleur de mise à l'échelle peut installer les logiciels Liberty sur un hôte enregistré et créer un nouveau serveur. Il peut aussi démarrer ou arrêter les serveurs déployés en fonction de l'utilisation des ressources et de règles de mise à l'échelle optionnelles. Le nombre de serveurs disponibles augmente lorsque la demande d'applications est élevée et il diminue lorsque la demande d'applications est faible.

Procédure

  1. Effectuez les actions décrites dans Configuration de clusters à mise à l'échelle automatique pour l'élasticité JVM.

    Multimédia Regarder : La vidéo Configuring a Liberty auto-scalable cluster for JVM elasticity offre une démonstration de la procédure à suivre. [Retranscription]

  2. Assurez-vous qu'un membre de cluster dynamique existant appartient au cluster qui sera utilisé dans le fichier nom_package.deploy.xml à placer dans la structure de répertoires stackGroups.

    Ce membre de cluster doit être du même type que le membre qui sera déployé selon la définition dans le fichier nom_package.deploy.xml. Par exemple, si la pile prévue est Docker, il doit y avoir un membre Liberty Docker.

    nom_package est le nom du package serveur auquel le contrôleur de mise à l'échelle va donner les accès sur les hôtes cible. Pour plus d'informations sur le package, consultez l'étape 5.

  3. Facultatif : Ajoutez des règles de mise à l'échelle sur le contrôleur de mise à l'échelle. Voir Définition de règles de mise à l'échelle.
  4. Enregistrez chaque hôte cible auprès d'un contrôleur de mise à l'échelle.

    L'enregistrement d'un hôte permet au contrôleur de mise à l'échelle de transférer les fichiers sur cet hôte, mais aussi d'accéder aux fichiers, aux commandes et à d'autres ressources sur l'hôte. Utilisez la commande registerHost pour enregistrer un hôte cible. Consultez le fichier server.xml du contrôleur de mise à l'échelle pour trouver les valeurs des paramètres --host, --port, --user et --password. Pour ne pas utiliser un fichier de clé privée, comme pour les hôtes cible sous Linux ou Windows, incluez un nom d'utilisateur et un mot de passe de système d'exploitation Windows en définissant les paramètres --rpcUser et --rpcUserPassword. L'utilisateur spécifié par --rpcUser doit disposer de droits de système d'exploitation sur l'emplacement de déploiement cible.

    wlp/bin/collective registerHost targetHost --host=controllerHost --port=controllerHTTPSPort --user=controllerAdmin --password=controllerAdminPassword --rpcUser=osUser --rpcUserPassword=osUserPassword

    Si un hôte est déjà enregistré, vous pouvez utiliser la commande updateHost pour réinitialiser les informations d'enregistrement. Si l'hôte cible se trouve sur le même ordinateur que l'hôte contrôleur, vous devez également exécuter la commande updateHost pour l'hôte contrôleur. Pour plus d'informations, voir Enregistrement des ordinateurs hôte auprès d'une collectivité Liberty.

  5. Créez un fichier nommé nom_package.deploy.xml qui configure les règles de déploiement pour une opération DeployService.

    Vous pouvez ajouter des paires nom/valeur fixant les valeurs des variables d'entrée des règles de déploiement.

    <deploy>
       <useRule id="rule_ID" />
       <variable name="aName" value="aValue" />
       ...
    </deploy>

    Pour rule_ID, spécifiez l'id d'une règle de déploiement fournie par Liberty ou spécifiez l'id de votre propre règle de déploiement. Le fichier nom_package.deploy.xml va dans le répertoire packages du groupe de pile (étape 7).

    Pour les noms et les valeurs des variables, utilisez l'élément inputVariables défini dans la règle de déploiement.

    Pour les serveurs Node.js, consultez les informations à propos du contenu et de l'emplacement des applications .tgz à l'étape 2, dans Déploiement des serveurs Node.js à l'aide des API REST de déploiement.

  6. Définissez un nom d'utilisateur et un mot de passe pour le contrôleur de collectivité dans le fichier server.xml du contrôleur de mise à l'échelle.
    <collectiveController user="adminUser" password="adminPassword" />
  7. Placez le fichier nom_package.deploy.xml dans l'emplacement WLP_STACK_GROUPS_DIR, qui est par défaut $WLP_USER_DIR/shared/stackGroups.

    Les contrôleurs de mise à l'échelle surveillent l'emplacement des packages par défaut dans le système de fichiers et réagissent dynamiquement aux mises à jour. Si vous placez le fichier dans l'emplacement par défaut, vous n'avez pas besoin de changer les attributs par défaut.

    Vous pouvez utiliser le groupe de pile par défaut, defaultStackGroup. Vous pouvez aussi créer votre propre sous-répertoire de stackGroups, par exemple myStackGroup, et y ajouter le sous-répertoire packages.

    wlp/usr
          /servers
          /shared
             ...
             /stackGroups
                /defaultStackGroup
                   /installables
                   /packages
                /myStackGroup
                   /packages

    Le contrôleur de mise à l'échelle utilise le fichier pour créer un nouveau serveur sur un hôte enregistré.

    Conseil : Un nouveau serveur est créé uniquement si la règle de mise à l'échelle est activée et requiert un nouveau serveur. Pour forcer un contrôleur de mise à l'échelle à créer un serveur, ajustez la valeur min et éventuellement la valeur max de la règle de mise à l'échelle pour le contrôleur de mise à l'échelle. Par exemple, si votre contrôleur de mise à l'échelle ne comporte pas de règle de mise à l'échelle et que votre collectivité comporte trois membres de mise à l'échelle, ajoutez au fichier server.xml du contrôleur de mise à l'échelle un règle forçant le contrôleur de mise à l'échelle à avoir au moins quatre membres en cours d'exécution :
    <scalingDefinitions>
       <defaultScalingPolicy enabled="true" min="4" max="6"/>
    </scalingDefinitions>

    La convention de dénomination de cluster pour l'élasticité Liberty est StackGroupName.PackageName. Lorsqu'une pile est déployée, <clusterMember name="StackGroupname.PackageName" est automatiquement défini dans le fichier server.xml du serveur déployé. L'élément <scalingPolicy> correspondant inclut une instruction <bind clusters="StackGroupName.Packagename"/>. Cependant, les règles de déploiement fournies par Liberty pour Docker et Node.js vous permettent de donner n'importe quelle valeur à clusterName.

  8. Examinez les variables de déploiement et révisez-les selon nécessité pour votre environnement.

    L'élément enfant deployVariable spécifie une variable de substitution qui est injectée dans la pile déployée. Vous pouvez indiquer que la variable de substitution s'incrémente automatiquement à chaque déploiement de la pile. Par exemple, utilisez un attribut deployVariable afin d'indiquer une valeur de numéro de port initiale et incrémenter cette valeur à chaque déploiement. L'objectif de l'attribut deployVariable dans cette situation est d'éviter des conflits de port sur l'hôte cible.

    Fixez les variables de déploiement pour une image Docker comme décrit à l'étape 1c de Déploiement de conteneurs Docker à l'aide des API REST de déploiement.

    Fixez les variables de déploiement pour un déploiement de serveur Node.js comme décrit à l'étape 3 de Déploiement des serveurs Node.js à l'aide des API REST de déploiement.

  9. Facultatif : Modifiez l'intervalle auquel le contrôleur de mise à l'échelle recherche des ajouts et des suppressions de groupe de pile sur le système de fichiers.

    Le contrôleur de mise à l'échelle analyse le contenu du répertoire stackGroups et ses sous-répertoires à la recherche de modifications. En cas de modifications de contenu, il est possible que le contrôleur mette à disposition des clusters qui précédemment ne comportaient pas de packages disponibles. La mise à jour de packages n'entraîne pas de type de comportement.

    Par défaut, le contrôleur examine l'emplacement WLP_STACK_GROUPS_DIR location toutes les 5000 millisecondes (cinq secondes). Pour modifier l'intervalle d'examen ou désactiver cet examen, définissez de nouvelles valeurs pour les attributs scanningInterval et scanningEnable dans le fichier server.xml du contrôleur de mise à l'échelle. Par exemple, pour définir l'intervalle d'examen sur six secondes et activer l'examen, ajoutez une instruction semblable à la suivante dans le fichier server.xml du contrôleur de mise à l'échelle :

    <stackManager groupsDir="${wlp.install.dir}/usr/shared/stackGroups/"
                  controllerUser="adminUser" controllerUserPassword="adminPassword"
                  scanningInterval="6000" scanningEnable="true">
    </stackManager>

    Pour désactiver l'examen, définissez scanningEnable sur false.

  10. Facultatif : Demandez au contrôleur de mise à l'échelle de rechercher les ajouts, mises à jour et suppressions de groupe de pile sur le système de fichiers.

    Exécutez une opération de bean géré StackManager afin de forcer le contrôleur de mise à l'échelle à rechercher des ajouts, mises à jour et suppressions à l'emplacement WLP_STACK_GROUPS_DIR. Même si le contrôleur de mise à l'échelle server.xml comporte la valeur scanningEnable="false", vous pouvez exécuter une opération de bean géré StackManager MBean afin de forcer la recherche des ajouts, mises à jour et suppressions.

    Pour plus de détails sur le bean géré StackManager, voir List of provided MBeans.

  11. Facultatif : Démarrez IHS pour activer le routage vers des serveurs.

    Pour qu'IBM HTTP Server (IHS) effectue une reconnaissance et un routage vers des applications Web sur des clusters mis à disposition de façon dynamique, activez le routage dynamique sur l'hôte sur lequel doit résider le contrôleur de mise à l'échelle. IHS extraie les informations de routage pour les serveurs mis à disposition depuis le service de routage dynamique. Si le statut du serveur est activé, vous pouvez afficher les informations de routage.

    Si vous n'avez pas installé IHS, voir Configuration de la fonction de routage dynamique pour les collectivités Liberty. En outre, la vidéo suivante montre comment installer le support du routage dynamique à l'aide d'IBM Installation Manager:

    Multimédia Regarder : La vidéo Enabling IHS for Liberty Dynamic Routing montre comment installer IHS, comment installer Web Server Plug-in for WebSphere Application Server et comment appliquer le correctif temporaire pour le routage dynamique. [Retranscription]


Icône indiquant le type de rubrique Rubrique Tâche

Nom du fichier : twlp_autoscale_deployxml.html