Multi-cri acts as an integration layer between Kubernetes and runtime environments that do not fit a single standard backend model. It exposes a CRI-compatible interface to the kubelet while internally translating requests through adapter logic, allowing one control path to orchestrate different execution mechanisms.
Beyond basic request forwarding, the project includes systemd-oriented container operations, automated image handling workflows, and support for realtime scheduling configuration when services require strict latency behavior. This makes the repository especially relevant for edge and research scenarios where runtime flexibility and deterministic service behavior must coexist.
Text format:
R. Rosmaninho, D. Raposo, P. Rito and S. Sargento, "Edge-Cloud Continuum Orchestration of Critical Services: A Smart-City Approach," in IEEE Transactions on Services Computing, vol. 18, no. 3, pp. 1381-1396, May-June 2025, doi: 10.1109/TSC.2025.3568251. keywords: {Resource management;Real-time systems;Computer architecture;Monitoring;Training;Quality of service;Network topology;Load management;5G mobile communication;Topology;Edge computing;smart-city;real-time;Kubernetes;MEC;5G},BibText format:
@ARTICLE{10994362,
author={Rosmaninho, Rodrigo and Raposo, Duarte and Rito, Pedro and Sargento, Susana},
journal={IEEE Transactions on Services Computing},
title={Edge-Cloud Continuum Orchestration of Critical Services: A Smart-City Approach},
year={2025},
volume={18},
number={3},
pages={1381-1396},
keywords={Resource management;Real-time systems;Computer architecture;Monitoring;Training;Quality of service;Network topology;Load management;5G mobile communication;Topology;Edge computing;smart-city;real-time;Kubernetes;MEC;5G},
doi={10.1109/TSC.2025.3568251}}
- services/multicri.service
- Systemd Unit file for the MultiCRI service itself
- pkg/cri/adapters/systemd/container.go
- Conversion of CRI requests into Systemd API calls
- pkg/cri/adapters/systemd/image.go
- Conversion of Image pull CRI requests into the execution of Ansible playbooks
- pkg/cri/runtime/realtime.go
- Logic for the automatic configuration of realtime scheduling parameters
- Build the executable
make build- Run the service
cp services/multicri.service /etc/systemd/system
systemctl enable multicri
systemctl start multicriImportant note: The kubelet must be configured to use the /var/run/multi-cri.sock socket as its container runtime. Also, if the host's underlying container runtime is not containerd, the relevant flag must be altered in the multicri.service unit file.