Despliegue de Mobile Foundation en Red Hat OpenShift Container Platform en IBM Cloud

improve this page | report issue

Requisitos previos

A continuación se muestran los requisitos previos antes de iniciar el proceso de instalación de la instancia de Mobile Foundation.

Pasos para el despliegue de Mobile Foundation en el clúster de Red Hat OpenShift en IBM Cloud

Siga los pasos que se describen en esta sección para desplegar el paquete de Mobile Foundation OpenShift Container Platform (OCP) en el clúster de Red Hat OpenShift en IBM Cloud.

  1. Envíela imagen a su registro privado y cree un secreto que se puede utilizar en el momento de la extracción de la imagen.

    a. Inicie sesión en IBM Cloud.

    ibmcloud login
    

    b. Inicie sesión en el registro de Docker interno de OpenShift ejecutando los mandatos siguientes.

    # Create a route from the terminal to the docker registry
    oc create route reencrypt --service=docker-registry -n default
    oc get route docker-registry -n default
    
    # login into the OpenShift internal container registry
    docker login -u $(oc whoami) -p $(oc whoami -t) <docker-registry-url>
    

    Por ejemplo:

    $ oc get route docker-registry -n default
    NAME              HOST/PORT                                              PATH      SERVICES          PORT       TERMINATION   WILDCARD
    docker-registry   docker-registry-default.-xxxx.appdomain.cloud    docker-registry                   5000-tcp   reencrypt     None
    
    $ docker login -u $(oc whoami) -p $(oc whoami -t) docker-registry-default.-xxxx.appdomain.cloud
    Login Succeeded
    

    c. Desempaquete el archivo PPA en un directorio de trabajo (por ejemplo, mfoskpg) y cargue las imágenes de IBM Mobile Foundation localmente.

    mkdir mfospkg
    tar xzvf IBM-MobileFoundation-Openshift-Pak-<version>.tar.gz -C mfospkg/
    
    cd mfospkg/images
    ls * | xargs -I{} docker load --input {}
    export MFOS_PROJECT=<my_namespace>
    export CONTAINER_REGISTRY_URL=<docker-registry-url>    # e.g. docker-registry-default.-xxxx.appdomain.cloud
    

    d. Cargue y envíe las imágenes al registro de OpenShift desde la máquina local.

    cd <workdir>/images
    ls * | xargs -I{} docker load --input {}
    
    for file in * ; do
    docker tag ${file/.tar.gz/} $CONTAINER_REGISTRY_URL/$MFOS_PROJECT/${file/.tar.gz/}
    docker push $CONTAINER_REGISTRY_URL/$MFOS_PROJECT/${file/.tar.gz/}
    done
    

    NOTA IMPORTANTE: A partir de aquí, para acceder a las imágenes del contenedor desde el registro interno de OpenShift utilice el url de imagen como docker-registry.default.svc:5000/<project_name>/<image_name>:<image_tag>.

  2. Cree un proyecto de OpenShift.

    a. Abra el panel de control de clúster de OpenShift desde IBM Cloud.

    b. Vaya al separador Acceso y siga el conjunto de instrucciones rápidas para acceder a la consola de OpenShift.

    c. Pulse el botón Consola web de OpenShift en la página del clúster para abrir la consola de OpenShift.

    d. Cree un proyecto de OpenShift en la consola web. (Alternativamente, puede crear un proyecto utilizando la CLI de oc. Consulte la documentación.

  3. Despliegue el operador.

    a. Asegúrese de que la imagen del operador de MF (mf-operator) etiquetada esté establecida para el operador en deploy/operator.yaml. (Sustituya el marcador REPO_URL por el URL del registro interno del contenedor openshift. Por ejemplo, docker-registry.default.svc:5000/myprojectname/mf-operator:1.0.1)

    b. Asegúrese de que el nombre del proyecto OpenShift esté establecido para la definición del enlace de rol de clúster en deploy/cluster_role_binding.yaml. (Sustituya el marcador REPLACE_NAMESPACE).

    c. Ejecute los mandatos siguientes para desplegar el operador e instalar las Restricciones de contexto de seguridad (SCC).

      oc create -f deploy/crds/charts_v1_mfoperator_crd.yaml
      oc create -f deploy/
    
      # Use your own <project_name> while running the command
      oc adm policy add-scc-to-group mf-operator system:serviceaccounts:<project_name>
    

    Esto crea y ejecuta el pod mf-operator. Liste los pods y asegúrese de que el pod se ha creado correctamente. La salida es similar a la siguiente.

     $ oc get pods
     NAME                           READY     STATUS    RESTARTS   AGE
     mf-operator-5db7bb7w5d-b29j7   1/1       Running   0          1m
    
  4. Cree el secreto del despliegue de IBM Mobile Foundation para acceder a la base de datos.

    Consulte la documentación aquí.

  5. Cree el volumen persistente y la reclamación de volumen para Analytics.

    Consulte la documentación aquí.

  6. Despliegue los componentes de IBM Mobile Foundation.

    Para desplegar cualquiera de los componentes de Mobile Foundation, modifique los valores de los recursos personalizados adecuados en deploy/crds/charts_v1_mfoperator_cr.yaml.

    a. Establezca el url del repositorio en deploy/crds/charts_v1_mfoperator_cr.yaml sustituyendo el marcador REPO_URL, por ejemplo, docker-registry.default.svc:5000/myprojectname/mfpf-server:2.0.1.

    b. [OPCIONAL] Si el registro de imágenes está fuera del clúster OpenShift, añada el pullSecret al archivo deploy/crds/charts_v1_mfoperator_cr.yaml. La definición del secreto puede ser similar al siguiente fragmento de código de ejemplo.

    image:
      pullPolicy: IfNotPresent
      pullSecret: pull-secret-name
    

    Consulte la documentación aquí para completar el resto de las configuraciones, tal como réplicas, escalado, propiedades de BD, etc.

  7. Cree o actualice el recurso personalizado. Este paso crea y ejecuta los pods para el componente Mobile Foundation completo en el archivo CR yaml.

     oc apply -f deploy/crds/charts_v1_mfoperator_cr.yaml
    

    Ejecute el mandato siguiente y asegúrese de que los pods se crean y ejecutan correctamente. En un escenario de despliegue donde Mobile Foundation Server y Push están habilitados con 3 réplicas cada uno (valor predeterminado), la salida es similar a la siguiente.

     $ oc get pods
     NAME                           READY     STATUS    RESTARTS   AGE
     mf-operator-5db7bb7w5d-b29j7   1/1       Running   0          1m
     mfpf-server-2327bbewss-3bw31   1/1       Running   0          1m 20s
     mfpf-server-29kw92mdlw-923ks   1/1       Running   0          1m 21s
     mfpf-server-5woxq30spw-3bw31   1/1       Running   0          1m 19s
     mfpf-push-2womwrjzmw-239ks     1/1       Running   0          59s
     mfpf-push-29kw92mdlw-882pa     1/1       Running   0          52s
     mfpf-push-1b2w2s973c-983lw     1/1       Running   0          52s
    

    NOTA: Si el estado de ejecución de los pods es (1/1) significa que están disponibles para su acceso.

  8. Compruebe si se han creado las rutas para acceder a los puntos finales de Mobile Foundation ejecutando el mandato siguiente.

     $ oc get routes
     NAME                                      HOST/PORT               PATH        SERVICES             PORT      TERMINATION   WILDCARD
     ibm-mf-cr-1fdub-mfp-ingress-57khp   myhost.mydomain.cloud   /imfpush          ibm-mf-cr--mfppush     9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-8skfk   myhost.mydomain.cloud   /mfpconsole       ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-dqjr7   myhost.mydomain.cloud   /doc              ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-ncqdg   myhost.mydomain.cloud   /mfpadminconfig   ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-x8t2p   myhost.mydomain.cloud   /mfpadmin         ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-xt66r   myhost.mydomain.cloud   /mfp              ibm-mf-cr--mfpserver   9080                    None
    

Acceso a la consola de los componentes de IBM Mobile Foundation

Los siguientes son los puntos finales para acceder a las consolas de los componentes de Mobile Foundation

  • Mobile Foundation Server Administration Console - http://<ingress_subdomain>/mfpconsole
  • Operational Analytics Console - http://<ingress_subdomain>/analytics/console
  • Application Center Console - http://<ingress_subdomain>/appcenterconsole

Desinstalar

Se puede utilizar los pasos siguientes para la limpieza del despliegue.

  • Suprima el recurso personalizado (CR) y la definición de recurso personalizado (CRD) utilizando los pasos siguientes.

      oc delete -f deploy/crds/charts_v1_mfoperator_cr.yaml
      oc delete -f deploy/
      oc delete -f deploy/crds/charts_v1_mfoperator_crd.yaml
      oc patch crd/ibmmf.charts.helm.k8s.io -p '{"metadata":{"finalizers":[]}}' --type=merge
    

Información adicional

Para solucionar de forma alternativa un problema de escritura de datos de analítica en el volumen persistente, para Mobile Foundation Analytics utilizando File Storage en IBM Cloud, ejecute el mandato siguiente.

oc run perms-pod --overrides='
{
        "spec": {
            "containers": [
                {
                    "command": [
                        "/bin/sh",
                        "-c",
                        "mkdir -p /opt/ibm/wlp/usr/servers/mfpf-analytics/analyticsData && chown -R 1001:0 /opt/ibm/wlp/usr/servers/mfpf-analytics/analyticsData"
                    ],
                    "image": "alpine:3.2",
                    "name": "perms-pod",
                    "volumeMounts": [{
                        "mountPath": "/opt/ibm/wlp/usr/servers/mfpf-analytics/analyticsData",
                        "name": "pvc-data"
                    }]
                }
            ],
            "volumes": [
                {
                    "name": "pvc-data",
                    "persistentVolumeClaim": {
                        "claimName": "<pvc-name>"
                    }
                }
            ]
        }
}
'  --image=notused --restart=Never
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 June 29, 2020