类别

版本

您正在查看9.4 -版本的RapidMiner服务器文档点击这里查看最新版本

Kubernetes

我们的码头工人的图片可以部署到任何Kubernetes集群。这里我们提供示例部署配置和教程,但最终的部署取决于您的需求。

下面的指南需要一个正在运行的Kubernetes集群。我们用这些Kubernetes服务测试了我们的示例配置:

部署体系结构和定义

在我们的示例中,我们在Kubernetes上部署了PostgeSQL数据库服务器、RapidMiner服务器和一些Job agent。

要在Kubernetes上部署RapidMiner Server,需要定义服务豆荚

我们的示例配置使用两个持久卷:

  1. 用于存储PostgreSQL数据库数据的卷
  2. 用于RapidMiner服务器的RapidMiner Home的卷

要定义卷,可以应用以下Kubernetes Object Configuration YAML文件。

apiVersion: v1 kind: persistentvolumecclaim metadata: name: pgvolume-claim labels: app: database spec: accessModes:—ReadWriteOnce资源乐鱼体育安装:requests: storage: 2Gi——apiVersion: v1 kind: persistentvolumecclaim metadata: name: rmsvolume-claim labels: app: rapid -server spec: accessModes:—ReadWriteOnce资源:requests: storage: 10Gi

服务

为了部署示例配置,我们指定了三个Kubernetes服务端点:

  1. ActiveMQ服务端点是作业代理使用的内部端点(端口:5672)
  2. 数据库服务端点是一个内部端点,用于从RapidMiner服务器连接(端口:5432)。
  3. RapidMiner Server服务端点表示RapidMiner Server的公共web接口(端口:8080)。

注意:在不同的Kubernetes集群上,公共端点的定义可能不同。公共云提供商支持loadbalance类型,但是MicroK8S实现需要设置入口启用公共访问。

要定义服务端点,你可以应用以下Kubernetes Object Configuration YAML文件:

kind: Service apiVersion: v1元数据:名称:rapidminer-server-amq-svc标签:app: rapidminer-server-amq-svc角色:服务器规格:端口:-端口:5672 targetPort: amq选择器:app: rapidminer-server角色:服务器——kind: Service apiVersion: v1元数据:名称:postgresg -svc标签:app:数据库规格:端口:-端口:5432 targetPort: postgresport选择器:app:数据库——kind: Service apiVersion: v1元数据:名称:rapidminer-server-svc标签:app: rapidminer-server-svc角色:服务器规格:ports:—port: 8080 targetPort: rmswei selector: app: rapidminer-server role:服务器类型:LoadBalancer

pod /集装箱

我们的示例配置定义了以下3个部署:

  • Database pod包含PostgreSQL容器。的pgvolume-claim用作持久卷。我们还定义了子路径确保postgres容器的挂载点为空。
kind: Pod apiVersion: v1 metadata:名称:数据库标签:app:数据库spec:容器:—名称:数据库镜像:postgres:9.6 ports:—名称:postgresport containerPort: 5432 env:—名称:POSTGRES_DB值:rmsdb—名称:POSTGRES_USER值:rmsdbuser—名称:POSTGRES_PASSWORD值:rmsdbpassword volumounts:—名称:pgvolume mountPath: /var/lib/postgresql/data子路径:postgres volumes:—名称:pgvolume persistentvolumecclaim: claimName: pgvolume-claim
  • RapidMiner Server容器是用以下配置定义的。环境变量是基于我们的Docker镜像文档。的rmsvolume-claim用于提供持久的RapidMiner主文件夹。我们还定义了子路径确保第一次启动时的空挂载点,让RapidMiner服务器容器初始化RapidMiner主文件夹。
:豆荚apiVersion: v1元数据:名称:rapidminer-server标签:应用:rapidminer-server角色:服务器规范:容器:-名称:rapidminer-server形象:rapidminer / rapidminer-server: 9.4.1港口:-名称:rmswebui containerPort: 8080 -名称:amq containerPort: 5672 env: -名称:JOBSERVICE_QUEUE_ACTIVEMQ_USERNAME值:amq-user -名称:JOBSERVICE_QUEUE_ACTIVEMQ_PASSWORD值:amq-pass -名称:JOBSERVICE_AUTH_SECRET值:c29tZS1hdXRoLXNlY3JldAo = -名称:DBHOST值:postgres-svc -名称:DBSCHEMA值:rmsdb - name: DBUSER值:rmsdbuser - name: DBPASS值:rmsdbpassword volumounts: - name: rmsvolume mountPath: /persistent-rapidminer-home子路径:rapidminer-home卷:- name: rmsvolume persistentvolumecclaim: claimName: rmsvolume-claim
  • 作业代理容器使用部署Kubernetes对象类型进行部署,在我们的示例中提供复制并启动三个实例。
kind:部署apiVersion: apps/v1 kind:部署元数据:名称:job-agent标签:app: job-agent角色:执行规格:replicas: 3 selector: matchLabels: app: job-agent模板:元数据:标签:app: job-agent角色:执行规格:容器:-名称:job-agent镜像:rapidminer/rapidminer- execute -jobagent:9.4.1 env: -名称:RAPIDMINER_SERVER_HOST值:rapidminer-server-svc -名称:RAPIDMINER_SERVER_PORT值:'8080' -名称:JOBAGENT_QUEUE_ACTIVEMQ_URI值:failover:(tcp://rapidminer-server-amq-svc:5672)—name: JOBAGENT_QUEUE_ACTIVEMQ_USERNAME取值:amq-user—name: JOBAGENT_QUEUE_ACTIVEMQ_PASSWORD取值:amq-pass—name: JOBAGENT_AUTH_SECRET取值:c29tZS1hdXRoLXNlY3JldAo=

部署过程

根据上面显示的对象定义,你可以在Kubernetes集群上部署RapidMiner服务器,并使用数据库和Job Agent依赖项:

  • 确保与Kubernetes集群的连接正常
$ kubectl version客户端版本: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"}服务器版本:Version . .Info{Major:"1", Minor:"14", GitVersion:"v1.14.1", GitCommit:"b7394102d6ef778017f2ca4046abbaa23b88c290", GitTreeState:"clean", BuildDate:"2019-04-08T17:02:58Z", GoVersion:"go1.12.1",编译器:"gc",平台:"linux/amd64"}
  • 创建并检查卷
$ kubectl apply -f volumes。创建persistentvolumclaim / rmvolume -claim / persistentvolumclaim $ kubectl get pv PVC $ kubectl get pv pv
  • 创建和检查服务
$ kubectl apply -f services。$ kubectl get svc NAME - TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE postgresg -svc ClusterIP 10.152.183.3 . mysql ' service/rapidminer-server-svc created service/rapidminer-server-svc created service/rapidminer-server-svc created
        5432/TCP 72s rapidminer-server-amq-svc ClusterIP 10.152.183.128
         rapidminer-server-svc LoadBalancer 10.152.183.252 ****** 8080:30661/TCP 72
       
  • 部署服务
$ kubectl apply -f database。创建mysql /数据库:创建了$ kubectl apply -f job-agent。yaml的部署。应用程序/ job-agent创建
  • 检查正在运行的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