Manage cross-cluster embodied intelligence workloads natively with Kubernetes, from cloud GPU training to edge device deployment. Through unified job scheduling, cross-cluster Pod-to-Pod networking, and multi-runtime support (k8s preview, Docker/Raw experimental), RLark enables seamless collaboration between GPU clusters, robot arms, sensors, and other heterogeneous devices.
- [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: Native support for Kubernetes runtime (preview), with Docker and Raw runtimes in experimental/planned status — GPU clusters run k8s for large-scale training, edge devices run k8s or Docker for lightweight embodied deployment
- Cross-Cluster Resource Abstraction: Unify multi-site GPU clusters and edge devices via Domain (security 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 isolation, and user SSH authentication
- Observability: Prometheus metrics, real-time Pod log streaming, and web management UI
# 1. Install CLI
git clone https://github.com/RLinf/RLark
cd RLark && make build
# 2. Deploy control plane (Kubernetes mode)
./bin/rlarkadm install -f apps/rlark/docs/examples/deploy-control-plane.yaml
# 3. Deploy data plane Agent
./bin/rlarkadm install -f apps/rlark/docs/examples/deploy-data-plane.yaml
# 4. Create a training job
curl -X POST http://localhost:8080/api/v1/rlinf.io/v1alpha1/jobs \
-H "Content-Type: application/json" \
-d '{"apiVersion":"rlinf.io/v1alpha1","kind":"Job","metadata":{"name":"hello-world"},"spec":{"domain":"my-first-domain","tasks":[{"name":"trainer","head":true,"role":"Actor","agentType":"Kubernetes","kubernetes":{"workload":{"kind":"Deployment","replicas":1,"template":{"spec":{"containers":[{"name":"trainer","image":"busybox:latest","command":["sh","-c","echo Hello from rlark! && sleep 3600"]}]}}}}}}]}}'| 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.