Configuración de MobileFirst Application Center 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 estas instrucciones para configurar una instancia de MobileFirst Application Center 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 Application Center 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 MobileFirst Application Center 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-IF201708220656.

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

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-mfp-appcenter

  • Dockerfile-mfp-appcenter: Documento de texto que contiene todos los mandatos necesarios para crear la imagen de MobileFirst Application Center.
  • 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 Application Center 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.
  • Carpeta usr-mfp-appcenter:
    • Carpeta bin folder: Contiene el archivo de script (mfp-appcenter-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 utiliza MobileFirst Application Center.
    • 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.
    • appcentersqldb.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
    APPCENTER_SERVER_HTTPPORT 9080* El puerto utilizado para las solicitudes HTTP de cliente. Utilice -1 para inhabilitar este puerto.
    APPCENTER_SERVER_HTTPSPORT 9443* El puerto utilizado para las solicitudes HTTP de cliente protegidas con SSL (HTTPS). Utilice -1 para inhabilitar este puerto.
    APPCENTER_ROOT applicationcenter La raíz de contexto en la que estarán disponibles los servicios de administración de MobileFirst Application Center.
    APPCENTER_CONSOLE_ROOT appcenterconsole La raíz de contexto en la que estará disponible la consola de MobileFirst Application Center.
    APPCENTER_ADMIN_GROUP appcenteradmingroup El nombre del grupo de usuarios que tiene asignado el rol appcenteradmin predefinido.
    APPCENTER_USER_GROUP appcenterusergroup El nombre del grupo de usuarios que tiene asignado el rol appcenteruser predefinido.

    Cerrar sección
  • 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.

Cerrar sección

Requisitos previos

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

Configuración de MobileFirst Application Center 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).

prepareappcenterdbs.properties

MobileFirst Application Center 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).
    • APPCENTER_DB_SRV_NAME: El nombre de su instancia de servicio de dashDB, para almacenar los datos de Appcenter.
  • APPCENTER_SCHEMA_NAME: Su nombre de esquema para los datos de Appcenter. El valor predeterminado es APPCNTR.
  • Nota: Si su instancia de servicio de base de datos DB2 la comparten muchos usuarios o varios despliegues de MobileFirst Application Center, asegúrese de que proporciona nombres de esquema exclusivos.

prepareappcenter.properties

  • SERVER_IMAGE_TAG - Una etiqueta para la imagen. Debe tener el formato: registry-url/namespace/image:tag.
  • Por ejemplo: registry.ng.bluemix.net/myuniquenamespace/myappcenter: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 MobileFirst Application Center en IBM Containers: Modo interactivo
    ./initenv.sh
    Modo no interactivo
    ./initenv.sh args/initenv.properties
  2. prepareappcenterdbs.sh - Prepare la base de datos de MobileFirst Application Center
    El script prepareappcenterdbs.sh se utiliza para configurar MobileFirst Application Center 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
    ./prepareappcenterdbs.sh
    Modo no interactivo
    ./prepareappcenterdbs.sh args/prepareappcenterdbs.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. prepareappcenter.sh - Prepare una imagen de MobileFirst Application Center
    Ejecute el script prepareappcenter.sh para crear la imagen de MobileFirst Application Center y enviarla 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
    ./prepareappcenter.sh
    Modo no interactivo
    ./prepareappcenter.sh args/prepareappcenter.properties
  5. Despliegue MobileFirst Application Center 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. 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.
    3. Cree los despliegues de Kubernetes
      Edite el archivo yaml args/mfp-deployment-appcenter.yaml y rellene los detalles. Se deben sustituir todas las variables por sus valores antes de ejecutar el mandato kubectl.
      ./args/mfp-deployment-appcenter.yaml contiene el despliegue para lo siguiente:
      • un despliegue de kubernetes para MobileFirst Application Center que consta de 1 instancia (réplica), con una memoria de 1024 MB y CPU de 1 núcleo.
      • un servicio de kubernetes para MobileFirst Application Center.
      • un ingreso para toda la configuración que incluya todos los puntos finales REST para MobileFirst Application Center.
      • un configMap para que las variables de entorno estén disponibles en las instancias de MobileFirst Application Center instance.
      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/mfpappcenter:latest: Utilice los mismos nombres que ha utilizado en prepareappcenter.sh para subir la imagen.
      Ejecute el mandato siguiente:
      kubectl create -f ./args/mfp-deployment-appcenter.yaml
      Nota:
      Se proporcionan los siguientes archivos yaml de plantilla:
      • mfp-deployment-appcenter.yaml: Despliega MobileFirst Application Center con http.
      • mfp-deployment-appcenter-with-tls.yaml: Despliega MobileFirst Application Center con https.
      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.

Eliminar el contenedor de IBM Cloud

Cuando elimina un contenedor de IBM Cloud, también debe eliminar el nombre de imagen del registro.
Ejecute los mandatos siguientes para eliminar un contenedor desde IBM Cloud:

  1. cf ic ps (Lista los contenedores que se están ejecutando)
  2. cf ic stop container_id (Detiene el contenedor)
  3. cf ic rm container_id (Elimina el contenedor)

Ejecute los siguientes mandatos cf ic para eliminar un nombre de imagen del registro de IBM Cloud:

  1. cf ic images (Lista las imágenes del registro)
  2. cf ic rmi image_id (Elimina la imagen del registro)

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 mfp-deployment-appcenter.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 prepareappcenterdbs.sh durante la configuración de la imagen de MobileFirst Application Center, se crean las configuraciones y tablas de base de datos necesarias para MobileFirst Application Center. 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 prepareappcenterdbs.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 prepareappcenterdbs.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