Container Runtime Support
Last updated
Last updated
Using the process as a primitive, cedana supports multiple container runtimes for checkpoint/restore. As we continue to abstract away the concept of what a container is (cgroups, overlay, namespaces, etc.) we'll continue to add support for more runtimes as well as increase support for currently supported ones.
The container ecosystem can get confusing, especially when dealing with runtimes. Currently, cedana only supports containers using the runc
low-level runtime. Below are the ones that we have tested with and support working with.
runtime/abstraction | level of support | well-tested? | notes |
---|---|---|---|
To support higher level container abstractions (like containerd, docker, etc) we perform a runc + rootfs checkpoint. Currently, you can directly perform a containerd checkpoint (which is a runc + containerd store rootfs checkpoint) and a separate crio rootfs checkpoint.
process
full
yes
simplest abstraction level, works with everything
runc
full
yes
simplest abstraction level, all other management layers need to be using runc
containerd (runc + rootfs)
full
yes
works well, works in kubernetes
kata containers
experimental
no
works with cedana, but need to increase test coverage
sysbox + crio (rootfs only)
full
yes
sysbox virtualization of proc and use of systemd makes process-level checkpoint/restore difficult
docker
mid
no
should just work
podman
mid
no
should just work, but untested in a little bit