在 IBM Cloud Kubernetes 集群上设置 MobileFirst Application Center
improve this page | report issue概述
遵循以下指示信息,在 IBM Cloud 上配置 MobileFirst Application Center 实例。为此您需要完成以下步骤:
- 创建以下类型的 Kubernetes 集群:Standard(已付费集群)。
- 使用所需的工具(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))来设置主计算机。
- 构建 MobileFirst Application Center Docker 映像并将其推送到 IBM Cloud 存储库。
- 最后,在 Kubernetes 集群上运行 Docker 映像。
注:
- 当前不支持在 Windows 操作系统上运行这些脚本。
- MobileFirst Server 配置工具不能用于部署到 IBM Container。
跳转至:
- 在 IBM Cloud 上注册帐户
- 设置主机
- 使用 IBM Cloud Container Service 创建并设置 Kubernetes 集群
- 下载 ibm-mfpf-container-8.0.0.0 归档
- 先决条件
- 使用 IBM Containers 在 Kubernetes 集群上设置 MobileFirst Application Center
- 从 IBM Cloud 中除去容器
- 从 IBM Cloud 中除去 Kubernetes 部署
- 从 IBM Cloud 中除去数据库服务配置
在 IBM Cloud 上注册帐户
如果还没有帐户,请访问 IBM Cloud Web 站点,然后单击免费开始使用或注册。您需要填写注册表单,然后才能进入下一步。
IBM Cloud 仪表板
在登录 IBM Cloud 后,会显示 IBM Cloud 仪表板,其中提供了活动的 IBM Cloud 空间的概述。缺省情况下,此工作区名为 dev。 如果需要,您可以创建多个工作区/空间。
设置主机
要管理容器和映像,您需要安装以下工具:
- Docker
- 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)
请参阅 IBM Cloud 文档以了解设置必备 CLI 的步骤。
使用 IBM Cloud Container Service 创建并设置 Kubernetes 集群
请参阅 IBM Cloud 文档以在 IBM Cloud 上设置 Kubernetes 集群。
注:部署 Mobile Foundation 需要 Kubernetes 集群类型:Standard(已付费集群)。
下载 ibm-mfpf-container-8.0.0.0 归档
要使用 IBM Cloud 容器将 MobileFirst Application Center 设置为 Kubernetes 集群,必须首先创建一个映像,稍后将其推送至 IBM Cloud。
IBM Containers 上的 MobileFirst Server 的临时修订可从 IBM Fix Central 获取。
从 Fix central 下载最新临时修订。 从 iFix 8.0.0.0-IF201708220656 起,提供 Kubernetes 支持。
此归档文件包含用于构建映像的文件(dependencies 和 mfpf-libs),以及用于在 Kubernetes 上构建和部署 MobileFirst Application Center 的文件 (bmx-kubernetes)。

bmx-kubernetes 文件夹
包含使用 IBM Cloud Container Service 部署到 Kubernetes 集群所需的定制文件和脚本。
Dockerfile-mfp-appcenter
- Dockerfile-mfp-appcenter:包含构建 MobileFirst Application Center 映像所需的所有命令的文本文档。
- scripts 文件夹:此文件夹包含 args 文件夹,其中包含一组配置文件。 它还包含登录 IBM Cloud 时所需的脚本,可构建 MobileFirst Application Center 映像,以及用于在 IBM Cloud 上推送与运行此映像。您可以选择以交互方式运行这些脚本,或者通过对配置文件进行预配置的方式来运行脚本(如后文所述)。 除可定制的 args/*.properties 文件外,请勿修改该文件夹中的任何元素。 要获取脚本用法帮助,请使用
-h
或--help
命令行参数(例如,scriptname.sh --help
)。 - usr-mfp-appcenter 文件夹:
- bin 文件夹:包含将在容器启动时执行的脚本文件 (mfp-appcenter-init)。 您可以添加自己的定制代码以执行这些代码。
- config 文件夹:包含 MobileFirst Application Center 所使用的服务器配置片段(密钥库、服务器属性、用户注册表)。
- keystore.xml - 用于 SSL 加密的安全证书存储库的配置。 必须在 ./usr/security 文件夹中引用列出的文件。
- ltpa.xml - 定义 LTPA 密钥及其密码的配置文件。
- appcentersqldb.xml - 用于连接到 DB2 或 dashDB 数据库的 JDBC 数据源定义。
- registry.xml - 用户注册表配置。 basicRegistry - 将基于 XML 的基本用户注册表配置作为缺省值提供。 可以为 basicRegistry 配置用户名和密码,或者也可以配置 ldapRegistry。
- tracespec.xml - 用于启用调试和记录级别的跟踪规范。
- jre-security 文件夹:您可以通过将 JRE 安全相关文件(信任库、策略 JAR 文件等)放置在本文件夹中来更新这些文件。 将此文件夹中的文件复制到容器中的 JAVA_HOME/jre/lib/security/ 文件夹。
- security 文件夹:用于存储密钥存储库、信任库和 LTPA 密钥文件 (ltpa.keys)。
- env 文件夹:包含用于服务器初始化 (server.env) 和定制 JVM 选项 (jvm.options) 的环境属性。
- dependencies 文件夹:包含 Mobile Foundation 运行时和 IBM Java JRE 8。
- mfpf-libs folder 文件夹:包含 MobileFirst 产品组件库和 CLI。
属性 | 缺省值 | 描述 |
APPCENTER_SERVER_HTTPPORT | 9080* | 用于客户机 HTTP 请求的端口。 使用 -1 来禁用此端口。 |
APPCENTER_SERVER_HTTPSPORT | 9443* | 通过 SSL (HTTPS) 保护的客户机 HTTP 请求所使用的端口。 使用 -1 来禁用此端口。 |
APPCENTER_ROOT | applicationcenter | MobileFirst Application Center Administration Services 在其中可用的上下文根。 |
APPCENTER_CONSOLE_ROOT | appcenterconsole | 提供 MobileFirst Application Center 控制台的上下文根。 |
APPCENTER_ADMIN_GROUP | appcenteradmingroup | 已分配预定义角色 appcenteradmin 的用户组的名称。 |
APPCENTER_USER_GROUP | appcenterusergroup | 已分配预定义角色 appcenteruser 的用户组的名称。 |
关闭此节
关闭此节
先决条件
您需要具备 Kubernetes 的应用知识。 请参阅 Kubernetes 文档,以了解更多信息。
使用 IBM Containers 在 Kubernetes 集群上设置 MobileFirst Application Center
如上文所述,您可以选择以交互方式运行这些脚本,或者通过使用配置文件来运行脚本:
- 使用配置文件 - 运行脚本并传递相应的配置文件作为自变量。
- 以交互方式 - 运行脚本,不使用任何自变量。
注:如果选择以交互方式运行脚本,可以跳过配置,但是强烈建议查看并了解一下您将需要提供的自变量。
以交互方式运行时,在以下目录中会保存所提供自变量的副本:./recorded-args/
。 这样您便可以在首次使用交互方式后复用这些属性文件,作为将来部署的参考。
initenv.properties
- IBM_CLOUD_API_URL - 要执行部署的地理位置或区域。
例如:api.ng.bluemix.net 表示美国,api.eu-de.bluemix.net 表示德国,api.au-syd.bluemix.net 表示悉尼
- IBM_CLOUD_ACCOUNT_ID - 您的帐户标识,该标识为字母数字值,例如,a1b1b111d11e1a11d1fa1cc999999999
使用bx target
命令可获取帐户标识。 - IBM_CLOUD_USER - IBM Cloud 用户名(电子邮件)。
- IBM_CLOUD_PASSWORD - IBM Cloud 密码。
- IBM_CLOUD_ORG - IBM Cloud 组织名称。
- IBM_CLOUD_SPACE - IBM Cloud 空间(如上文所述)。
prepareappcenterdbs.properties
MobileFirst Application Center 需要外部 DB2 on cloud 实例。注:您还可以使用自己的 DB2 数据库。 IBM Cloud Kubernetes 集群应配置为连接到此数据库。在设置 DB2 实例后,请提供所需自变量:
- DB_TYPE - dashDB(使用 DB2 on Cloud 时)或 DB2(使用自己的 DB2 数据库时)。
- 如果您使用自己的 DB2 数据库(即,DB_TYPE=DB2),请提供以下信息。
- DB2_HOST - 您的 DB2 设置的主机名。
- DB2_DATABASE - 数据库的名称。
- DB2_PORT - 将用于连接到数据库的端口。
- DB2_USERNAME - DB2 数据库用户(此用户应具备在提供的模式中创建表的权限,或者如果不存在模式,那么此用户应可创建模式)
- DB2_PASSWORD - DB2 用户密码。
- 如果使用 DB2 on Cloud(即,DB_TYPE=dashDB),请提供以下信息。
- APPCENTER_DB_SRV_NAME - 用于存储 appcenter 数据的 dashDB 服务实例名称。
- APPCENTER_SCHEMA_NAME - appcenter 数据的模式名称。 缺省名称为 APPCNTR。
注:如果许多用户或多个 MobileFirst Application Center 部署共享 DB2 数据库服务实例,请确保提供唯一的模式名称。
prepareappcenter.properties
- SERVER_IMAGE_TAG - 映像标记。 应采用以下格式:registry-url/namespace/image:tag。
bx cr namespace-add myuniquenamespace
bx cr namespace-list
例如:registry.ng.bluemix.net/myuniquenamespace/myappcenter:v1
如果尚未创建 Docker 注册表名称空间,请使用以下任一命令创建注册表名称空间:
以下指示信息演示了如何使用配置文件来运行脚本。 如果选择以非交互方式来运行,那么还提供了命令行自变量的列表:
- initenv.sh - 登录 IBM Cloud
运行 initenv.sh 脚本以创建环境,用于在 IBM Containers 上构建和运行 MobileFirst Application Center: 交互方式 非交互方式./initenv.sh
./initenv.sh args/initenv.properties
- prepareappcenterdbs.sh - 准备 MobileFirst Application Center 数据库
prepareappcenterdbs.sh 脚本用于通过 DB2 数据库服务配置 MobileFirst Application Center。 在步骤 1 中登录到的组织和空间内提供了 DB2 服务的服务实例。请运行: 交互方式 非交互方式./prepareappcenterdbs.sh
./prepareappcenterdbs.sh args/prepareappcenterdbs.properties
- initenv.sh(可选)- 登录 IBM Cloud
仅当在除提供 DB2 服务实例的组织和空间以外的其他组织和空间内需要创建容器时,才需要执行此步骤。 如果情况如此,请使用必须在其中创建和启动新组织和空间的容器来更新 initenv.properties,然后重新运行 initenv.sh 脚本:./initenv.sh args/initenv.properties
- prepareappcenter.sh - 准备 MobileFirst Application Center 映像
运行 prepareappcenter.sh 脚本以构建 MobileFirst Application Center 映像,并将其推送到 IBM Cloud 存储库。要查看 IBM Cloud 存储库中的所有可用映像,请运行:bx cr image-list
此列表包含映像名称、创建日期和标识。
交互方式 非交互方式./prepareappcenter.sh
./prepareappcenter.sh args/prepareappcenter.properties
- 使用 IBM Cloud Container Service 在 Kubernetes 集群的 Docker 容器上部署 MobileFirst Application Center。
- 将终端上下文设置为您的集群
bx cs cluster-config my-cluster
要了解集群名称,请运行以下命令:bx cs clusters
在输出中,指向配置文件的路径显示为用于设置环境变量的命令,例如:
export KUBECONFIG=/Users/ibm/.bluemix/plugins/container-service/clusters/my-cluster/kube-config-prod-dal12-my-cluster.yml
将 my-cluster 替换为您的集群名称后,复制粘贴以上命令以在您的终端内设置环境变量,然后按 Enter 键。 - 要获取入口域,请运行以下命令:
bx cs cluster-get my-cluster
记下“入口域”。 如果需要配置 TLS,请记下入口密钥。 - 创建 Kubernetes 部署
编辑 yaml 文件 args/mfp-deployment-appcenter.yaml,并填写详细信息。 在执行 kubectl 命令之前,所有变量都必须替换为各自的值。
./args/mfp-deployment-appcenter.yaml 包含以下部署:- MobileFirst Application Center 的 kubernetes 部署,包含 1 个实例(副本),内存为 1024MB 且具有单核 CPU。
- MobileFirst Application Center 的 kubernetes 服务。
- 整个设置的入口,包含 MobileFirst Application Center 的所有 REST 端点。
- configMap,用于使环境变量在 MobileFirst Application Center 实例中可用。
- 显示的不同 my-cluster.us-south.containers.mybluemix.net,含入口域的输出(来自上述
bx cs cluster-get
命令的输出)。 - registry.ng.bluemix.net/repository/mfpappcenter:latest - 使用您在 prepareappcenter.sh 中所使用的名称来上传映像。
kubectl create -f ./args/mfp-deployment-appcenter.yaml
注:
创建后,要使用 Kubernetes 仪表板,请执行以下命令:
已提供以下模板 yaml 文件:
- mfp-deployment-appcenter.yaml:使用 HTTP 部署 MobileFirst Application Center。
- mfp-deployment-appcenter-with-tls.yaml:使用 HTTPS 部署 MobileFirst Application Center。
kubectl proxy
在浏览器中打开 localhost:8001/ui。
- 将终端上下文设置为您的集群
从 IBM Cloud 中除去容器
从 IBM Cloud 中除去容器时,还必须从注册表中除去映像名称。
运行以下命令以从 IBM Cloud 中除去容器:
cf ic ps
(列举当前正在运行的容器)cf ic stop container_id
(停止该容器)cf ic rm container_id
(除去该容器)
运行以下 cf ic 命令,从 IBM Cloud 注册表中除去映像名称:
cf ic images
(列举注册表中的映像)cf ic rmi image_id
(从注册表中除去映像)
从 IBM Cloud 中除去 Kubernetes 部署
运行以下命令以从 IBM Cloud Kubernetes 集群中除去已部署的实例:
kubectl delete -f mfp-deployment-appcenter.yaml
(除去 yaml 中定义的所有 kubernetes 类型)
运行以下命令以从 IBM Cloud 注册表中除去映像名称:
bx cr image-list(列举注册表中的映像)
bx cr image-rm image-name(从注册表中除去映像)
从 IBM Cloud 中除去数据库服务配置
如果在配置 MobileFirst Application Center 映像期间运行了 prepareappcenterdbs.sh 脚本,那么将创建 MobileFirst Application Center 所需的配置和数据库表。 此脚本还会针对容器创建数据库模式。
要从 IBM Cloud 中除去数据库服务配置,请使用 IBM Cloud 仪表板执行以下过程。
- 从 IBM Cloud 仪表板,选择使用的 DB2 on cloud 服务。选择在运行 prepareappcenterdbs.sh 脚本时作为参数提供的 DB2 服务名称。
- 启动 DB2 控制台以使用选中的 DB2 服务实例的模式和数据库对象。
- 选择与 IBM MobileFirst Server 配置相关的模式。 模式名称是在运行 prepareappcenterdbs.sh 脚本时作为参数提供的名称。
- 在仔细检查每个模式名称以及其下的对象后,删除模式。 这将从 IBM Cloud 中除去数据库配置。