For LINUX platforms[16.0.0.3 and later]

Configuración de clústeres suministrables de Liberty en contenedores Docker o servidores Node.js

Puede configurar un colectivo para soportar despliegues autónomos de un servidor Liberty en un contenedor Docker o un servidor Node.js. El controlador de escalado puede instalar software de Liberty en un registrado registrado y crear un nuevo servidor. Además, el controlador de escalado puede iniciar o detener servidores desplegados basándose en el uso de recursos y en políticas de escalado opcionales. El número de servidores disponibles crece cuando la demanda de las aplicaciones es alta y se reduce cuando la demanda de las aplicaciones es baja.

Procedimiento

  1. Complete los pasos de Configuración de clústeres autoescalables para la elasticidad de JVM.

    Multimedia Vea: El vídeo Configuring a Liberty auto-scalable cluster for JVM elasticity demuestra los pasos. [Transcripción]

  2. Asegúrese de que un miembro de clúster dinámico existente pertenece al nombre de clúster que se utilizará en el archivo nombre_paquete.deploy.xml que se colocará en la estructura de directorios stackGroups.

    El miembro de clúster debe ser del mismo tipo de miembro que se desplegará tal como se define en el archivo nombre_paquete.deploy.xml. Por ejemplo, si la pila será Docker, debe ser un miembro Docker de Liberty.

    nombre_paquete es el nombre del paquete del servidor que proporcionará el controlador de escalado a hosts de destino. Si desea más información sobre el paquete, consulte el paso 5.

  3. Opcional: Añada políticas de escalado al controlador de escalado. Consulte la sección Definición de políticas de escalado.
  4. Registre cada host de destino con un controlador de escalado.

    El hecho de registrar un host permite al controlador de escalado transferir archivos a ese host, así como acceder a archivos, mandatos y otros recursos del host. Utilice el mandato registerHost para registrar un host de destino. Busque en el archivo server.xml del controlador de escalado los valores de los parámetros --host, --port, --user y --password. Para no utilizar un archivo de claves privado SSH, por ejemplo para los hosts de destino en los sistemas operativos Linux o Windows, incluya un usuario y una contraseña de inicio de sesión en el sistema operativo estableciendo los parámetros --rpcUser y --rpcUserPassword. El usuario especificado por --rpcUser debe tener derechos de sistema operativo sobre la ubicación de despliegue de destino.

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

    Si un host ya está registrado, puede utilizar el mandato updateHost para restablecer la información de registro. Si el host de destino se encuentra en el mismo sistema que el host de controlador, debe ejecutar también el mandato updateHost para el host de controlador. Para obtener más información, consulte Registro de sistemas principales con un colectivo de Liberty.

  5. Cree un archivo llamado nombre_paquete.deploy.xml que configura reglas de despliegue para una operación de despliegue DeployService.

    Puede añadir pares de nombre/valor que establecen valores para variables de entrada de regla de despliegue.

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

    Para rule_ID, especifique el valor de id de una regla de despliegue proporcionada por Liberty o especifique un valor de id para su propia regla de despliegue. Este archivo nombre_paquete.deploy.xml va al directorio del grupo de pilas packages (paso 7).

    Para nombres y valores de variable, utilice el valor inputVariables definido en la regla de despliegue.

    Para servidores Node.js, consulte información sobre el contenido de la aplicación .tgz y la ubicación en el paso 2 en Despliegue de servidores Node.js utilizando API REST de despliegue.

  6. Establezca un nombre de usuario y una contraseña para el controlador colectivo en el archivo server.xml del controlador de escalado.
    <collectiveController user="adminUser" password="adminPassword" />
  7. Coloque el archivo nombre_paquete.deploy.xml en la ubicación WLP_STACK_GROUPS_DIR, que, de forma predeterminada, es $WLP_USER_DIR/shared/stackGroups.

    Los controladores de escalado supervisan la ubicación del paquete predeterminada en el sistema de archivos y reaccionan dinámicamente a las actualizaciones. Si coloca el archivo en la ubicación predeterminada, no tendrá que cambiar ninguno de los atributos predeterminados.

    Puede utilizar el grupo de pilas predeterminado, defaultStackGroup. O bien puede crear su propio subdirectorio de stackGroups como, por ejemplo, myStackGroup, y añadirlo al subdirectorio packages.

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

    El controlador de escalado utiliza el archivo para crear un nuevo servidor en un host registrado.

    Consejo: Se crea un nuevo servidor solo si la política de escalado está habilitada y requiere un nuevo servidor. Para forzar a un controlador de escalado a crear un nuevo servidor, ajuste el valor min y posiblemente el valor max de la política de escalado para el controlador de escalado. Por ejemplo, si el controlador de escalado no tiene una política de escalado y el colectivo tiene tres miembros de escalado, añada al archivo server.xml del controlador de escalado una política que fuerce al controlador de escalado a tener al menos cuatro miembros en ejecución:
    <scalingDefinitions>
       <defaultScalingPolicy enabled="true" min="4" max="6"/>
    </scalingDefinitions>

    El convenio de denominación del clúster para la elasticidad de Liberty es StackGroupName.PackageName. Cuando se despliega una pila, <clusterMember name="StackGroupname.PackageName" se establece automáticamente en el archivo server.xml del servidor desplegado. El elemento <scalingPolicy> correspondiente incluye una sentencia <bind clusters="StackGroupName.Packagename"/>. Sin embargo, las reglas de despliegue proporcionadas por Liberty para Docker y Node.js le permiten establecer clusterName en cualquier valor.

  8. Examine las variables de despliegue y revíselas para el entorno.

    El elemento hijo deployVariable especifica una variable de sustitución que se inyecta en la pila desplegada. Puede especificar que la variable de sustitución se incremente automáticamente cada vez que se despliegue la pila. Por ejemplo, utilice un atributo deployVariable para especificar un valor de número de puerto inicial e incrementar el valor en cada despliegue. El objetivo de deployVariable en esta situación es evitar conflictos de puerto en el host de destino.

    Establezca las variables de despliegue para una imagen de Docker tal como se describe en el paso step 1c de Despliegue de contenedores Docker utilizando API REST de despliegue.

    Establezca las variables de despliegue para un despliegue de servidor Node.js tal como se describe en el paso 3 de Despliegue de servidores Node.js utilizando API REST de despliegue.

  9. Opcional: Cambie el intervalo con el que el controlador de escalado comprueba si existen adiciones, actualizaciones y supresiones de grupo de pilas en el sistema de archivos.

    El controlador de escalado explora el contenido del directorio stackGroups y sus subdirectorios para ver si hay cambios. Los cambios de contenido pueden hacer que el controlador suministre clústeres que anteriormente no tenían paquetes disponibles. La actualización de los paquetes no hace que el controlador suministre de nuevo clústeres existentes.

    De forma predeterminada, el controlador explora la ubicación WLP_STACK_GROUPS_DIR cada 5000 milisegundos (cinco segundos). Para cambiar el intervalo de exploración o inhabilitar la exploración, establezca valores nuevos para los atributos del gestor de pila scanningInterval y scanningEnable en el archivo server.xml del controlador de escalado. Por ejemplo, para establecer el intervalo de exploración en seis segundos y habilitar la exploración, añada una sentencia parecida a la siguiente al archivo server.xml del controlador de escalado:

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

    Para inhabilitar la exploración, establezca scanningEnable en false.

  10. Opcional: Indique al controlador de escalado que debe explorar el sistema de archivos para detectar nuevas adiciones, actualizaciones y supresiones de grupo de pilas.

    Ejecute una operación del MBean StackManager para obligar al controlador de escalado a comprobar si en la ubicación WLP_STACK_GROUPS_DIR existen adiciones, actualizaciones y supresiones de grupo de pilas. Aunque el archivo server.xml del controlador de escalado especifique scanningEnable="false", puede ejecutar una operación del MBean StackManager para forzar una exploración de adiciones, actualizaciones y supresiones.

    Consulte Lista de MBeans proporcionados para obtener información acerca del MBean StackManager.

  11. Opcional: Inicie IHS para habilitar el direccionamiento a los servidores.

    Para que IBM HTTP Server (IHS) descubra y direccione a aplicaciones web en clústeres suministrados dinámicamente, habilite el direccionamiento dinámico en el host donde residirá el controlador de escalado. IHS recuperará la información de direccionamiento para los servidores suministrados a partir del servicio de direccionamiento dinámico. Si el estado del servidor es habilitado, puede visualizar la información de direccionamiento.

    Si no tiene IHS instalado, consulte Configuración del direccionamiento dinámico para los colectivos de Liberty. Además, el vídeo siguiente muestra cómo instalar soporte para el direccionamiento dinámico mediante IBM Installation Manager:

    Multimedia Vea: El vídeo Enabling IHS for Liberty Dynamic Routing muestra cómo instalar IHS, instalar el plug-in de servidor web para WebSphere Application Server y aplicar el arreglo temporal para el direccionamiento dinámico. [Transcripción]


Icono que indica el tipo de tema Tema de tarea

Nombre de archivo: twlp_autoscale_deployxml.html