Configuración de Mobile Foundation en IBM Cloud Kubernetes Cluster mediante Helm
improve this page | report issueVisión general
Siga las instrucciones siguientes para configurar una instancia de MobileFirst Server, una instancia de , una instancia de MobileFirst Analytics y una instancia de MobileFirst Application Center en IBM Cloud Kubernetes Cluster (IKS) utilizando gráficos Helm.
A continuación se muestran los pasos básicos para comenzar:
- Complete los requisitos previos
- Descargue el archivo PPA (Passport Advantage Archive) de IBM Mobile Foundation para IBM Cloud Private
- Cargue el archivo PPA en IBM Cloud Kubernetes Cluster
- Configure e instale MobileFirst Server, MobileFirst Analytics (opcional) y MobileFirst Application Center (opcional)
Ir a:
- Requisitos previos
- Descargar el archivo Passport Advantage de IBM Mobile Foundation
- Cargar el archivo Passport Advantage de IBM Mobile Foundation
- Variables de entorno
- Instalar y configurar gráficos Helm de IBM Mobile Foundation
- Instalación de gráficos Helm
- Verificación de la instalación
- Aplicación de ejemplo
- Actualización de releases y gráficos Helm
- Desinstalar
- Resolución de problemas
Requisitos previos
Debe tener una cuenta de IBM Cloud y debe haber configurado el clúster de IBM Cloud Kubernetes.
Para gestionar los contenedores y las imágenes, instale lo siguiente en la máquina host como parte de la configuración de los plugins de la CLI de IBM Cloud:
- CLI de IBM Cloud (
ibmcloud
) - CLI de Kubernetes (
kubectl
) - Plugin de IBM Cloud Container Registry (
cr
) - Plugin de IBM Cloud Container Service (
ks
) - Instalar y configurar Docker
- Helm (
helm
) Para trabajar con el clúster Kubernetes utilizando la CLI, debe configurar el cliente ibmcloud.- Asegúrese de iniciar sesión en la página Clústeres. (Nota: la cuenta IBMid es necesaria).
- Pulse el clúster Kubernetes en el que se debe desplegar el gráfico de IBM Mobile Foundation.
- Siga las instrucciones del separador Acceso cuando se haya creado el clúster.
Nota: La creación de clúster tarda unos minutos. Cuando el clúster se haya creado correctamente, pulse el separador Nodos de trabajador y tome nota de la IP pública.
Para acceder a IBM Cloud Kubernetes Cluster mediante la CLI, debe configurar el cliente IBM Cloud. Más información.
Descargar el archivo Passport Advantage de IBM Mobile Foundation
El archivo Passport Advantage (PPA) de IBM Mobile Foundation está disponible aquí. El archivo PPA de Mobile Foundation contendrá las imágenes docker y los gráficos Helm de los componentes siguientes de Mobile Foundation:
- MobileFirst Server
- MobileFirst Push
- MobileFirst Analytics
- MobileFirst Application Center
Se utiliza un componente Inicialización de BD de MobileFirst o se facilitan las tareas de inicialización de base de datos. Esto proporciona la creación del esquema de Mobile Foundation y las tablas (si es necesario) en la base de datos (si no existe).
Cargar el archivo Passport Advantage de IBM Mobile Foundation
Siga los pasos siguientes para cargar el archivo PPA en IBM Cloud Kubernetes Cluster:
-
Inicie sesión en el clúster mediante el plugin de IBM Cloud. Consulte la [documentación de la CLI de IBM] (https://cloud.ibm.com/docs/cli?topic=cloud-cli-getting-started#overview) para obtener información sobre los mandatos.
Por ejemplo:
ibmcloud login -a cloud.ibm.com
Incluya la opción
--sso
si utiliza un ID federado. Opcionalmente, si desea omitir la validación SSL, utilice el distintivo--skip-ssl-validation
en el mandato anterior. Esto omitirá la validación de SSL de las solicitudes HTTP. El uso de este parámetro puede generar problemas de seguridad. - Inicie sesión en IBM Cloud Container Registry e inicialice Container Service mediante los mandatos siguientes:
ibmcloud cr login ibmcloud ks init
- Establezca la región del despliegue mediante el mandato siguiente (p. ej. us-south)
ibmcloud cr region-set
-
Siga los pasos siguientes para obtener acceso a su clúster -
- Descargue e instale algunas herramientas de CLI y el plugin de Kubernetes Service.
curl -sL https://ibm.biz/idt-installer | bash
- Descargue los archivos kubeconfig para el clúster.
ibmcloud ks cluster-config --cluster my_cluster_name
- Establezca la variable de entorno KUBECONFIG. Copie la salida del mandato anterior y péguela en el terminal. La salida del mandato es similar a la del ejemplo siguiente:
export KUBECONFIG=/Users/$USER/.bluemix/plugins/container-service/clusters/my_namespace/kube-config-dal10-my_namespace.yml
- Verifique que puede conectarse al clúster listando los nodos de trabajador.
kubectl get nodes
- Descargue e instale algunas herramientas de CLI y el plugin de Kubernetes Service.
- Cargue el archivo PPA de Mobile Foundation siguiendo estos pasos:
- Extraiga el archivo PPA
- Etiquete las imágenes cargadas con el espacio de nombres de registro de IBM Cloud Container y con la versión adecuada.
- Envíe la imagen
- [Opcional] Cree y envíe los archivos manifest, si los nodos de trabajador están basados en una combinación de arquitecturas (por ejemplo, amd64, ppc64le, s390x).
A continuación se muestra un ejemplo para cargar las imágenes mfpf-server y mfpf-push en los nodos de trabajador basados en la arquitectura amd64. Debe seguir el mismo proceso para mfpf-appcenter y mfpf-analytics.
# 1. Extraiga el archivo PPA mkdir -p ppatmp ; cd ppatmp tar -xvzf ibm-mobilefirst-foundation-icp.tar.gz cd ./images for i in *; do docker load -i $i;done # 2. Etiquete las imágenes cargadas con el espacio de nombres de registro de IBM Cloud Container y con la versión adecuada. docker tag mfpf-server:1.1.0-amd64 us.icr.io/my_namespace/mfpf-server:1.1.0 docker tag mfpf-dbinit:1.1.0-amd64 us.icr.io/my_namespace/mfpf-dbinit:1.1.0 docker tag mfpf-push:1.1.0-amd64 us.icr.io/my_namespace/mfpf-push:1.1.0 # 3. Envíe todas las imágenes docker push us.icr.io/my_namespace/mfpf-server:1.1.0 docker push us.icr.io/my_namespace/mfpf-dbinit:1.1.0 docker push us.icr.io/my_namespace/mfpf-push:1.1.0 # 4. Limpieza del archivo extraído rm -rf ppatmp
A continuación, se muestra un ejemplo para cargar las imágenes mfpf-server y mfpf-push en los nodos de trabajador basados en varias arquitecturas. Debe seguir el mismo proceso para mfpf-appcenter y mfpf-analytics.
# 1. Extraiga el archivo PPA mkdir -p ppatmp ; cd ppatmp tar -xvzf ibm-mobilefirst-foundation-icp.tar.gz cd ./images for i in *; do docker load -i $i;done # 2. Etiquete las imágenes cargadas con el espacio de nombres de registro de IBM Cloud Container y con la versión adecuada. ## 2.1 Etiquetado de mfpf-server docker tag mfpf-server:1.1.0-amd64 us.icr.io/my_namespace/mfpf-server:1.1.0-amd64 docker tag mfpf-server:1.1.0-s390x us.icr.io/my_namespace/mfpf-server:1.1.0-s390x docker tag mfpf-server:1.1.0-ppc64le us.icr.io/my_namespace/mfpf-server/mfpf-server:1.1.0-ppc64le ## 2.2 Etiquetado de mfpf-dbinit docker tag mfpf-dbinit:1.1.0-amd64 us.icr.io/my_namespace/mfpf-dbinit:1.1.0-amd64 docker tag mfpf-dbinit:1.1.0-s390x us.icr.io/my_namespace/mfpf-dbinit:1.1.0-s390x docker tag mfpf-dbinit:1.1.0-ppc64le us.icr.io/my_namespace/mfpf-dbinit/mfpf-dbinit:1.1.0-ppc64le ## 2.3 Etiquetado de mfpf-push docker tag mfpf-push:1.1.0-amd64 us.icr.io/my_namespace/mfpf-push:1.1.0-amd64 docker tag mfpf-push:1.1.0-s390x us.icr.io/my_namespace/mfpf-push:1.1.0-s390x docker tag mfpf-push:1.1.0-ppc64le us.icr.io/my_namespace/mfpf-push/mfpf-push:1.1.0-ppc64le # 3. Envíe todas las imágenes ## 3.1 Enviando imágenes de mfpf-server docker push us.icr.io/my_namespace/mfpf-server:1.1.0-amd64 docker push us.icr.io/my_namespace/mfpf-server:1.1.0-s390x docker push us.icr.io/my_namespace/mfpf-server/mfpf-server:1.1.0-ppc64le ## 3.3 Enviando imágenes de mfpf-dbinit docker push us.icr.io/my_namespace/mfpf-dbinit:1.1.0-amd64 docker push us.icr.io/my_namespace/mfpf-dbinit:1.1.0-s390x docker push us.icr.io/my_namespace/mfpf-dbinit/mfpf-dbinit:1.1.0-ppc64le ## 3.3 Enviando imágenes de mfpf-push docker push us.icr.io/my_namespace/mfpf-push:1.1.0-amd64 docker push us.icr.io/my_namespace/mfpf-push:1.1.0-s390x docker push us.icr.io/my_namespace/mfpf-push/mfpf-push:1.1.0-ppc64le # 4. [Opcional] Crear y enviar los manifiestos ## 4.1 Crear manifest-lists docker manifest create us.icr.io/my_namespace/mfpf-server:1.1.0 us.icr.io/my_namespace/mfpf-server:1.1.0-amd64 us.icr.io/my_namespace/mfpf-server:1.1.0-s390x us.icr.io/my_namespace/mfpf-server/mfpf-server:1.1.0-ppc64le --amend docker manifest create us.icr.io/my_namespace/mfpf-dbinit:1.1.0 us.icr.io/my_namespace/mfpf-dbinit:1.1.0-amd64 us.icr.io/my_namespace/mfpf-dbinit:1.1.0-s390x us.icr.io/my_namespace/mfpf-dbinit/mfpf-dbinit:1.1.0-ppc64le --amend docker manifest create us.icr.io/my_namespace/mfpf-push:1.1.0 us.icr.io/my_namespace/mfpf-push:1.1.0-amd64 us.icr.io/my_namespace/mfpf-push:1.1.0-s390x us.icr.io/my_namespace/mfpf-push/mfpf-push:1.1.0-ppc64le --amend ## 4.2 Anotar los manifiestos ### mfpf-server docker manifest annotate us.icr.io/my_namespace/mfpf-server:1.1.0 us.icr.io/my_namespace/mfpf-server:1.1.0-amd64 --os linux --arch amd64 docker manifest annotate us.icr.io/my_namespace/mfpf-server:1.1.0 us.icr.io/my_namespace/mfpf-server:1.1.0-s390x --os linux --arch s390x docker manifest annotate us.icr.io/my_namespace/mfpf-server:1.1.0 us.icr.io/my_namespace/mfpf-server/mfpf-server:1.1.0-ppc64le --os linux --arch ppc64le ### mfpf-dbinit docker manifest annotate us.icr.io/my_namespace/mfpf-dbinit:1.1.0 us.icr.io/my_namespace/mfpf-dbinit:1.1.0-amd64 --os linux --arch amd64 docker manifest annotate us.icr.io/my_namespace/mfpf-dbinit:1.1.0 us.icr.io/my_namespace/mfpf-dbinit:1.1.0-s390x --os linux --arch s390x docker manifest annotate us.icr.io/my_namespace/mfpf-dbinit:1.1.0 us.icr.io/my_namespace/mfpf-dbinit/mfpf-dbinit:1.1.0-ppc64le --os linux --arch ppc64le ### mfpf-push docker manifest annotate us.icr.io/my_namespace/mfpf-push:1.1.0 us.icr.io/my_namespace/mfpf-push:1.1.0-amd64 --os linux --arch amd64 docker manifest annotate us.icr.io/my_namespace/mfpf-push:1.1.0 us.icr.io/my_namespace/mfpf-push:1.1.0-s390x --os linux --arch s390x docker manifest annotate us.icr.io/my_namespace/mfpf-push:1.1.0 us.icr.io/my_namespace/mfpf-push/mfpf-push:1.1.0-ppc64le --os linux --arch ppc64le ## 4.3 Enviar la lista de manifiestos docker manifest push us.icr.io/my_namespace/mfpf-server:1.1.0 docker manifest push us.icr.io/my_namespace/mfpf-dbinit:1.1.0 docker manifest push us.icr.io/my_namespace/mfpf-push:1.1.0 # 5. Limpieza del archivo extraído rm -rf ppatmp
Nota:
- El método del mandato
ibmcloud cr ppa-archive load
no da soporte al paquete PPA con soporte de varias arquitecturas. Por lo tanto, hay que extraer y enviar el paquete manualmente al repositorio de IBM Cloud Container (los usuarios que utilicen versiones PPA más antiguas tienen que utilizar el siguiente mandato para la carga).
- Varias arquitecturas se refiere a arquitecturas que incluyen intel (amd64), power64 (ppc64le) y s390x. Solo se da soporte a varias arquitecturas a partir de ICP 3.1.1.
ibmcloud cr ppa-archive-load --archive <archive_name> --namespace <namespace> [--clustername <cluster_name>]
```
*archive_name* de Mobile Foundation es el nombre del archivo PPA descargado desde IBM Passport Advantage,
Los gráficos Helm se almacenan en el cliente o localmente (a diferencia del gráfico helm de ICP almacenado en el repositorio helm de IBM Cloud Private). Los gráficos pueden estar en el directorio `ppa-import/charts` (o charts).
## Instalar y configurar gráficos Helm de IBM Mobile Foundation
{: #configure-install-mf-helmcharts}
Antes de instalar y configurar MobileFirst Server, debe tener lo siguiente:
Esta sección resume los pasos para crear secretos.
Los objetos de secreto le permiten gestionar la información confidencial, tal como contraseñas, señales OAuth, claves ssh etc. Incluir esta información en un secreto es más seguro y flexible que hacerlo en una definición de Pod o en una imagen de contenedor.
* [**Obligatorio**] Se debe configurar una instancia de base de datos DB2 y debe estar lista para su uso. Necesitará la información de base de datos para [configurar MobileFirst Server helm](#install-hmc-icp). MobileFirst Server requiere un esquema y tablas, que se crearán (si no existen) en esta base de datos.
* [**Obligatorio**] Crear **secretos de base de datos** para el servidor, Push y el centro de aplicaciones.
En esta sección se describen los mecanismos de seguridad para controlar el acceso a la base de datos. Cree un secreto utilizando el submandato especificado y proporcione el nombre de secreto creado bajo los detalles de la base de datos.
Ejecute el fragmento de código siguiente para crear un secreto de base de datos para Mobile Foundation Server:
```bash
# Create mfpserver secret
cat <<EOF | kubectl apply -f -
apiVersion: v1
data:
MFPF_ADMIN_DB_USERNAME: encoded_uname
MFPF_ADMIN_DB_PASSWORD: encoded_password
MFPF_RUNTIME_DB_USERNAME: encoded_uname
MFPF_RUNTIME_DB_PASSWORD: encoded_password
MFPF_PUSH_DB_USERNAME: encoded_uname
MFPF_PUSH_DB_PASSWORD: encoded_password
kind: Secret
metadata:
name: mfpserver-dbsecret
type: Opaque
EOF
Ejecute el fragmento de código siguiente para crear un secreto de base de datos para el centro de aplicaciones
# create appcenter secret
cat <<EOF | kubectl apply -f -
apiVersion: v1
data:
APPCNTR_DB_USERNAME: encoded_uname
APPCNTR_DB_PASSWORD: encoded_password
kind: Secret
metadata:
name: appcenter-dbsecret
type: Opaque
EOF
NOTA: Puede codificar los detalles de nombre de usuario y contraseña utilizando el mandato siguiente -
export $MY_USER_NAME=<myuser>
export $MY_PASSWORD=<mypassword>
echo -n $MY_USER_NAME | base64
echo -n $MY_PASSWORD | base64
-
[Obligatorio] Se requiere un Secreto de inicio de sesión creado previamente para el inicio de sesión en el servidor, Analytics y Application Center. Por ejemplo:
kubectl create secret generic serverlogin --from-literal=MFPF_ADMIN_USER=admin --from-literal=MFPF_ADMIN_PASSWORD=admin
Para Analytics.
kubectl create secret generic analyticslogin --from-literal=ANALYTICS_ADMIN_USER=admin --from-literal=ANALYTICS_ADMIN_PASSWORD=admin
Para Application Center.
kubectl create secret generic appcenterlogin --from-literal=APPCENTER_ADMIN_USER=admin --from-literal=APPCENTER_ADMIN_PASSWORD=admin
NOTA: Si no se proporcionan estos secretos, se crean con el nombre de usuario y contraseña predeterminados de admin/admin durante el despliegue del gráfico helm de Mobile Foundation
-
[Opcional] Puede proporcionar su propio almacén de claves y almacén de confianza al despliegue del servidor, Push, Analytics y Application Center creando un secreto con su propio almacén de claves y almacén de confianza.
Cree previamente un secreto con
keystore.jks
ytruststore.jks
junto con la contraseña del almacén de claves y el almacén de confianza utilizando los literales KEYSTORE_PASSWORD y TRUSTSTORE_PASSWORD, proporcione el nombre de secreto en el campo keystoreSecret del componente respectivoConserve los archivos
keystore.jks
,truststore.jks
y sus contraseñas como se indica a continuaciónPor ejemplo:
kubectl create secret generic server --from-file=./keystore.jks --from-file=./truststore.jks --from-literal=KEYSTORE_PASSWORD=worklight --from-literal=TRUSTSTORE_PASSWORD=worklight
NOTA: Los nombres de los archivos y literales deben ser los mismos que se han mencionado en el mandato anterior. Proporcione este nombre de secreto en el campo de entrada
keystoresSecretName
del componente respectivo para reemplazar los almacenes de claves predeterminados cuando configura el gráfico helm. -
[Opcional] Se pueden configurar los componentes de Mobile Foundation con el nombre de host basado en Ingress para que los clientes externos puedan conectarse a los mismos utilizando el nombre de host. Se puede proteger Ingress utilizando una clave TLS privada y un certificado. La clave privada TLS y el certificado se deben definir en un secreto con los nombres de clave
tls.key
ytls.crt
.El secreto mf-tls-secret se ha de crear en el mismo espacio de nombres que el recurso Ingress utilizando el mandato siguiente:
kubectl create secret tls mf-tls-secret --key=/path/to/tls.key --cert=/path/to/tls.crt
El nombre de host de Ingress se proporciona en el campo global.ingress.secret. Modifique values.yaml para añadir el nombre de host Ingress apropiado y el nombre de secreto de Ingress durante el despliegue del diagrama Helm.
NOTA: Evite utilizar el mismo nombre de host Ingress si ya se utilizaba en otros releases de helm.
-
[Opcional] Mobile Foundation Server está predefinido con clientes confidenciales para el servicio de administración. Las credenciales de estos clientes se proporcionan en los campos
mfpserver.adminClientSecret
ymfpserver.pushClientSecret
.Estos secretos se pueden crear del modo siguiente:
kubectl create secret generic mf-admin-client --from-literal=MFPF_ADMIN_AUTH_CLIENTID=admin --from-literal=MFPF_ADMIN_AUTH_SECRET=admin kubectl create secret generic mf-push-client --from-literal=MFPF_PUSH_AUTH_CLIENTID=admin --from-literal=MFPF_PUSH_AUTH_SECRET=admin
NOTA: Si no se proporcionan los valores para los campos
mfpserver.pushClientSecret
ymfpserver.adminClientSecret
durante el despliegue del gráfico helm de Mobile Foundation, se generan y utilizan el ID de autorización y el Secreto de cliente predeterminadosadmin/nimda
paramfpserver.adminClientSecret
ypush/hsup
paramfpserver.pushClientSecret
. -
[Obligatorio] Antes de empezar la instalación del gráfico de Mobile Foundation Analytics, configure el Volumen persistente y la Reclamación de volumen persistente según corresponda. Proporcione el volumen persistente para configurar Mobile Foundation Analytics. Siga los pasos que se describen en la documentación de IBM Cloud Kubernetes para crear un volumen persistente.
Variables de entorno
La tabla siguiente indica las variables de entorno utilizadas en la instancia de MobileFirst Server, de MobileFirst Analytics, y de MobileFirst Application Center
Calificador | Parámetro | Definición | Valor permitido | |
---|---|---|---|---|
Configuración global |
||||
arch | amd64 | Preferencia de planificador de nodos trabajadores de amd64 en un clúster híbrido | 3 - Preferido (valor predeterminado). | |
ppcle64 | Preferencia de planificador de nodos trabajadores de ppc64le en un clúster híbrido | 2 - Sin preferencia (valor predeterminado). | ||
s390x | Preferencia de planificador de nodos trabajadores de S390x en un clúster híbrido | 2 - Sin preferencia (valor predeterminado). | ||
image | pullPolicy | Política de extracción de imágenes | El valor predeterminado es IfNotPresent. | |
pullSecret | Secreto de extracción de imagen | |||
ingress | hostname | El nombre de host externo o dirección IP para que lo utilicen los clientes externos | Equilibra las cargas de trabajo de tráfico de red del clúster enviando solicitudes públicas o privadas a sus aplicaciones | |
secret | Nombre del secreto TLS | Especifica el nombre del secreto para el certificado que se ha de utilizar en la definición Ingress. El secreto se ha de crear previamente utilizando el certificado y clave relevantes. Es obligatorio si está habilitado SSL/TLS. Cree previamente el secreto con el certificado & clave antes de proporcionar el nombre aquí | ||
sslPassThrough | Habilitar passthrough SSL | Especifica si se ha de pasar la solicitud SSL mediante el servicio Mobile Foundation - la terminación de SSL se produce en el servicio Mobile Foundation. Predeterminado: false | ||
https | true | |||
dbinit | habilitado | Habilitar la inicialización de las bases de datos del servidor, Push y Centro de aplicaciones | Inicializa las bases de datos y crea esquemas y tablas para el despliegue del servidor, Push y el centro de aplicaciones.(No es necesario para las analíticas). Predeterminado: true | |
repository | Repositorios de imagen Docker para la inicialización de base de datos | Repositorio de imagen de docker de la base de datos Mobile Foundation | ||
tag | Etiqueta de imagen Docker | Consulte la descripción de la etiqueta Docker | ||
replicas | Número de instancias (pods) de Mobile Foundation DBinit que se han de crear | Entero positivo (Predeterminado: 1) | ||
Configuración del servidor MFP |
||||
mfpserver | habilitado | Distintivo para habilitar el servidor | true (predeterminado) o false | |
repository | Repositorio de imagen Docker | Repositorio de la imagen Docker de Mobile Foundation Server | ||
tag | Etiqueta de imagen Docker | Consulte la descripción de la etiqueta Docker | ||
consoleSecret | Un secreto ya creado para inicio de sesión | Consulte la sección de requisitos previos | ||
db | host | Dirección IP o nombre de host de la base de datos donde se han de configurar las tablas de Mobile Foundation Server. | IBM DB2 (predeterminado). | |
port | Puerto donde se configura la base de datos | |||
secret | Secreto ya creado que tiene credenciales de base de datos | |||
name | Nombre de la base de datos de Mobile Foundation Server | |||
schema | Esquema de bd de servidor que se ha de crear. | Si ya existe el esquema, se utilizará. De lo contrario, se creará. | ||
ssl | Tipo de conexión de base de datos | Especifique si la conexión de base de datos ha de ser http o https. El valor predeterminado es false (http). Asegúrese de que el puerto de base de datos también esté configurado para la misma modalidad de conexión. | ||
adminClientSecret | Especifique el nombre del secreto | Secreto de cliente administrador | Especifique el nombre del secreto de cliente creado. Consulte | |
pushClientSecret | Especifique el nombre del secreto | Secreto de cliente Push | Especifique el nombre del secreto de cliente creado. Consulte | |
internalConsoleSecretDetails | consoleUser: “admin” | |||
consolePassword: “admin” | ||||
internalClientSecretDetails | adminClientSecretId: admin | |||
adminClientSecretPassword: nimda | ||||
pushClientSecretId: push | ||||
pushClientSecretPassword: hsup | ||||
replicas | 3 | Número de instancias (pods) de Mobile Foundation Server que se han de crear | Entero positivo (Predeterminado: 3) | |
autoscaling | habilitado | Especifica si se despliega un HPA (Horizontal Pod Autoscaler). Tenga en cuenta que al habilitar este campo se inhabilita el campo de réplicas. | false (predeterminado) o true | |
min | Límite inferior del número de pods que puede establecer el escalador automático. | Entero positivo (predeterminado: 1) | ||
max | Límite superior del número de pods que puede establecer el escalador automático. No puede ser inferior al mín. | Entero positivo (predeterminado: 10) | ||
targetcpu | Uso promedio objetivo de CPU (representado como un porcentaje de la CPU solicitada) sobre todos los pods. | Entero entre 1 y 100 (predeterminado 50) | ||
pdb | habilitado | Especifique si se ha de habilitar/inhabilitar PDB. | true (predeterminado) o false | |
min | mínimo de pods disponibles | Entero positivo (predeterminado: 1) | ||
jndiConfigurations | mfpfProperties | Propiedades JNDI de Mobile Foundation Server para personalizar el despliegue | Especifique pares de valores de nombre separados por comas | |
keystoreSecret | Consulte la sección de configuración para crear previamente el secreto con almacenes de claves y sus contraseñas. | |||
resources | limits.cpu | Describe la cantidad máxima de CPU permitida. | El valor predeterminado es 2000m. Consulte Kubernetes - significado de CPU | |
limits.memory | Describe la cantidad de memoria máxima permitida. | El valor predeterminado es 4096Mi. Consulte Kubernetes - significado de memoria | ||
requests.cpu | Describe la cantidad mínima de CPU requerida - si no se especifica tomará el valor predeterminado del límite (si se ha especificado) o de lo contrario el valor definido por la implementación. | El valor predeterminado es 1000m. Consulte Kubernetes - significado de CPU | ||
requests.memory | Describe la cantidad mínima de memoria necesaria. Si no se especifica, el límite será el valor predeterminado de cantidad de memoria (si se ha especificado) o el valor definido por implementación. | El valor predeterminado es 2048Mi. Consulte Kubernetes - significado de memoria | ||
Configuración de MFP Push |
||||
mfppush | habilitado | Distintivo para habilitar Mobile Foundation Push | true (predeterminado) o false | |
repository | Repositorio de imagen Docker | Repositorio de la imagen Docker de Mobile Foundation Push | ||
tag | Etiqueta de imagen Docker | Consulte la descripción de la etiqueta Docker | ||
replicas | Número de instancias (pods) de Mobile Foundation Server que se han de crear | Entero positivo (Predeterminado: 3) | ||
autoscaling | habilitado | Especifica si se despliega un HPA (Horizontal Pod Autoscaler). Tenga en cuenta que al habilitar este campo se inhabilita el campo replicaCount. | false (predeterminado) o true | |
min | Límite inferior del número de pods que puede establecer el escalador automático. | Entero positivo (predeterminado: 1) | ||
max | Límite superior del número de pods que puede establecer el escalador automático. No puede ser inferior a minReplicas. | Entero positivo (predeterminado: 10) | ||
targetcpu | Uso promedio objetivo de CPU (representado como un porcentaje de la CPU solicitada) sobre todos los pods. | Entero entre 1 y 100 (predeterminado 50) | ||
pdb | habilitado | Especifique si se ha de habilitar/inhabilitar PDB. | true (predeterminado) o false | |
min | mínimo de pods disponibles | Entero positivo (predeterminado: 1) | ||
jndiConfigurations | mfpfProperties | Propiedades JNDI de Mobile Foundation Server para personalizar el despliegue | Especifique pares de valores de nombre separados por comas | |
keystoresSecretName | Consulte la sección de configuración para crear previamente el secreto con almacenes de claves y sus contraseñas. | |||
resources | limits.cpu | Describe la cantidad máxima de CPU permitida. | El valor predeterminado es 2000m. Consulte Kubernetes - significado de CPU | |
limits.memory | Describe la cantidad de memoria máxima permitida. | El valor predeterminado es 4096Mi. Consulte Kubernetes - significado de memoria | ||
requests.cpu | Describe la cantidad mínima de CPU requerida - si no se especifica tomará el valor predeterminado del límite (si se ha especificado) o de lo contrario el valor definido por la implementación. | El valor predeterminado es 1000m. Consulte Kubernetes - significado de CPU | ||
requests.memory | Describe la cantidad mínima de memoria necesaria. Si no se especifica, el límite será el valor predeterminado de cantidad de memoria (si se ha especificado) o el valor definido por implementación. | El valor predeterminado es 2048Mi. Consulte Kubernetes - significado de memoria | ||
Configuración de MFP Analytics |
||||
mfpanalytics | habilitado | Distintivo para habilitar las analíticas | false (predeterminado) o true | |
image | repository | Repositorio de imagen Docker | Repositorio de la imagen Docker de Mobile Foundation Operational Analytics | |
tag | Etiqueta de imagen Docker | Consulte la descripción de la etiqueta Docker | ||
consoleSecret | Un secreto ya creado para inicio de sesión | Consulte la sección de requisitos previos | ||
replicas | Número de instancias (pods) de Mobile Foundation Operational Analytics que se han de crear | Entero positivo (Predeterminado: 2) | ||
autoscaling | habilitado | Especifica si se despliega un HPA (Horizontal Pod Autoscaler). Tenga en cuenta que al habilitar este campo se inhabilita el campo replicaCount. | false (predeterminado) o true | |
min | Límite inferior del número de pods que puede establecer el escalador automático. | Entero positivo (predeterminado: 1) | ||
max | Límite superior del número de pods que puede establecer el escalador automático. No puede ser inferior a minReplicas. | Entero positivo (predeterminado: 10) | ||
targetcpu | Uso promedio objetivo de CPU (representado como un porcentaje de la CPU solicitada) sobre todos los pods. | Entero entre 1 y 100 (predeterminado 50) | ||
shards | Número de fragmentos Elasticsearch para Mobile Foundation Analytics | predeterminado: 2 | ||
replicasPerShard | Número de réplicas Elasticsearch que se van a mantener por cada fragmento de Mobile Foundation Analytics | predeterminado: 2 | ||
persistence | habilitado | Utilice una PersistentVolumeClaim para la persistencia de los datos | true | |
useDynamicProvisioning | Especifique una storeclass o deje el campo vacío | false | ||
volumeName | Proporcione un nombre de volumen | data-stor (predeterminado) | ||
claimName | Proporcione una PersistentVolumeClaim existente | nil | ||
storageClassName | Clase de almacenamiento de la PersistentVolumeClaim de respaldo | nil | ||
size | Tamaño del volumen de datos | 20Gi | ||
pdb | habilitado | Especifique si se ha de habilitar/inhabilitar PDB. | true (predeterminado) o false | |
min | mínimo de pods disponibles | Entero positivo (predeterminado: 1) | ||
jndiConfigurations | mfpfProperties | Propiedades JNDI de Mobile Foundation que se han de especificar para personalizar las analíticas operativas | Especifique pares de valores de nombre separados por comas | |
keystoreSecret | Consulte la sección de configuración para crear previamente el secreto con almacenes de claves y sus contraseñas. | |||
resources | limits.cpu | Describe la cantidad máxima de CPU permitida. | El valor predeterminado es 2000m. Consulte Kubernetes - significado de CPU | |
limits.memory | Describe la cantidad de memoria máxima permitida. | El valor predeterminado es 4096Mi. Consulte Kubernetes - significado de memoria | ||
requests.cpu | Describe la cantidad mínima de CPU requerida - si no se especifica tomará el valor predeterminado del límite (si se ha especificado) o de lo contrario el valor definido por la implementación. | El valor predeterminado es 1000m. Consulte Kubernetes - significado de CPU | ||
requests.memory | Describe la cantidad mínima de memoria necesaria. Si no se especifica, el límite será el valor predeterminado de cantidad de memoria (si se ha especificado) o el valor definido por implementación. | El valor predeterminado es 2048Mi. Consulte Kubernetes - significado de memoria | ||
Configuración de MFP Application Center |
||||
mfpappcenter | habilitado | Distintivo para habilitar Application Center | false (predeterminado) o true | |
image | repository | Repositorio de imagen Docker | Repositorio de la imagen Docker de Mobile Foundation Application Center | |
tag | Etiqueta de imagen Docker | Consulte la descripción de la etiqueta Docker | ||
consoleSecret | Un secreto ya creado para inicio de sesión | Consulte la sección de requisitos previos | ||
db | host | Dirección IP o nombre de host de la base de datos donde se ha de configurar la base de datos de Appcenter. | ||
port | Puerto de la base de datos | |||
name | Nombre de la base de datos que se va a utilizar | La base de datos debe crearse previamente. | ||
secret | Secreto ya creado que tiene credenciales de base de datos | |||
schema | Esquema de base de datos de Application Center que se ha de crear. | Si ya existe el esquema, se utilizará. Si no es así, se creará. | ||
ssl | Tipo de conexión de base de datos | Especifique si la conexión de base de datos ha de ser http o https. El valor predeterminado es false (http). Asegúrese de que el puerto de base de datos también esté configurado para la misma modalidad de conexión. | ||
autoscaling | habilitado | Especifica si se despliega un HPA (Horizontal Pod Autoscaler). Tenga en cuenta que al habilitar este campo se inhabilita el campo replicaCount. | false (predeterminado) o true | |
min | Límite inferior del número de pods que puede establecer el escalador automático. | Entero positivo (predeterminado: 1) | ||
max | Límite superior del número de pods que puede establecer el escalador automático. No puede ser inferior a minReplicas. | Entero positivo (predeterminado: 10) | ||
targetcpu | Uso promedio objetivo de CPU (representado como un porcentaje de la CPU solicitada) sobre todos los pods. | Entero entre 1 y 100 (predeterminado 50) | ||
pdb | habilitado | Especifique si se ha de habilitar/inhabilitar PDB. | true (predeterminado) o false | |
min | mínimo de pods disponibles | Entero positivo (predeterminado: 1) | ||
keystoreSecret | Consulte la sección de configuración para crear previamente el secreto con almacenes de claves y sus contraseñas. | |||
resources | limits.cpu | Describe la cantidad máxima de CPU permitida. | El valor predeterminado es 1000m. Consulte Kubernetes - significado de CPU | |
limits.memory | Describe la cantidad de memoria máxima permitida. | El valor predeterminado es 1024Mi. Consulte Kubernetes - significado de memoria | ||
requests.cpu | Describe la cantidad mínima de CPU requerida - si no se especifica tomará el valor predeterminado del límite (si se ha especificado) o de lo contrario el valor definido por la implementación. | El valor predeterminado es 1000m. Consulte Kubernetes - significado de CPU | ||
requests.memory | Describe la cantidad mínima de memoria necesaria. Si no se especifica, el límite será el valor predeterminado de cantidad de memoria (si se ha especificado) o el valor definido por implementación. | El valor predeterminado es 1024Mi. Consulte Kubernetes - significado de memoria |
Para ver la guía de aprendizaje sobre el análisis de registros de utilizando Kibana, consulte aquí.
Instalación de gráficos Helm
Instalación de MobileFirst Analytics
La instalación de MobileFirst Analytics es opcional. Si desea habilitar el análisis en MobileFirst Server, primero debe configurar e instalar MobileFirst Analytics, antes de instalar MobileFirst Server.
Antes de empezar la instalación, asegúrese de que ha cubierto todas las indicaciones de la sección Obligatorio en [Instalar y configurar gráficos helm de IBM Mobile Foundation](#configure-install-mf-helmcharts).
Siga los pasos siguientes para instalar y configurar IBM MobileFirst Analytics en IBM Cloud Kubernetes Cluster.
- Para configurar Kubernetes Cluster, ejecute el mandato siguiente:
ibmcloud cs cluster-config <iks-cluster-name>
- Obtenga los valores predeterminados de gráfico Helm mediante el mandato siguiente.
helm inspect values <mfp-analytics-helm-chart.tgz> > values.yaml
Ejemplo de MobileFirst Analytics:
helm inspect values ibm-mfpf-analytics-prod-2.0.0.tgz > values.yaml
- Modifique values.yaml para añadir los valores adecuados antes del despliegue del gráfico Helm. Asegúrese de que se ha añadido la información de base de datos, nombre de host ingress, secreto, etc. y guarde el archivo values.yaml.
Consulte la sección Variables de entorno para obtener más detalles.
- Para desplegar el gráfico Helm, ejecute el mandato siguiente:
helm install -n <iks-cluster-name> -f values.yaml <mfp-analytics-helm-chart.tgz>
Ejemplo de despliegue del servidor de Analytics:
helm install -n mfpanalyticsonkubecluster -f analytics-values.yaml ./ibm-mfpf-analytics-prod-2.0.0.tgz
Instalación de MobileFirst Server
Antes de empezar la instalación de MobileFirst Server, preconfigure una base de datos DB2.
Siga los pasos siguientes para instalar y configurar IBM MobileFirst Server en IBM Cloud Kubernetes Cluster.
- Configure Kubernetes Cluster:
ibmcloud cs cluster-config <iks-cluster-name>
- Obtenga los valores predeterminados de gráfico Helm mediante el mandato siguiente:
helm inspect values <mfp-server-helm-chart.tgz> > values.yaml
Ejemplo de MobileFirst Server:
helm inspect values ibm-mfpf-server-prod-2.0.0.tgz > values.yaml
-
Modifique values.yaml para añadir los valores adecuados para el despliegue del gráfico Helm. Asegúrese de que se haya añadido la información de base de datos, ingress, escalado etc. y guardado values.yaml.
- Para desplegar el gráfico Helm, ejecute el mandato siguiente.
helm install -n <iks-cluster-name> -f values.yaml <mfp-server-helm-chart.tgz>
Ejemplo de despliegue de servidor:
helm install -n mfpserveronkubecluster -f server-values.yaml ./ibm-mfpf-server-prod-2.0.0.tgz
Nota: Para instalar AppCenter los pasos anteriores deben ir seguidos del gráfico Helm correspondiente, (por ejemplo, ibm-mfpf-appcenter-prod-2.0.0.tgz.tgz).
Verificación de la instalación
Cuando haya instalado y configurado los componentes de Mobile Foundation, puede verificar su instalación y el estado de los pods desplegados utilizando la CLI de IBM Cloud, la CLI de Kubernetes y los mandatos helm.
Consulte la Referencia de mandatos de CLI en la documentación de la CLI de IBM y la CLI de Helm de la documentación de Helm.
En la página de IBM Cloud Kubernetes Cluster en IBM Cloud Portal, puede utilizar el botón Panel de control de Kubernetes para abrir la consola de Kubernetes para gestionar los artefactos de clúster.
Acceso a la consola
Una vez realizada la instalación correctamente, puede acceder a la consola operativa de IBM mediante <protocol>://<public_ip>:<node_port>/mfpconsole
.
Se puede acceder a la consola de IBM MobileFirst Analytics mediante <protocol>://<public_ip>:<port>/analytics/console
. El protocolo puede ser http
o https
. Además, tenga en cuenta que el puerto será NodePort en el caso del despliegue de NodePort. Para obtener la dirección ip y NodePort de los gráficos de instalados, siga estos pasos desde el panel de control de Kubernetes.
- Para obtener IP pública: Seleccione Kubernetes>Nodos de trabajador> bajo la dirección IP pública; tenga en cuenta la dirección IP.
- El Puerto de nodo se puede encontrar en el Panel de control de Kubernetes>. Seleccione Servicios>bajo los puntos finales internos. Tenga en cuenta la entrada para el Puerto de nodo TCP (un puerto de cinco dígitos).
Además del método NodePort para acceder a la consola, también se puede acceder al servicio mediante el host Ingress.
Siga los pasos siguientes para acceder a la consola:
- Vaya al panel de IBM Cloud.
- Elija el Clúster de Kubernetes en que se ha desplegado
Analytics/Server/AppCenter
y abra la página Visión general. - Localice el subdominio Ingress para el nombre de host ingress y acceda a las consolas de la forma siguiente.
- Acceda a la consola de IBM Mobile Foundation Operational mediante:
<protocol>://<ingress-hostname>/mfpconsole
- Acceda a la consola de IBM Mobile Foundation Analytics mediante:
<protocol>://<ingress-hostname>/analytics/console
- Acceda a la consola de IBM Mobile Foundation Application Center mediante:
<protocol>://<ingress-hostname>/appcenterconsole
- Acceda a la consola de IBM Mobile Foundation Operational mediante:
- El soporte de servicios SSL está inhabilitado de forma predeterminada en ingress nginx. Es posible que observe la conectividad durante el acceso a la consola mediante https. Siga los pasos siguientes para habilitar los servicios SSL en ingress -
- En la página IBM Cloud Kubernetes Cluster, inicie el panel de control de Kubernetes
- En el panel lateral izquierdo, pulse la opción Ingresses
- Seleccione el nombre de Ingress
- Pulse el botón Editar en la parte superior derecha
- Modifique el archivo yaml y añada la anotación ssl-services Ejemplo :
"annotations": { "ingress.bluemix.net/ssl-services": "ssl-service=my_service_name1;ssl-service=my_service_name2", ..... .... ... ... }
- Pulse Actualizar
Nota: El puerto 9600 se expone internamente en el servicio Kubernetes y las instancias de Analytics lo utilizan como puerto de transporte.
Aplicación de ejemplo
Consulte las guías de aprendizaje de para desplegar el adaptador de ejemplo y ejecutar la aplicación de ejemplo en IBM MobileFirst Server en ejecución en IBM Cloud Kubernetes Cluster.
Actualización de releases y gráficos Helm
Consulte Actualización de productos empaquetados para obtener instrucciones sobre cómo actualizar los gráficos/releases de helm.
Casos de ejemplo para las actualizaciones de release de Helm
- Para actualizar el release de helm con los cambios de los valores de
values.yaml
, utilice el mandatohelm upgrade
con el distintivo –set. Puede especificar el distintivo –set varias veces. Se dará prioridad al conjunto especificado más a la derecha en la línea de mandatos.helm upgrade --set <name>=<value> --set <name>=<value> <existing-helm-release-name> <path of new helm chart>
- Para actualizar el release de helm indicando valores en un archivo, utilice el mandato
helm upgrade
con el distintivo -f. Puede utilizar –values o el distintivo -f varias veces. Se dará prioridad al archivo especificado más a la derecha en la línea de mandatos. En el siguiente ejemplo, simyvalues.yaml
yoverride.yaml
contienen una clave denominada Test, tendrá prioridad el valor establecido enoverride.yaml
.helm upgrade -f myvalues.yaml -f override.yaml <existing-helm-release-name> <path of new helm chart>
- Para actualizar el release de helm reutilizando los valores del último release y sustituyendo algunos de ellos, se puede utilizar un mandato como el siguiente:
helm upgrade --reuse-values --set <name>=<value> --set <name>=<value> <existing-helm-release-name> <path of new helm chart>
Desinstalar
Para desinstalar MobileFirst Server y MobileFirst Analytics, utilice Helm CLI. Utilice el mandato siguiente para suprimir completamente los gráficos instalados y los despliegues asociados:
helm delete --purge <release_name>
release_name es el nombre de release desplegado del gráfico Helm.
Resolución de problemas
Esta sección le guía durante el proceso de identificación y resolución de los posibles escenarios de error que puede encontrar al desplegar Mobile Foundation
- Error de instalación de Helm.
Error: No se ha podido encontrar un pod tiller preparado
- Ejecute el siguiente conjunto de mandatos como está y vuelva a intentar la instalación de helm
helm init kubectl create serviceaccount --namespace kube-system tiller kubectl create clusterrolebinding tiller-cluster-rule --clusterrole=cluster-admin --serviceaccount=kube-system:tiller kubectl patch deploy --namespace kube-system tiller-deploy -p '{"spec":{"template":{"spec":{"serviceAccount":"tiller"}}}}' helm init --service-account tiller --upgrade
- No se han podido extraer las imágenes al desplegar el gráfico Helm -
No se ha podido extraer la imagen; Error: ErrImagePull
- Asegúrese de que el menú desplegable de la imagen se haya añadido a values.yaml antes del despliegue de Helm. Si no existe el secreto de extracción de imagen, cree un secreto de extracción y asígnelo a
image.pullSecret
en el archivo values.yaml.
Ejemplo para crear un secreto de extracción:
kubectl create secret docker-registry iks-secret-name --docker-server=us.icr.io --docker-username=iamapikey --docker-password=Your_IBM_Cloud_API_key --docker-email=your_email_id
Nota: Conserve el valor de
--docker-username=iamapikey
tal como está, si utiliza la clave de API de IBM Cloud para la autenticación.
- Problemas de conectividad al acceder a la consola mediante ingress
-
Para resolver el problema, inicie el panel de control de Kubernetes y seleccione la opción ‘Ingreses’. Edite el archivo yaml de Ingress y añada los detalles del host de Ingress como se indica a continuación:
Ejemplo :
"spec": { "tls": [ { "hosts": [ “ingress_host_name” ], "secretName": "ingress-secret-name" } ], "rules": [ { …. ….
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.