Despliegue de Mobile Foundation en Red Hat OpenShift Container Platform existente

improve this page | report issue

Obtenga información sobre cómo instalar la instancia de Mobile Foundation en un clúster de OpenShift utilizando IBM Mobile Foundation Operator.

Hay dos formas de obtener la titularidad para OpenShift Container Platform (OCP).

  • Tiene la titularidad para IBM Cloud Pak for Applications, que incluye la titularidad de OpenShift Container Platform.
  • Tiene una plataforma OpenShift Container existente (adquirida desde Red Hat).

Los pasos para desplegar Mobile Foundation en OCP son los mismos independientemente de cómo haya obtenido la titularidad de OCP.

Requisitos previos

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

  • Clúster de OpenShift v3.11 o superior.
  • Herramientas del cliente de OpenShift (oc).
  • Instalar y configurar Docker.
  • Mobile Foundation requiere una base de datos. Cree una base de datos soportada y conserve los detalles de acceso a la base de datos para utilizarlos más adelante. Consulte aquí.
  • Mobile Foundation Analytics requiere que el volumen de almacenamiento esté montado para los datos de Analytics persistentes (se recomienda NFS).

Arquitectura

La imagen siguiente muestra la arquitectura interna de los servicios móviles en Red Hat OpenShift.

Arquitectura

Instalación de una instancia de IBM Mobile Foundation

Descargue el paquete de IBM Mobile Foundation

Descargue el paquete de IBM Mobile Foundation para Openshift desde IBM Passport Advantage (PPA). Desempaquete el archivo en un directorio denominado workdir.

NOTA: Consulte aquí si desea validar el paquete PPA y verificar la firma.

Uso de las imágenes de Mobile Foundation desde el registro autorizado

Además de cargar las imágenes PPA en el registro de imágenes interno de OpenShift o en cualquier otro registro externo, se pueden utilizar las imágenes del registro autorizado (ER).

  1. Obtenga una clave para el registro autorizado. Después del pedido de IBM Cloud Pak for Applications, su cuenta de MyIBM se asocia a una clave de autorización para el software de Cloud Pak. Obtenga la clave de autorización que se ha asignado a su ID.
    • Inicie sesión en MyIBM Container Software Library con su IBMid y contraseña, que están asociados al software autorizado.
    • En la sección Claves de autorización, seleccione Copiar clave para copiar la clave de autorización en el portapapeles.
  2. Extraiga la configuración de la instalación de la imagen del instalador en el registro autorizado.
    Utilizando una línea de mandatos, ejecute los mandatos siguientes.
    • Establezca la información del registro de autorización. Ejecute los mandatos export que establecen lo siguiente: ENTITLED_REGISTRYen cp.icr.io, ENTITLED_REGISTRY_USER en cp y ENTITLED_REGISTRY_KEY en la clave de autorización obtenida en el paso siguiente.
       export ENTITLED_REGISTRY=cp.icr.io
       export ENTITLED_REGISTRY_USER=cp
       export ENTITLED_REGISTRY_KEY=<apikey>
      
    • Asegúrese de que puede iniciar sesión en el registro autorizado con el mandato docker login siguiente.
       docker login "$ENTITLED_REGISTRY" -u "$ENTITLED_REGISTRY_USER" -p "$ENTITLED_REGISTRY_KEY"
      
  3. Genere un secreto de extracción de imagen utilizando los detalles del registro autorizado.
    • Utilice el mandato siguiente:
      oc create secret docker-registry -n <my_project_name> er-image-pullsecret --docker-server=cp.icr.io --docker-username=<my_username> --docker-password=<my_api_key>
      
    • Añada los secretos de envío para los archivos deploy/operator.yaml y deploy/crds/charts_v1_mfoperator_cr.yaml.

Configure el proyecto OpenShift para Mobile Foundation

  1. Inicie sesión en el clúster de OpenShift y cree un nuevo proyecto.
    export MFOS_PROJECT=<project-name>
    oc login -u <username> -p <password> <cluster-url>
    oc new-project $MFOS_PROJECT
    
  2. Desempaquete el paquete de IBM Mobile Foundation para Openshift utilizando el mandato siguiente.
      tar xzvf IBM-MobileFoundation-Openshift-Pak-<version>.tar.gz -C <workdir>/
    
  3. Cargue y envíe las imágenes al registro de OpenShift desde el sistema local.
     docker login -u <username> -p $(oc whoami -t) $(oc registry info)
     cd <workdir>/images
     ls * | xargs -I{} docker load --input {}
    
     for file in * ; do
       docker tag ${file/.tar.gz/} $(oc registry info)/$MFOS_PROJECT/${file/.tar.gz/}
       docker push $(oc registry info)/$MFOS_PROJECT/${file/.tar.gz/}
     done
    
  4. Cree un secreto con credenciales de base de datos.

     cat <<EOF | oc apply -f -
     apiVersion: v1
     data:
       MFPF_ADMIN_DB_USERNAME: <base64-encoded-string>
       MFPF_ADMIN_DB_PASSWORD: <base64-encoded-string>
       MFPF_RUNTIME_DB_USERNAME: <base64-encoded-string>
       MFPF_RUNTIME_DB_PASSWORD: <base64-encoded-string>
       MFPF_PUSH_DB_USERNAME: <base64-encoded-string>
       MFPF_PUSH_DB_PASSWORD: <base64-encoded-string>
       MFPF_LIVEUPDATE_DB_USERNAME: <base64-encoded-string>
       MFPF_LIVEUPDATE_DB_PASSWORD: <base64-encoded-string>
       MFPF_APPCNTR_DB_USERNAME: <base64-encoded-string>
       MFPF_APPCNTR_DB_PASSWORD: <base64-encoded-string>
     kind: Secret
     metadata:
       name: mobilefoundation-db-secret
     type: Opaque
     EOF
    

    NOTA: Se puede obtener una serie codificada utilizando echo -n <string-to-encode> | base64.

  5. Para Mobile Foundation Analytics, configure un volumen persistente (PV).
     cat <<EOF | kubectl apply -f -
     apiVersion: v1
     kind: PersistentVolume
     metadata:
       labels:
         name: mfanalyticspv  
       name: mfanalyticspv
     spec:
       capacity:
         storage: 20Gi
       accessModes:
         - ReadWriteMany
       persistentVolumeReclaimPolicy: Retain
       nfs:
         path: <nfs-mount-volume-path>
         server: <nfs-server-hostname-or-ip>
     EOF
    
  6. Para Mobile Foundation Analytics, configure una reclamación de volumen persistente (PVC).

    cat <<EOF | kubectl apply -f -
     apiVersion: v1
     kind: PersistentVolumeClaim
     metadata:
       name: mfanalyticsvolclaim
       namespace: <projectname-or-namespace>
     spec:
       accessModes:
         - ReadWriteMany
       resources:
         requests:
           storage: 20Gi
       selector:
         matchLabels:
           name: mfanalyticspv
       volumeName: mfanalyticspv
     EOF
    

NOTA: Antes de desplegar Analíticas, compruebe si el estado de PV y PVC es enlazado.

Despliegue IBM Mobile Foundation Operator

  1. Asegúrese de que el nombre de la imagen de Operator (mf-operator) etiquetado esté establecido para el operador en deploy/operator.yaml (REPO_URL).

     sed -i 's|REPO_URL|<image-repo-url>:<image-tag>|g' deploy/operator.yaml
    
  2. Asegúrese de que el espacio de nombres esté establecido para la definición de enlace de rol del clúster en deploy/cluster_role_binding.yaml (REPLACE_NAMESPACE).

     sed -i 's|REPLACE_NAMESPACE|$MFOS_PROJECT|g' deploy/cluster_role_binding.yaml
    

    Para el distintivo de imagen del operador 1.0.11 y posterior, utilice el mandato siguiente.

     sed -i 's|REPLACE_NAMESPACE|$MFOS_PROJECT|g' deploy/role_binding.yaml
    
  3. Ejecute los mandatos siguientes para desplegar CRD, el operador y para instalar las Restricciones de contexto de seguridad (SCC).

     oc create -f deploy/crds/charts_v1_mfoperator_crd.yaml
     oc create -f deploy/
     oc adm policy add-scc-to-group mf-operator system:serviceaccounts:$MFOS_PROJECT
    

    Para el distintivo de imagen del operador 1.0.11 y posterior, utilice los mandatos siguientes.

     oc create -f deploy/crds/charts_v1_mfoperator_crd.yaml
     oc create -f deploy/
     oc adm policy add-scc-to-group mf-operator system:serviceaccounts:$MFOS_PROJECT
     oc adm policy add-cluster-role-to-user cluster-admin system:serviceaccount:$MFOS_PROJECT:mf-operator
    

Despliegue los componentes de IBM Mobile Foundation

  1. Para desplegar cualquiera de los componentes de Mobile Foundation, modifique la configuración de los recursos personalizados deploy/crds/charts_v1_mfoperator_cr.yaml, en función de sus requisitos. Puede encontrar referencias completas sobre la configuración personalizada aquí.

    NOTA IMPORTANTE: Para acceder a las instancias de Mobile Foundation después del despliegue, es necesario configurar el nombre de host de ingress. Asegúrese de que ingress esté configurado en la configuración de recursos personalizados. Consulte este enlace sobre la configuración del mismo..

     oc apply -f deploy/crds/charts_v1_mfoperator_cr.yaml
    
  2. 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.

  3. 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.com   /imfpush          ibm-mf-cr--mfppush     9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-8skfk   myhost.mydomain.com   /mfpconsole       ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-dqjr7   myhost.mydomain.com   /doc              ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-ncqdg   myhost.mydomain.com   /mfpadminconfig   ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-x8t2p   myhost.mydomain.com   /mfpadmin         ibm-mf-cr--mfpserver   9080                    None
     ibm-mf-cr-1fdub-mfp-ingress-xt66r   myhost.mydomain.com   /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_hostname>/mfpconsole
  • Operational Analytics Console - http://<ingress_hostname>/analytics/console
  • Application Center Console - http://<ingress_hostname>/appcenterconsole

Desinstalar

Utilice los mandatos siguientes para realizar una limpieza posterior a la instalación.

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

Referencias adicionales

  1. Configuración de las bases de datos de Mobile Foundation
  2. Utilización de Oracle (o) MySQL como base de datos de IBM Mobile Foundation
  3. Parámetros de configuración de recursos para Mobile Foundation
  4. Casos de ejemplo para habilitar Ingress
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