要在 Bluemix 中创建一个简单的集群,请完成以下步骤:
您的 Kubernetes 集群现在已准备好执行本教程中的步骤。请注意,我们专门配备了一个精简集群来方便访问教程,而且它只有一个节点。对于企业用途,可以创建一个标准集群。在两种情况下,IBM ODM Docker 镜像都保持不变。
现在执行以下步骤,在 Bluemix 中完成 Kubernetes 集群的设置:
- bx cs init
在输出中,您的配置文件的路径显示为一个设置环境变量的命令,例如:
- bx cs cluster
- -
- config
- ODMCluster
- export
- KUBECONFIG
- =
- /Users/
- ibm
- /
- .
- bluemix
- /
- plugins
- /
- container
- -
- service
- /
- clusters
- /
- ODMCluster
- /
- kube
- -
- config
- -
- prod
- -
- hou02
- -
- ODMCluster
- .
- yml
您已准备就绪。可以运行以下 Kubernetes 命令来验证您的工作节点:
- kubectl get nodes
也可以使用以下命令访问您的 Kubernetes 仪表板:
- kubectl proxy
使用
查看您的 Kubernetes 仪表板,它类似于下面这个屏幕截图:
- http://127.0.0.1:8001/ui
点击查看大图
我们根据 Kubernetes pod、服务和部署抽象定义了一种 IBM ODM 拓扑结构。
对于每个 IBM ODM 模块,都可以查看样本 YAML 描述符文件,其中指定了以下信息:
例如,请查看 IBM ODM Decision Server 运行时环境(托管的透明决策服务)的以下样本代码:
- apiVersion
- :
- extensions
- /
- v1beta1
- # for versions before 1.6.0 use extensions/v1beta1
- kind: Deployment
- metadata:
- name: odm-decisionserverruntime
- spec:
- replicas: 2
- template:
- metadata:
- labels:
- run: odm-decisionserverruntime
- spec:
- containers:
- - name: odm-decisionserverruntime
- image: registry.ng.bluemix.net/odmlab/ibm-odm-decisionserverruntime:8.9.0
- ports:
- - containerPort: 9080
- ---
- apiVersion: v1
- kind: Service
- metadata:
- name: odm-decisionserverruntime
- labels:
- run: odm-decisionserverruntime
- spec:
- selector:
- run: odm-decisionserverruntime
- type: NodePort
- ports:
- - protocol: TCP
- port: 9080
第 1 部分是部署,由
定义,它的大小被设置为 2 个 pod,由
- kind: Deployment
值指定。Docker 镜像是
- replica
。内部端口由
- registry
- .
- ng
- .
- bluemix
- .
- net
- /
- odmlab
- /
- ibm
- -
- odm
- -
- decisionserverruntime
- :
- 8.9
- .
- 0
定义。
- containerPort: 9080
代码样本的第 2 部分是服务,由
定义。连接类型由
- kind: Service
定义,外部端口由
- type: NodePort
定义。这个服务保留同一个端口号,但
- port: 9080
等其他服务会将其内部 HTTP 端口映射到一个新的外部端口(避免在同一个主机中运行时发生冲突)。
- DecisionCenter
所有这些描述符部分都被汇编到 Github 上的两个 YAML 文件中:
获取并运行 Kubernetes 描述符:
- git clone https://github.com/PierreFeillet/IBM-ODM-Kubernetes.git
- cd IBM
- -
- ODM
- -
- Kubernetes
- /
- Bluemix
- kubectl create
- –
- f odm
- -
- standard
- -
- bx
- -
- lite
- .
- yaml
- kubectl create
- –
- f odm
- -
- standard
- -
- bx
- -
- standard
- .
- yaml
您会看到以下屏幕截图中显示的部署、服务和 pod。
点击查看大图
点击查看大图
点击查看大图
现在设置对 Decision Center 和 Decision Server 的访问,它们作为 Docker 容器在 Bluemix 中运行。要将 IBM ODM 部署在 Bluemix 上的精简 Kubernetes 集群中,需要依靠一种
配置。所有声明的访问创作和执行端点的服务都基于主机 IP 地址和映射的端口号。对于标准集群,Decision Center 和 Decision Server 服务利用一个 LoadBalancer 连接。
- NodePort
。
- kubectl get nodes
。在此示例中,节点 IP 地址为
- <host>
。您会看到类似下面这个屏幕截图的结果:点击查看大图
- YYY
请注意,与容器的连接需要几分钟才能到达 HTTP 端点。然后您会看到类似下面这个屏幕截图的结果:点击查看大图
- kubectl get services
端口上响应。
- XXX
参见下面这个 URL 凭证列表:
组件 | URL | 用户名和密码 |
---|---|---|
Decision Center |
| /
|
Decision Server 控制台 |
| /
|
Decision Server 运行服务 |
| 不需要用户名或密码。 |
Decision Runner 应用程序 |
| 不需要用户名或密码。 |
借助 Kubernetes,您可以轻松地扩展在 pod 中运行的容器。例如,您可能想向已在为决策服务运行时运行的两个容器中添加另外两个容器。
运行下图中所示的命令:
点击查看大图
检查现在集群中是否有 4 个
pod,如下面的屏幕截图所示:
- odm - decisionserviceruntime
点击查看大图
使用 Kubernetes 的另一个好处是自我修复。对于 IBM ODM,包括 Rule Execution Server Console(以
形式运行)在内的所有容器都会自动重新启动。宕机的控制台会在几秒内完成重启,并准备好接受新决策服务部署。其次,控制台容器的切换对决策执行容器完全透明。
- odm - decisionserverconsole
最后,您可以通过运行以下命令,轻松地解除 IBM ODM 拓扑结构的配备:
- kubectl
- delete
- –
- f odm
- -
- standard
- -
- bx
- -
- lite
- .
- yaml
- kubectl
- delete
- –
- f odm
- -
- standard
- -
- bx
- -
- standard
- .
- yaml
您学习了如何将 IBM ODM Docker 镜像推送到 Bluemix 中,并配备一个由在 Kubernetes 集群中运行的容器组成的 IBM ODM Standard 平台。
通过结合 Docker 和 Kubernetes,可以将 IBM ODM 平台部署在企业内部和任何支持这些行业标准的云平台。此方法使业务用户和开发团队能够大规模地管控和自动化企业决策。
Kubernetes 为 Docker 容器技术提供了补充,它使得集群能提供一个全功能的 IBM ODM 平台来捕获、自动化和管控频繁、反复的业务决策。这种组合使业务用户能定义和部署他们的决策服务,同时 Kubernetes 和 Docker 还为 IT 团队带来了 DevOps 敏捷性。
Bluemix 将 Kubernetes 集群作为一项服务提供,只需几次单击和几个命令即可获得它。您可以首先创建一个 Kubernetes 精简集群来测试 IBM ODM 部署。但是,多节点集群要获得全面的可用性和可扩展性优势,标准集群是首选的配置。
请注意,IBM 授权要求在集群节点上安装审计工具。如有任何问题,请通过 antony.viaud@fr.ibm.com 联系 Antony Viaud。
现在您已经理解了本教程中的概念,您可以针对自己的需求和集成环境来更具体地修改 IBM ODM Docker 文件,首先从数据库和安全性开始。要优化资源分配和控制迁移成本,可以使用 Kubernetes 自动扩展和滚动更新功能。
通过在 Bluemix 中运行一个完整的 IBM ODM 规则平台,可以组合基于规则的决策管理和任何云功能来开展创新。例如,可以包含 Watson Conversation 和其他认知服务,创造下一代人工智能企业应用程序。
感谢 Antony Viaud 评审本教程。
来源: http://www.ibm.com/developerworks/cn/analytics/library/ba-sql-portable-data-application-development/index.html