技术概述
本页面提供了RapidMiner平台背后部署技术的背景知识,并提供了关于常见部署管理任务的示例,如创建部署、扩展和缩小以及添加或删除可部署组件。
我们将组件发布为Docker映像集(在本文中也称为服务)。这些映像是单台和多台计算机部署的构建模块。
单台机器的部署
为了在一台机器上部署RapidMiner平台,我们选择了docker-compose
技术。
部署使用docker-compose
你需要:
- 安装了Docker的目标(物理或虚拟)机,Linux作为首选主机操作系统
- 一个
docker-compose.yml
部署描述文件,该文件描述了组件(服务)、网络配置、卷和环境变量 - 可选,但推荐
.env
配置文件,其中可以定义所需的参数并从docker-compose.yml
文件(这使部署配置更容易,更不容易出错)
在docker-compose部分我们提供这些docker-compose.yml
而且.env
文件到最常见的用例。这些模板应该开箱即用。
启动和停止部署
要启动这样的部署,可以使用docker-compose
命令行工具(从下载上述文件的目录):
启动整个平台(所有服务):
docker-compose了-
只启动选定的服务(例如Postgres数据库、RapidMiner服务器和作业代理)
编写-d rm-postgresql-svc rm-server-svc rm-server-job-agent-svc
下面是一些停止和重新启动服务的示例。
停止所有服务:
docker-compose下来
重新启动其中一个服务(例如被调用的RapidMiner服务器实例)
rm-server-svc
)以重新载入其配置:docker-compose重启rm-server-svc
扩展部署
扩展用例通常意味着扩展部署中作业代理容器的数量。
放大或缩小其中一个服务(例如RapidMiner Job Agent服务):
Docker-compose up——scale rm-server-job-agent-svc=5 -d
定制一个部署
对于每个docker映像,都可以设置一个环境变量列表,以便基于该映像启动docker容器。我们发布完整的图片参考为每个RapidMiner Docker映像。
我们的出版模板已经配置,以使定义的服务协同工作。配置参数(环境变量)被外部化到一个.env
配置文件,您可以在其中微调配置参数。有
- “全局”配置变量,用于多个服务(如AUTH_SECRET,用于RapidMiner服务器、作业代理和Jupyterhub服务)。
- “特定于服务的”配置变量(如作业代理的内存参数)
升级部署
要升级部署,只需要编辑您的docker-compose.yml
要包含计划升级的服务的新版本,然后重新启动受影响的服务(参见上面)。一定要检查图片参考用于可能需要的任何新的配置参数。
除了docker-compose
CLI工具可以使用码头工人部署管理器,我们与我们的云映像它是一个与基于docker组件的部署交互的web UI。
多个机器部署
对于多台机器部署,我们推荐使用Kubernetes作为编制技术。我们的码头工人的图片已经准备好部署到任何Kubernetes集群。
我们用以下Kubernetes服务测试了我们的示例配置:
在kubernetes模板部分提供了示例部署配置和教程,但是最终的部署取决于您的需求。
为每一个模板我们提供了—建议的卷定义,在这里您可以调整组件所需的存储大小—服务定义,这是由其他服务使用的内部服务(例如数据库服务)或外部服务(例如RapidMIner Server Web UI),它们是公开给用户的。容器定义的部署配置非常类似于docker-compose.yml
上面的文件,还包括所需的环境变量。
Kubernetes部署过程
的对象定义模板章节,您可以将RapidMiner服务器平台部署到Kubernetes集群:
- 确保到您的Kubernetes集群的连接正在工作
$ kubectl version客户端版本:版本号。Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:11:31Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"} Server Version: Version . Version: Version . "信息{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:02:58Z", GoVersion:"go1.12.1", Compiler:"gc", Platform:"linux/amd64"}
- 创建并检查卷
$ kubectl应用-f卷。Yaml persistentvolumeecclaim /rmsvolume-claim created $ kubectl get pv PVC $ kubectl get pv pv
- 创建和检查服务
$ kubectl apply -f services。yaml ' service/rapidminer-server-amq-svc created service/postgres-svc created service/rapidminer-server-svc created $ kubectl get svc NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE postgres-svc ClusterIP 10.152.183.35432/TCP 72s rapidminer-server-amq-svc ClusterIP 10.152.183.128 5672/TCP 72s rapidminer-server-svc LoadBalancer 10.152.183.252 ****** 8080:30661/TCP 72s
- 部署服务
$ kubectl apply -f database。Yaml pod/数据库创建$ kubectl apply -f rapidminer-server。Yaml pod/rapidminer-server创建$ kubectl apply -f job-agent。yaml的部署。一个pps/job-agent created
- 检查运行中的pod
$ kubectl get pod NAME READY STATUS重启AGE pod/database 1/1运行0 41m pod/job-agent-556b49567b-5cm8n 1/1运行0 44s pod/job-agent-556b49567b-6585h 1/1运行0 44s pod/job-agent-556b49567b-zk44g 1/1运行0 44s pod/rapidminer-server 1/1运行0 40m