Configuración de MobileFirst Server en IBM Cloud Kubernetes Cluster mediante scripts

improve this page | report issue


Nota: Se recomienda utilizar Helm para desplegar software en Kubernetes Cluster. Obtenga información sobre cómo desplegar Mobile Foundation en IBM Cloud Kubernetes Cluster mediante gráficos Helm.

Visión general

Siga las instrucciones siguientes para configurar una instancia de MobileFirst Server, así como una instancia de MobileFirst Analytics en IBM Cloud. Para llevarlo a cabo, realice los pasos siguientes:

  • Cree un tipo de Kubernetes Cluster: Estándar (clúster de pago).
  • Configure el sistema host con las herramientas necesarias (Docker, Cloud Foundry CLI ( cf ), IBM Cloud CLI ( bx ), Container Service Plugin for IBM Cloud CLI ( bx cs ), Container Registry Plugin for IBM Cloud CLI ( bx cr ), Kubernetes CLI (kubectl)].
  • Cree una imagen Docker de MobileFirst Server y envíela por push al repositorio de IBM Cloud.
  • Finalmente, ejecutará la imagen de Docker en Kubernetes Cluster.

Nota:

  • Actualmente el sistema operativo Windows no está soportado para ejecutar estos scripts.
  • Las herramientas de configuración de MobileFirst Server no se pueden utilizar para despliegues en IBM Containers.

Ir a:

Registrar una cuenta en IBM Cloud

Si todavía no tiene una cuenta, vaya al sitio web de IBM Cloud y pulse Iniciación gratuita o Iniciar sesión. Debe rellenar un formulario de registro para ir al paso siguiente.

Panel de control de IBM Cloud

Después de iniciar sesión en IBM Cloud, se le presentará el panel de control de IBM Cloud, que proporciona una visión general del espacio activo de IBM Cloud. De forma predeterminada, esta área de trabajo recibe el nombre de “dev”. Puede crear varios espacios o áreas de trabajo, si es necesario.

Configurar la máquina host

Para gestionar los contenedores y las imágenes, debe instalar las herramientas siguientes:

  • Docker
  • CLI de IBM Cloud (bx)
  • CLI de Container Service Plugin for IBM Cloud ( bx cs )
  • CLI de Container Registry Plugin for IBM Cloud ( bx cr )
  • CLI de Kubernetes (kubectl)

Consulte la documentación de IBM Cloud para obtener información acerca de los pasos para configurar CLI de requisito previo.

Crear y configurar Kubernetes Cluster con IBM Cloud Container Service

Consulte la documentación de IBM Cloud para configurar Kubernetes Cluster en IBM Cloud.

Nota: Tipo de Kubernetes Cluster: Se requiere Estándar (clúster de pago) para desplegar Mobile Foundation.

Descargar el archivo ibm-mfpf-container-8.0.0.0

Para configurar Mobile Foundation como Kubernetes Cluster utilizando contenedores de IBM Cloud, en primer lugar, debe crear una imagen que posteriormente se enviará mediante push a IBM Cloud.
Se pueden obtener los arreglos internos para MobileFirst Server en IBM Containers en IBM Fix Central.
Descargue el arreglo temporal más reciente desde Fix central. El soporte de Kubernetes está disponible en iFix 8.0.0.0-IF201707051849.

El archivo contiene los archivos para crear una imagen (dependencies y mfpf-libs) y los archivos para compilar y desplegar un MobileFirst Server y MobileFirst Analytics en Kubernetes (bmx-kubenetes).

Imagen que muestra la estructura del sistema de archivos del archivo comprimido

carpeta bmx-kubernetes

Contiene los archivos de personalización y los scripts necesarios para desplegar Kubernetes Cluster con IBM Cloud Container Service.

Dockerfile-mfpf-analytics y Dockerfile-mfpf-server

  • Dockerfile-mfpf-server: Documento de texto que contiene todos los mandatos necesarios para crear la imagen de MobileFirst Server.
  • Dockerfile-mfpf-analytics: Documento de texto que contiene todos los mandatos necesarios para crear la imagen de MobileFirst Analytics.
  • Carpeta scripts: Esta carpeta contiene la carpeta args que incluye un conjunto de archivos de configuración. También contiene los scripts necesarios para iniciar sesión en IBM Cloud, crear una imagen de MobileFirst Server/MobileFirst Analytics para enviarla por push y ejecutar la imagen en IBM Cloud. Puede optar por ejecutar los scripts de forma interactiva o configurar previamente los archivos de configuración, como se describe más adelante. Aparte de los archivos args/*.properties personalizables, no modifique ningún elemento de esta carpeta. Para obtener ayuda sobre el uso de scripts, utilice los argumentos de línea de mandatos -h o --help, por ejemplo, scriptname.sh --help.
  • Carpetas usr-mfpf-server y usr-mfpf-analytics:
    • Carpeta bin: contiene el archivo de script (mfp-init) que se ejecuta cuando se inicia el contenedor. Puede añadir su propio código personalizado para ejecutarlo.
    • Carpeta config: Contiene los fragmentos de configuración del servidor (almacén de claves, propiedades del servidor, registro de usuarios) que utilizan MobileFirst Server/MobileFirst Analytics.
    • keystore.xml - la configuración del repositorio de los certificados de seguridad que se utilizan para el cifrado SSL. Debe hacerse referencia a los archivos listados en la carpeta ./usr/security.
    • ltpa.xml - el archivo de configuración que define la clave LTPA y su contraseña.
    • mfpfproperties.xml - propiedades de configuración para MobileFirst Server y MobileFirst Analytics. Consulte las propiedades soportadas en estos temas de la documentación:
    • mfpfsqldb.xml - Definición de origen de datos JDBC para conectar con la base de datos DB2 o dashDB.
    • registry.xml - configuración del registro de usuarios. La configuración de basicRegistry (de forma predeterminada, se proporciona una configuración de registro de usuarios básico basado en XML). Se pueden configurar los nombres de usuarios y las contraseñas para basicRegistry o puede configurar ldapRegistry.
    • tracespec.xml - La especificación de rastreo para habilitar la depuración, así como los niveles de registro.
  • Carpeta jre-security: Puede actualizar los archivos relacionados con la seguridad JRE (almacén de claves, archivos JAR de políticas, etc.) colocándolos en esta carpeta. Los archivos de esta carpeta se copian en la carpeta JAVA_HOME/jre/lib/security/ del contenedor.
  • Carpeta security: Se utiliza para los archivos del almacén de claves, el almacén de confianza y las claves LTPA (ltpa.keys).
  • Carpeta env: Contiene las propiedades del entorno que se utilizan para la inicialización del servidor (server.env) y las opciones de JVM personalizadas (jvm.options).

  • Propiedad Valor predeterminado Descripción
    MFPF_SERVER_HTTPPORT 9080* El puerto utilizado para las solicitudes HTTP de cliente. Utilice -1 para inhabilitar este puerto.
    MFPF_SERVER_HTTPSPORT 9443* El puerto utilizado para las solicitudes HTTP de cliente protegidas con SSL (HTTPS). Utilice -1 para inhabilitar este puerto.
    MFPF_ADMIN_ROOT mfpadmin La raíz de contexto en la que estarán disponibles los servicios de administración de MobileFirst Server.
    MFPF_CONSOLE_ROOT mfpconsole La raíz de contexto en la que estarán disponibles los servicios de administración de MobileFirst Operations Console.
    MFPF_ADMIN_GROUP mfpadmingroup El nombre del grupo de usuarios que tiene asignado el rol mfpadmin predefinido.
    MFPF_DEPLOYER_GROUP mfpdeployergroup El nombre del grupo de usuarios que tiene asignado el rol mfpdeployer predefinido.
    MFPF_MONITOR_GROUP mfpmonitorgroup El nombre del grupo de usuarios que tiene asignado el rol mfpmonitor predefinido.
    MFPF_OPERATOR_GROUP mfpoperatorgroup El nombre del grupo de usuarios que tiene asignado el rol mfpoperator predefinido.
    MFPF_SERVER_ADMIN_USER WorklightRESTUser El usuario administrador del servidor Liberty para los servicios de administración de MobileFirst Server.
    MFPF_SERVER_ADMIN_PASSWORD mfpadmin. Asegúrese de que cambia el valor predeterminado por una contraseña privada antes del despliegue a un entorno de producción. La contraseña del usuario administrador del servidor Liberty para los servicios de administración de MobileFirst Server.

    Propiedad Valor predeterminado Descripción
    ANALYTICS_SERVER_HTTP PORT 9080* El puerto utilizado para las solicitudes HTTP de cliente. Utilice -1 para inhabilitar este puerto.
    ANALYTICS_SERVER_HTTPS PORT 9443* El puerto utilizado para las solicitudes HTTP de cliente. Utilice -1 para inhabilitar este puerto.
    ANALYTICS_ADMIN_GROUP analyticsadmingroup El nombre del grupo de usuarios que tiene asignado el rol worklightadmin predefinido.

  • Carpeta dependencies: Contiene el tiempo de ejecución de Mobile Foundation junto con IBM Java JRE 8.
  • Carpeta mfpf-libs: Contiene las bibliotecas de componentes del producto MobileFirst y CLI.

Requisitos previos

Debe tener conocimientos para trabajar con Kubernetes. Consulte los documentos de Kubernetes, para obtener más información.

Configuración de MobileFirst y Analytics Servers en Kubernetes Cluster con IBM Containers

Como se ha descrito anteriormente, puede optar por ejecutar los scripts de forma interactiva o utilizar los archivos de configuración:

  • Utilización de los archivos de configuración - Ejecute los scripts y pase el archivo de configuración respectivo como un argumento.
  • Interactivamente - Ejecute los scripts sin argumentos.

Nota: Si opta por ejecutar los scripts de forma interactiva, puede omitir la configuración, pero se le recomienda que lea y comprenda los argumentos que deberá proporcionar.

Cuando ejecuta de forma interactiva, se guarda una copia de los argumentos proporcionados en un directorio: ./recorded-args/. De este modo, puede utilizar la modalidad interactiva la primera vez y reutilizar los archivos de propiedades como una referencia para despliegues futuros.

La carpeta args contiene un conjunto de archivos de configuración que contiene los argumentos necesarios para ejecutar los scripts. Rellene los valores de los argumentos en los archivos siguientes:

initenv.properties

  • IBM_CLOUD_API_URL - Zona geográfica o región en que desea realizar el despliegue.
    Por ejemplo: api.ng.bluemix.net para la región de EE.UU. o api.eu-de.bluemix.net para Alemania o api.au-syd.bluemix.net para Sydney
  • IBM_CLOUD_ACCOUNT_ID - Su ID de cuenta, que es un valor alfanumérico, como a1b1b111d11e1a11d1fa1cc999999999
    Utilice el mandato bx target para obtener el ID de cuenta.
  • IBM_CLOUD_USER - Su nombre de usuario de IBM Cloud (correo electrónico).
  • IBM_CLOUD_PASSWORD - Su contraseña de IBM Cloud.
  • IBM_CLOUD_ORG - El nombre de su organización de IBM Cloud.
  • IBM_CLOUD_SPACE - Su espacio IBM Cloud (como se ha descrito anteriormente).

prepareserverdbs.properties

El servicio de Mobile Foundation requiere una instancia de DB2 en Cloud.
Nota: También puede utilizar su propia base de datos DB2. IBM Cloud Kubernetes Cluster se debe configurar para su conexión con la base de datos.
Después de configurar la instancia de DB2, proporcione los argumentos necesarios:
  • DB_TYPE - dashDB ( si utiliza DB2 on Cloud ) o DB2 si utiliza su propia base de datos DB2.
  • Proporcione lo siguiente si utiliza su propia base de datos DB2 (por ejemplo, DB_TYPE=DB2).
    • DB2_HOST - Nombre de host de su configuración de DB2.
    • DB2_DATABASE - Nombre de la base de datos.
    • DB2_PORT - Puerto en el que se conectará a la base de datos.
    • DB2_USERNAME - El usuario de la base de datos DB2 (el usuario debe tener los permisos para crear tablas en el esquema proporcionado o, si el esquema no existe todavía, el usuario debe poder crear un esquema)
    • DB2_PASSWORD - La contraseña del usuario de DB2.
  • Proporcione lo siguiente si utiliza DB2 on Cloud (por ejemplo, DB_TYPE=dashDB).
    • ADMIN_DB_SRV_NAME - El nombre de su instancia de servicio de dashDB, para almacenar los datos de administrador.
    • RUNTIME_DB_SRV_NAME - El nombre de su instancia de servicio de dashDB, para almacenar los datos de tiempo de ejecución. El valor predeterminado es el nombre de servicio de administración.
    • PUSH_DB_SRV_NAME - El nombre de su instancia de servicio de dashDB, para almacenar los datos de tiempo de ejecución. El valor predeterminado es el nombre de servicio de administración.
  • ADMIN_SCHEMA_NAME - Su nombre de esquema para los datos de administrador. El valor predeterminado es MFPDATA.
  • RUNTIME_SCHEMA_NAME - Su nombre de esquema para los datos de tiempo de ejecución. El valor predeterminado es MFPDATA.
  • PUSH_SCHEMA_NAME - Su nombre de esquema para los datos de tiempo de ejecución. El valor predeterminado es MFPDATA.
  • Nota: Si su instancia de servicio de base de datos DB2 la comparten muchos usuarios o varios despliegues de Mobile Foundation, asegúrese de que proporciona nombres de esquema exclusivos.

prepareserver.properties

  • SERVER_IMAGE_TAG - Una etiqueta para la imagen. Debe tener el formato: registry-url/namespace/image:tag.
  • ANALYTICS_IMAGE_TAG - Una etiqueta para la imagen. Debe tener el formato: registry-url/namespace/image:tag.
  • Por ejemplo: registry.ng.bluemix.net/myuniquenamespace/mymfpserver:v1
    Si todavía no ha creado un espacio de nombres de registro, cree el espacio de nombres de registro utilizando uno de estos mandatos:
    • bx cr namespace-add myuniquenamespace
    • bx cr namespace-list

Las siguientes instrucciones muestran cómo ejecutar los scripts utilizando los archivos de configuración. También está disponible una lista de argumentos de línea de mandatos, si opta por ejecutarlos fuera del modo interactivo:

  1. initenv.sh – Inicio de sesión en IBM Cloud
    Ejecute el script initenv.sh para crear un entorno para compilar y ejecutar Mobile Foundation en IBM Containers: Modo interactivo
    ./initenv.sh
    Modo no interactivo
    ./initenv.sh args/initenv.properties
  2. prepareserverdbs.sh - Prepare la base de datos de MobileFirst Server
    El script prepareserverdbs.sh se utiliza para configurar MobileFirst Server con el servicio de base de datos DB2. La instancia de servicio del servicio DB2 debe estar disponible en la organización y espacio en que ha iniciado sesión en el paso 1. Ejecute lo siguiente: Modo interactivo
    ./prepareserverdbs.sh
    Modo no interactivo
    ./prepareserverdbs.sh args/prepareserverdbs.properties
  3. initenv.sh (Opcional) – Inicio de sesión en IBM Cloud
    Este paso solo es necesario si necesita crear contenedores en una organización y espacio diferentes a aquellos en los que está disponible la instancia de servicio de DB2. Si es así, actualice initenv.properties con la nueva organización y espacio donde se han de crear (e iniciar) los contenedores, y vuelva a ejecutar el script initenv.sh:
    ./initenv.sh args/initenv.properties
  4. prepareserver.sh - Preparar una imagen de MobileFirst Server
    Ejecute el script prepareserver.sh para crear las imágenes de MobileFirst Server y de MobileFirst Analytics y enviarlas mediante push al repositorio de IBM Cloud. Para ver todas las imágenes disponibles en el repositorio de IBM Cloud, ejecute: bx cr image-list
    La lista contiene el nombre, la fecha de creación y el ID de la imagen.
    Modo interactivo
    ./prepareserver.sh
    Modo no interactivo
    ./prepareserver.sh args/prepareserver.properties
  5. Despliegue MobileFirst Server y MobileFirst Analytics en contenedores Docker en Kubernetes Cluster utilizando IBM Cloud Container Service.
    1. Establezca el contexto del terminal en su clúster
      bx cs cluster-config my-cluster
      Para averiguar el nombre del clúster, ejecute el mandato siguiente:
      bx cs clusters
      En la salida, la vía de acceso del archivo de configuración se muestra como un mandato para establecer la variable de entorno, por ejemplo:
      export KUBECONFIG=/Users/ibm/.bluemix/plugins/container-service/clusters/my-cluster/kube-config-prod-dal12-my-cluster.yml
      Copie y pegue el mandato anterior, después de sustituir my-cluster por el nombre de clúster, establezca la variable de entorno de su terminal y pulse Intro.
    2. [Mandatory for MobileFirst Analytics]: Cree una Reclamación de volumen persistente. Esto se utilizará para la persistencia de datos de Analytics. Este es un paso de una sola vez. Puede reutilizar PVC si ya ha lo ha creado anteriormente. Edite el archivo yaml args/mfpf-persistent-volume-claim.yaml y, a continuación, ejecute el mandato. Se deben sustituir todas las variables por sus valores antes de ejecutar el mandato kubectl siguiente.
      kubectl create -f ./args/mfpf-persistent-volume-claim.yaml
      Anote el nombre de la Reclamación de volumen persistente, ya que deberá proporcionarlo en el paso siguiente.
    3. Para obtener su dominio de ingreso, ejecute el mandato siguiente:
      bx cs cluster-get my-cluster
      Anote el dominio de ingreso. Si necesita configurar TLS, anote el secreto de ingreso.
    4. Cree los despliegues de Kubernetes
      Edite el archivo yaml args/mfpf-deployment-all.yaml y rellene los detalles. Se deben sustituir todas las variables por sus valores antes de ejecutar el mandato kubectl.
      ./args/mfpf-deployment-all.yaml contiene el despliegue para lo siguiente:
      • un despliegue de kubernetes para MobileFirst Server que consta de 3 instancias (réplicas), con una memoria de 1024 MB y CPU de 1 núcleo.
      • un despliegue de kubernetes para MobileFirst Analytics que consta de 2 instancias (réplicas), con una memoria de 1024 MB y CPU de 1 núcleo.
      • un servicio de kubernetes para MobileFirst Server.
      • un servicio de kubernetes para MobileFirst Analytics.
      • un ingreso para toda la configuración que incluya todos los puntos finales REST para MobileFirst Server y MobileFirst Analytics.
      • un configMap para que las variables de entorno estén disponibles en las instancias de MobileFirst Server y de MobileFirst Analytics.
      Los valores siguientes se deben editar en el archivo YAML:
      1. Las diferentes apariciones de my-cluster.us-south.containers.mybluemix.net con la salida del Dominio de ingreso de la salida del mandato bx cs cluster-get, como se ha indicado anteriormente.
      2. registry.ng.bluemix.net/repository/mfpfanalytics:latest y registry.ng.bluemix.net/repository/mfpfserver:latest - Utilice los mismos nombres que ha utilizado en prepareserver.sh para subir las imágenes.
      3. claimName: mfppvc - Utilice el nombre de Reclamación de volumen persistente que ha utilizado anteriormente para crear PVC.
      Ejecute el mandato siguiente:
      kubectl create -f ./args/mfpf-deployment-all.yaml
      Nota:
      Se proporcionan los siguientes archivos yaml de plantilla:
      • mfpf-deployment-all.yaml: Despliega MobileFirst Server y MobileFirst Analytics con http.
      • mfpf-deployment-all-tls.yaml: Despliega MobileFirst Server y MobileFirst Analytics con https.
      • mfpf-deployment-server.yaml: Despliega MobileFirst Server con http.
      • mfpf-deployment-analytics.yaml: Despliega MobileFirst Analytics con http.
      Después de su creación, para utilizar el panel de control de Kubernetes, ejecute el siguiente mandato:
      kubectl proxy
      Abra localhost:8001/ui, en su navegador.

Ahora, con MobileFirst Server ejecutándose en IBM Cloud, puede iniciar el desarrollo de su aplicación. Revise las Mobile Foundation guías de aprendizaje.

Aplicar arreglos de MobileFirst Server

Los arreglos temporales para MobileFirst Server en IBM Containers se pueden obtener en IBM Fix Central.
Antes de aplicar un arreglo temporal, realice una copia de seguridad de los archivos de configuración existentes. Los archivos de configuración se encuentran en las carpetas siguientes:

  • MobileFirst Analytics: package_root/bmx-kubernetes/usr-mfpf-analytics
  • MobileFirst Server Liberty Cloud Foundry Application: package_root/bmx-kubernetes/usr-mfpf-server

Pasos para aplicar iFix:

  1. Descargue el archivo de arreglo temporal y extraiga el contenido en la carpeta de instalación existente, sobrescribiendo los archivos existentes.
  2. Restaure los archivos de configuración de copia de seguridad en las carpetas package_root/bmx-kubernetes/usr-mfpf-server y package_root/bmx-kubernetes/usr-mfpf-analytics, sobrescribiendo los archivos de configuración instalados recientemente.
  3. Edite el archivo package_root/bmx-kubernetes/usr-mfpf-server/env/jvm.options en su editor y elimine la siguiente línea, si existe:
    -javaagent:/opt/ibm/wlp/usr/servers/mfp/newrelic/newrelic.jar”
    

    Ahora puede compilar y desplegar el servidor actualizado.

    a. Ejecute el script prepareserver.sh para volver a crear la imagen del servidor y enviarla mediante push al servicio IBM Containers.

    b. Realice una actualización acumulativa ejecutando el mandato siguiente: kubectl rolling-update NAME -f FILE

Eliminar los despliegues de Kubernetes de IBM Cloud

Ejecute los mandatos siguientes para eliminar las instancias desplegadas de IBM Cloud Kubernetes Cluster:

kubectl delete -f mfpf-deployment-all.yaml (Elimina todos los tipos de kubernetes definidos en el archivo yaml)

Ejecute los siguientes mandatos para eliminar el nombre de imagen del registro de IBM Cloud:

bx cr image-list (Lista las imágenes del registro)
bx cr image-rm image-name (Elimina la imagen del registro)

Eliminar la configuración del servicio de base de datos de IBM Cloud

Si ha ejecutado el script prepareserverdbs.sh durante la configuración de la imagen de MobileFirst Server, se crean las configuraciones y tablas de base de datos necesarias para MobileFirst Server. Este script también crea el esquema de base de datos para el contenedor.

Para eliminar la configuración del servicio de base de datos desde IBM Cloud, realice el siguiente procedimiento utilizando el panel de control de IBM Cloud.

  1. En el panel de control de IBM Cloud, seleccione el servicio DB2 on Cloud que ha utilizado. Seleccione el nombre del servicio DB2 on Cloud que ha proporcionado como un parámetro cuando ejecutaba el script prepareserverdbs.sh.
  2. Inicie la consola de DB2 para trabajar con los esquemas y los objetos de base de datos de la instancia de servicio DB2 seleccionada.
  3. Seleccione los esquemas relacionados con la configuración de IBM MobileFirst Server. Los nombres de esquemas son los que ha proporcionado durante la ejecución del script prepareserverdbs.sh.
  4. Suprima cada esquema después de inspeccionar detenidamente los nombres de esquemas y los objetos que se encuentran debajo de los mismos. Las configuraciones de base de datos se eliminan de IBM Cloud.
Inclusive terminology note: The Mobile First Platform team is making changes to support the IBM® initiative to replace racially biased and other discriminatory language in our code and content with more inclusive language. While IBM values the use of inclusive language, terms that are outside of IBM's direct influence are sometimes required for the sake of maintaining user understanding. As other industry leaders join IBM in embracing the use of inclusive language, IBM will continue to update the documentation to reflect those changes.
Last modified on May 13, 2020