Manage cross-cluster embodied intelligence workloads through a unified cloud-native platform spanning cloud GPU training, cross-cluster collaboration, and edge device deployment across heterogeneous resources such as GPU clusters, robot arms, sensors, and cameras.
- [2026/08] RLark is now open-source.
- Embodied AI Workload Orchestration: From cloud GPU training (RL/LLM) to edge deployment (robot arm, sensor, camera), unified declarative Job/Workflow/Task abstraction across the full pipeline
- Multi-Runtime Data Plane: Kubernetes provides unified management for cloud GPU clusters and edge devices across the complete training-to-deployment lifecycle; Docker and Raw runtime support will extend coverage to lightweight edge scenarios where Kubernetes is not suitable
- Cross-Cluster Resource Abstraction: Unify multi-site GPU clusters and edge devices via Domain (virtual network domain) and Node (compute node) CRDs, with the control plane running on kcp
- Declarative Training Jobs: Multi-layer abstraction (Job/Workflow/Task) with DAG-based training pipelines and declarative Ray cluster definition
- Cross-Cluster Pod Networking: Virtual network based on TUN devices + gVisor netstack + SSH tunnels, enabling Pod-to-Pod communication without NAT traversal — cloud GPUs and edge robots communicate directly
- Certificate System: Dual-layer X.509 + SSH certificates for Agent access, Domain-scoped cross-cluster forwarding authentication, and user SSH authentication
- Observability: Prometheus metrics, real-time Pod log streaming, and web management UI
See the Quick Start Guide for a step-by-step guide to set up a local development environment and run your first training job.
# 1. Build
git clone https://github.com/RLinf/RLark
cd RLark && make build
# 2. Start control plane (Docker Compose)
docker compose -f apps/rlark/docs/examples/docker-compose.yml up -d
# 3. Start data plane (kind cluster)
kind create cluster --name rlark-data
# Then follow the quickstart guide to start components and create a job| Document | Description |
|---|---|
| Architecture | RLark core: technical architecture, component interactions, data flows |
| Core Concepts | Domain, Job, Task, Workflow, and other concepts |
| Quick Start | Local development environment setup and first training job |
| Deployment Guide | Production deployment and configuration |
| API Reference | Complete REST API reference |
| API Examples | End-to-end API usage examples |
| Embodied Runtime | Robot (ROS) and camera hardware management on edge nodes |
| Web UI | Frontend management console |
| Python SDK | Python client for robot/camera gRPC services |
| Go SDK | Go client for embodied-runtime gRPC stubs |
| Proto Definitions | gRPC service definitions for embodied-runtime |
- Language: Go (control plane/agent) + TypeScript (frontend)
- Orchestration: Kubernetes (kcp + kind)
- Networking: TUN device + gVisor netstack + SSH tunnel
- Certificates: X.509 mTLS + SSH certificates
- Database: PostgreSQL (Bun ORM)
- Monitoring: Prometheus
- Frontend: React + Vite + TypeScript
We welcome contributions! Please see CONTRIBUTING.md for guidelines, and CODE_OF_CONDUCT.md for our community standards.
RLark is licensed under the Apache License 2.0.

