使用 Helm 在 IBM Cloud Kubernetes 集群上设置 Mobile Foundation

improve this page | report issue


概述

遵循以下指示信息以使用 Helm 图表在 IBM Cloud Kubernetes 集群 (IKS) 上配置 MobileFirst Server 实例和 MobileFirst Analytics 实例:

  • 设置 IBM Cloud Kubernetes 集群。
  • 使用 IBM Cloud CLI 设置您的主计算机。
  • 下载用于 IBM Cloud Private 的 IBM Mobile Foundation Passport Advantage 归档(PPA 归档)。
  • 在 IBM Cloud Kubernetes 集群中装入 PPA 归档。
  • 最后,您将配置和安装 MobileFirst Analytics(可选)和 MobileFirst Server。

跳转至:

先决条件

您应该具有 IBM Cloud 帐户,并且必须遵循 IBM Cloud Kubernetes 集群服务中的文档来设置 Kubernetes 集群。

要管理容器和映像,需要在 IBM Cloud CLI 插件设置期间在主机上安装以下工具:

  • IBM Cloud CLI
  • Kubernetes CLI
  • IBM Cloud 容器注册表插件
  • IBM Cloud 容器服务插件

要使用 CLI 访问 IBM Cloud Kubernetes 集群,应配置 IBM Cloud 客户机。了解更多信息

下载 IBM Mobile Foundation Passport Advantage 归档

此处提供 IBM Mobile Foundation 的 Passport Advantage (PPA) 归档。 Mobile Foundation 的 PPA 归档将包含以下 Mobile Foundation 组件的 Docker 映像和 Helm Chart:

  • MobileFirst Server
  • MobileFirst Analytics
  • MobileFirst Application Center

装入 IBM Mobile Foundation Passport Advantage 归档

在装入 Mobile Foundation 的 PPA 归档之前,必须设置 Docker。 请参阅此处的指示信息。

遵循以下给定的步骤以将 PPA 归档装入到 IBM Cloud Kubernetes 集群:

  1. 使用 IBM Cloud 插件登录到集群。

    请参阅 IBM Cloud CLI 文档中的 CLI 命令参考

    例如,

     ibmcloud login -a https://ip:port
    

    (可选)如果您打算跳过 SSL 验证,请在上述命令中使用标记 --skip-ssl-validation。 使用此选项将提示输入集群端点的 usernamepassword。 在成功登录后,继续以下步骤。

  2. 使用以下命令登录至 IBM Cloud Container 注册表并初始化容器服务:
     ibmcloud cr login
     ibmcloud cs init
    
  3. 使用以下命令设置部署区域(例如,us-south)
     ibmcloud cr region-set
    
  4. 使用以下命令装入 Mobile Foundation 的 PPA 归档:
     bx pr load-ppa-archive --archive <archive_name> [--clustername <cluster_name>] [--namespace <namespace>]
    

    Mobile Foundation 的 archive_name 是从 IBM Passport Advantage 下载的 PPA 归档的名称。

helm 图表存储在客户机中或存储在本地(与存储在 IBM Cloud Private helm 存储库中的 ICP helm 图表不同)。可以在 ppa-import/charts 目录中找到图表。

安装和配置 IBM Mobile Foundation Helm Chart

在安装和配置 MobileFirst Server 之前,您应具有以下内容:

  • [必需] 已配置且可供使用的 DB2 数据库。 您将需要数据库信息以配置 MobileFirst Server helm。 MobileFirst Server 需要将在此数据库中创建(如果不存在)的模式和表。

  • [可选] 使用密钥库和信任库的密钥。 您可以通过使用自己的密钥库和信任库来创建密钥,从而为部署提供自己的密钥库和信任库。

    在安装之前,请执行以下步骤:

    • 使用 keystore.jkskeystore-password.txttruststore.jkstruststore-password.txt 创建密钥,并在字段 keystores.keystoresSecretName 中提供密钥名称。

    • 将文件 keystore.jks 及其密码保留在名为 keystore-password.txt 的文件中,并将 truststore.jks 及其密码保留在名为 truststore-password.jks 的文件中。

    • 转至命令行并执行:
      kubectl create secret generic mfpf-cert-secret --from-file keystore-password.txt --from-file truststore-password.txt --from-file keystore.jks --from-file truststore.jks
      

      注:文件名应与提及的名称相同,例如,keystore.jkskeystore-password.txttruststore.jkstruststore-password.txt

    • keystoresSecretName 中提供密钥名称以覆盖缺省密钥库。

    有关更多信息,请参阅配置 MobileFirst Server 密钥库

MobileFirst Analytics 的环境变量

下表提供在 IBM Cloud Kubernetes 集群上的 MobileFirst Analytics 中使用的环境变量。

限定符 参数 定义 允许值
arch   工作程序节点架构 应将此图表部署至的工作程序节点架构。
当前仅支持 AMD64 平台。
image pullPolicy 映像拉取策略 缺省值为 IfNotPresent
  tag Docker 映像标记 请参阅 Docker 标记描述
  name Docker 映像名称 Operational Analytics Docker 映像的名称。
scaling replicaCount 需要创建的 Operational Analytics 实例 (pod) 数量 正整数
缺省值为 2
mobileFirstAnalyticsConsole user Operational Analytics 的用户名 缺省值为 admin
  password Operational Analytics 的密码 缺省值为 admin
analyticsConfiguration clusterName Analytics 集群的名称 缺省值为 mobilefirst
  analyticsDataDirectory 存储分析数据的路径。 它还将与在容器内安装持久卷声明的路径相同 缺省为 /analyticsData
  numberOfShards Analytics 的 Elasticsearch 分片数量 正整数
缺省值为 2
  replicasPerShard 针对 Analytics 每个分片要维护的 Elasticsearch 副本数量 正整数
缺省值为 2
keystores keystoresSecretName 请参阅安装和配置 IBM Mobile Foundation Helm Chart,其中描述使用密钥库及其密码创建密钥的步骤。  
jndiConfigurations mfpfProperties JNDI 属性,为定制 Operational Analytics 而指定 提供逗号分隔的名称值对。
resources limits.cpu 描述允许的最大 CPU 量 缺省值为 2000m
请阅读 CPU 的含义
  limits.memory 描述允许的最大内存量 缺省值为 4096Mi
请阅读内存的含义
  requests.cpu 描述所需的最小 CPU 量。 如果未指定,那么缺省为 limits(如果已指定)或实现定义的值 缺省值为 1000m
  requests.memory 描述所需的最小内存量。 如果未指定,那么内存量缺省为 limits(如果已指定)或实现定义的值 缺省值为 2048Mi
persistence existingClaimName 现有持久卷声明 (PVC) 的名称  
logs consoleFormat 指定容器日志输出格式。 缺省值为 json
  consoleLogLevel 控制转至容器日志的消息的详细程度。 缺省值为 info
  consoleSource 指定写入容器日志的源。针对多个源,请使用逗号分隔的列表。 缺省值为 message, trace, accessLog, ffdc

MobileFirst Server 的环境变量

下表提供在 IBM Cloud Kubernetes 集群上的 MobileFirst Server 中使用的环境变量。

限定符 参数 定义 允许值
arch   工作程序节点架构 应将此图表部署至的工作程序节点架构。
当前仅支持 AMD64 平台。
image pullPolicy 映像拉取策略 缺省为 IfNotPresent
  tag Docker 映像标记 请参阅 Docker 标记描述
  name Docker 映像名称 Server Docker 映像的名称。
scaling replicaCount 需要创建的 Server 实例 (pod) 数量 正整数
缺省值为 3
mobileFirstOperationsConsole user Server 的用户名 缺省值为 admin
  password Server 用户的密码 缺省值为 admin
existingDB2Details db2Host 需要配置 Server 表的 DB2 数据库的 IP 地址或主机 当前仅支持 DB2。
  db2Port 设置 DB2 数据库的端口  
  db2Database 在 BD2 中预先配置以供使用的数据库名称  
  db2Username 用于访问 BD2 数据库的 DB2 用户名 用户应有权创建表和创建模式(如果尚不存在)。
  db2Password 提供的数据库的 DB2 密码  
  db2Schema 要创建的服务器 DB2 模式  
  db2ConnectionIsSSL DB2 连接类型 指定数据库连接必须为 http 还是 https。 缺省值为 false (http)。
确保还为相同连接方式配置 DB2 端口。
existingMobileFirstAnalytics analyticsEndPoint 分析服务器的 URL 例如:http://9.9.9.9:30400
请勿指定控制台路径,将在部署期间添加此路径。
       
  analyticsAdminUser 分析管理员用户的用户名  
  analyticsAdminPassword 分析管理员用户的密码  
keystores keystoresSecretName 请参阅安装和配置 IBM Mobile Foundation Helm Chart,其中描述使用密钥库及其密码创建密钥的步骤。  
jndiConfigurations mfpfProperties 用于定制部署的 Server JNDI 属性 逗号分隔的名称值对。
resources limits.cpu 描述允许的最大 CPU 量 缺省值为 2000m
请阅读 CPU 的含义
  limits.memory 描述允许的最大内存量 缺省值为 4096Mi
请阅读内存的含义
  requests.cpu 描述所需的最小 CPU 量。 如果未指定,那么缺省为 limits(如果已指定)或实现定义的值。 缺省值为 1000m
  requests.memory 描述所需的最小内存量。 如果未指定,那么缺省为 limits(如果已指定)或者实现定义的值 缺省值为 2048Mi
logs consoleFormat 指定容器日志输出格式。 缺省值为 json
  consoleLogLevel 控制转至容器日志的消息的详细程度。 缺省值为 info
  consoleSource 指定写入容器日志的源。针对多个源,请使用逗号分隔的列表。 缺省值为 message, trace, accessLog, ffdc

有关使用 Kibana 分析 日志的教程,请参阅此处

安装 Helm 图表

安装 MobileFirst Analytics

MobileFirst Analytics 的安装为可选。 如果想要在 MobileFirst Server 中启用分析,那么应首先配置并安装 MobileFirst Analytics,然后再安装 MobileFirst Server。

在开始安装 MobileFirst Analytics Chart 之前,配置持久卷。 提供持久卷以配置 MobileFirst Analytics。 遵循 IBM Cloud Kubernetes 文档中详述的步骤以创建持久卷

遵循以下步骤以在 IBM Cloud Kubernetes 集群上安装和配置 IBM MobileFirst Analytics。

  1. 要配置 Kubernetes 集群,请执行如下命令:
     ibmcloud cs cluster-config <iks-cluster-name>
    
  2. 使用以下命令获取缺省 helm 图表值。 ```bash helm inspect values > values.yaml
     MobileFirst Analytics 的示例:
     ```bash
     helm inspect values ibm-mfpf-analytics-prod-1.0.17.tgz > values.yaml
    
  3. 修改 values.yaml 以添加相应的值来部署 helm 图表。确保添加 ingress.hostname 详细信息、缩放等,然后保存 values.yaml。

  4. 要部署 helm 图表,请运行以下命令:
     helm install -n <iks-cluster-name> -f values.yaml <mfp-analytics-helm-chart.tgz>
    

    用于部署分析服务器的示例:

     helm install -n mfpanalyticsonkubecluster -f analytics-values.yaml ./ibm-mfpf-analytics-prod-1.0.17.tgz
    

安装 MobileFirst Server

在开始安装 MobileFirst Server 之前,确保您已预先配置 DB2 数据库。

遵循以下步骤以在 IBM Cloud Kubernetes 集群上安装和配置 IBM MobileFirst Server。

  1. 配置 Kube 集群:
     ibmcloud cs cluster-config <iks-cluster-name>
    
  2. 使用以下命令获取缺省 helm 图表值:
     helm inspect values <mfp-server-helm-chart.tgz>  > values.yaml
    

    MobileFirst Server 的示例:

     helm inspect values ibm-mfpf-server-prod-1.0.17.tgz > values.yaml
    
  3. 修改 values.yaml 以添加相应的值来部署 helm 图表。确保添加数据库详细信息、入口、缩放等,然后保存 values.yaml。

  4. 要部署 helm 图表,请运行以下命令。
     helm install -n <iks-cluster-name> -f values.yaml <mfp-server-helm-chart.tgz>
    

    用于部署服务器的示例:

     helm install -n mfpserveronkubecluster -f server-values.yaml ./ibm-mfpf-server-prod-1.0.17.tgz
    

注:要安装 AppCenter,请使用相应的 helm 图表(例如,ibm-mfpf-appcenter-prod-1.0.17.tgz)执行上述步骤。

验证安装

在安装和配置 MobileFirst Analytics(可选)和 MobileFirst Server 后,您可以通过使用 IBM Cloud CLI、Kubernetes CLI 和 helm 命令来验证已部署的 pod 的安装和状态。

请参阅 IBM Cloud CLI 文档中的 CLI 命令参考Helm 文档中的 Helm CLI。

在 IBM Cloud 门户网站上的 IBM Cloud Kubernetes 集群页面中,用户可以使用启动按钮来打开 Kubernetes 控制台,以管理集群工件。

访问 控制台

成功部署后,注释将在终端上显示为输出。您可以直接运行命令以通过 NodePort 获取控制台 URL。

例如,对于 Mobile Foundation 服务器,注释将显示如下:

The Notes displayed as follows as the result of the helm deployment
Get the Server URL by running these commands:
1. For http endpoint:
 export NODE_PORT=$(kubectl get --namespace default -o jsonpath=“{.spec.ports[0].nodePort}” services monitor-mfp-ibm-mfpf-server-prod)
 export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath=“{.items[0].status.addresses[0].address}“)
 echo http://$NODE_IP:$NODE_PORT/mfpconsole
2. For https endpoint:
 export NODE_PORT=$(kubectl get --namespace default -o jsonpath=“{.spec.ports[1].nodePort}” services monitor-mfp-ibm-mfpf-server-prod)
 export NODE_IP=$(kubectl get nodes --namespace default -o jsonpath=“{.items[0].status.addresses[0].address}“)
 echo https://$NODE_IP:$NODE_PORT/mfpconsole

通过类似的安装方法,您可以使用 <protocol>://<ip_address>:<node_port>/analytics/console 访问 IBM MobileFirst Analytics Console,使用 <protocol>://<ip_address>:<node_port>/appcenter/console访问 IBM Mobile Foundation Application Center 除了用于访问控制台的 NodePort 方法之外,也可以通过入口主机访问服务。

执行下面的步骤来访问控制台:

  1. 转至 IBM Cloud 仪表板
  2. 选择已在其上部署 Analytics/Server/AppCenter 的 Kubernetes 集群,以打开概述页面。
  3. 查找入口子域以获取入口主机名,然后按照如下所述访问控制台。
    • 使用以下信息访问 IBM Mobile Foundation Operational Console: <protocol>://<ingress-hostname>/mfpconsole
    • 使用以下信息访问 IBM Mobile Foundation Analytics Console: <protocol>://<ingress-hostname>/analytics/console
    • 使用以下信息访问 IBM Mobile Foundation Application Center Console: <protocol>://<ingress-hostname>/appcenter/console

注:端口 9600 在 Kubernetes 服务中内部公开,且供 Analytics 实例用作传输端口。

示例应用程序

请参阅 教程以部署样本适配器和在 IBM Cloud Kubernetes 集群中运行的 IBM MobileFirst Server 上运行样本应用程序。

升级 Helm Chart 和发行版

请参阅升级捆绑产品以获取有关如何升级 helm chart/发行版的指示信息。

Helm 发行版升级的样本场景

  1. 要使用 values.yaml 的值更改升级 helm 发行版,请使用 helm upgrade 命令以及 –set 标志。 您可以多次指定 –set 标志。 优先级将赋予命令行中指定的最右侧设置。
      helm upgrade --set <name>=<value> --set <name>=<value> <existing-helm-release-name> <path of new helm chart>
    
  2. 要通过在文件中提供值来升级 helm 发行版,请使用 helm upgrade 命令以及 -f 标志。 您可以多次使用 –values-f 标志。 优先级将赋予命令行中指定的最右侧文件。 在以下示例中,如果 myvalues.yamloverride.yaml 都包含名为 Test 的键,那么 override.yaml 中设置的值优先。
      helm upgrade -f myvalues.yaml -f override.yaml <existing-helm-release-name> <path of new helm chart>
    
  3. 要通过复用最后一个发行版中的值并覆盖其中部分值来升级 helm 发行版,可以使用如下命令:
      helm upgrade --reuse-values --set <name>=<value> --set <name>=<value> <existing-helm-release-name> <path of new helm chart>
    

卸载

要卸载 MobileFirst Server 和 MobileFirst Analytics,请使用 Helm CLI。 使用以下命令来完全删除已安装的图表和关联的部署:

helm delete --purge <release_name>

release_name 是已部署的 Helm Chart 的发行版名称。

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 01, 2020