Skip to main content

Deployment Instructions

Rill Flow is a distributed process orchestration and task scheduling execution framework, supporting both standalone and cluster deployments.

Standalone Deployment

Rill Flow can be deployed on a single machine, suitable for development, testing, and debugging scenarios. For specific deployment methods, refer to the QuickStart Document. referring to the Helm Installation Guide.For a specific way to deploy a single machine, refer to快速开始文档.

Kubernetes Deployment

Installing Helm

Developers can choose the appropriate installation method for Helm based on their actual environment by

Deploying Rill Flow

Deploy Rill Flow to a Kubernetes cluster with a single Helm command:

help repo add rill-flow https://rill-flow.github.io/rill-flow-helm-chart
help upgrade --install rill-flow-flow/rill-flow--n=rill-flow-create-namespace

View Rill Flow's deployment, please execute the following command:

kubtl get pod -n=rill-flow

Below is expected output:

NAME READY STATUS RESTARTS AGE
rill-flow-56b6f8ccbd-gml5n 1/1 Running 0 10m
rill-flow-cassandra-0 1/1 Running 0 9m55 s
rill-flow-jaeger-df446445-89wsh 1/1 Running 0 10m
rill-flow-redis-master-0 1/1 Running 0 10m
rill-flow-ui-858bffb6c5-enr2n 1/1 Running 0 10m

If your actual output matches the expected output, indicate that Rill Flow is deployed successfully on the Kubernetes cluster.

The above deployment will be enabled by default to start redish and trace, which will be used to develop test environments where redish and trace services are recommended. You can modify the start parameter to turn off redisch and trace components startup and replace with online redish and trace service address:

helm upgrade --install rill-flow rill-flow/rill-flow -n=rill-flow --create-namespace \
--set redis.enabled=false \
--set rillFlow.backend.env.rillFlowDescriptorRedisHost=${redis_host} \
--set rillFlow.backend.env.rillFlowDescriptorRedisPort=${redis_port} \
--set rillFlow.backend.env.rillFlowDefaultRedisHost=${redis_host} \
--set rillFlow.backend.env.rillFlowDefaultRedisPort=${redis_port} \
--set jaeger.enabled=false \
--set rillFlow.backend.env.rillFlowTraceEndpoint=${jaeger_endpoint} \
--set rillFlow.backend.env.rillFlowTraceQueryHost=${jaeger_query_server}

Note:

  • ${redis_host} and ${redis_port} are the IP and port of the production environment Redis.
  • ${jaeger_endpoint} is the Jaeger collector address.
  • ${jaeger_query_server}分别为Jaeger查询服务地址

help deploy Rill Flow's commonly used parameters below:

Parameter NameDefault valueDescription
rillFlow.backend.env.rillFlowDescriptorRedishostrill-flow-redis-master (k8s service address for redisarmed)Resis address to store flow chart (DAG) information
rillFlow.backend.env. rillFlowDescriptorRedisPort6379redisport to store flow chart (DAG) information
rillFlow.backend.env.rillFlowDefaultRedisHostrill-flow-redis-master (k8s service address for redisarmed)Redisaddress address to store Rill Flow other information
rillFlow.backend.env.rillFlowDefaultRedPort6379Redisport to store Rill Flow other information
rillFlow.backend.env.rillFlowTraceEndpointhttp://rill-flow-jaeger-collector:4317 (k8s service address for jaeger collector component)Trace Data Acquisition Service Address
rillFlow.backend.env.rillFlowTraceQueryPosthttp://rill-flow-jaeger-query:16686 (k8s service address for jaeger query)Query service address for front-end page
rillFlow.ui.backendServerhttp://rill-flow-service:8080 (k8s service address for the Rill Flow backend)Rill Flow backend service address for front-end calls
redis.enabletrueWhether to deploy the Rill Flow service to start redis
redis.auth.enabledfalseWhether password authentication is enabled on redis.
jaeger.enabledtrueWhether to deploy Rill Flow to start jaeger component

See for more information on parameters (value.yaml)

Docker Deployment

In the production environment, if there is a formal Redis and Jaeger service, reference is made to the following commands to change the online address: by modifying the environment variable

docker run -d --name rill-flow -p 8080:8080 -e rill_flow_descriptor_redis_host=${redis_ip} -e rill_flow_descriptor_redis_port=${redis_port} -e rill_flow_default_redis_host=${redis_ip} -e rill_flow_default_redis_port=${redis_port} -e rill_flow_trace_query_host=${trace_server} -e rill_flow_callback_url=${callback_url}  weibocom/rill-flow:latest  && \
docker run -d --name rill-flow-ui -p 8088:80 -e BACKEND_SERVER=${backend_server} weibocom/rill-flow-ui:latest

Note:

  • ${redis_ip} and ${redis_port} are the IP and port of the production environment Redis.
  • ${trace_server}为生产环境Jaeger查询地址。
  • ${backend_server}为Rill Flow生产环境的后端服务地址
  • ${callback_url}为Rill Flow生产环境的后端服务回调地址