类别

版本

技术概述

本页面提供了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-composeCLI工具可以使用码头工人部署管理器,我们与我们的云映像它是一个与基于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.3
        5432/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