v1.0.0
github-actions
released this
24 Apr 13:57
·
46 commits
to refs/heads/main
since this release
This first release bring the basic functionalities of RIK, and is stable enough to be released. You can learn more about it through the README and through our documentation.
What features are available ?
Main purpose:
- Orchestrate workloads around a multi-node cluster
Components:
- Controller binary is used to manage the state of the cluster, it's the only source of truth
- Scheduler binary is used to determine the appropriate node for a workload
- Scheduler component is able to re-scheduler a workload when a worker is unhealthy
- Riklet binary is a worker, it receives workload from scheduler
- Rikctl binary can be used to manage your cluster
- Inter component communication is defined with
protobuf
Workloads:
- Workloads supported are
pod
andfunction
function
workloads expect to be bring a custom rootfs and linux kernel in order to runpod
workloads are containers which support containers from hub.docker.com
High-level architecture
┌──────────────────────────────────────────┐
│ Developer Computer │
│ ┌────────────────────────┐ │
│ │ Rikctl │ │
│ └────────────────────────┘ │
└─────────────────────┬────────────────────┘
│Communicate with Controller
│ HTTP API
┌───────────────┘
┌──────────┼───────────────────────────────────────┐
│ │ Master Node │
│ ▼ │
│ ┌────────────┐ ┌────────────┐ │
│ │ │ │ │ │
│ │ │ Request │ │ │
│ │ Controller │ Orchestration │ Scheduler │ │
│ │ │◀─────────────▶│ │ │
│ │ │ │ │ │
│ │ │ │ │ │
│ └────────────┘ └────────────┘ │
│ Manage ▲ │
│ Workloads │ │
└───────────────────────────────────────┼──────────┘
│
┌──────────────────────────┐ │
┌┴─────────────────────────┐│ │
┌┴─────────────────────────┐││ │
│ Worker Node │││ │
│ │││ │
│ │││ │
│ ┌────────────────┐ │││ │
│ │ │ │││ │
│ │ │ │││ │
│ │ Riklet │ │││ │
│ │ │◀───┼┼┼───────────┘
│ │ │ │││
│ │ │ │││
│ └────────────────┘ │││
│ │├┘
│ ├┘
└──────────────────────────┘