1 of 7

Kata Containers Runtimes

Architectural Review

2 of 7

(Proposed) Agenda

  • Requirements and Goals
  • High level architectures
  • Metrics
    • Features
    • Architectures and hypervisors
    • CI/tests
    • Documentation
  • Summary

3 of 7

Requirements (WIP see github issue #31)

  • OCI compatibility
  • CRI compatibility
  • runc CLI compatibility
  • Multi architecture
  • Multi hypervisor
  • Networking
  • IO
  • Virtualization overhead reduction
  • Tests and debugging

4 of 7

High level architecture - Clear Containers

  • kata-runtime-cc is an OCI runtime implementation on top of virtcontainers
    • OCI wrapper around the virtcontainers API
    • Translates OCI specs and commands into virtcontainers API
    • Detailed architecture documentation
  • virtcontainers is a hardware virtualized containers library
    • Provides CRI-like API
    • Runtime specification agnostic: CRI and OCI support

5 of 7

virtcontainers

kata-runtime-cc

OCI command/spec

virtcontainers API

6 of 7

High level architecture - virtcontainers

  • From virtcontainer’s README: virtcontainers's API is loosely inspired by the Kubernetes CRI
  • Pod and Container level APIs
  • Modularized, pluggable approach
    • Clear interfaces for hypervisors, agents, shims and proxies
    • Support both Clear Containers and Kata Containers components
    • kata-runtime-cc and cc-runtime are exactly the same code base
  • CNI and CNM
  • Block based and 9pfs storage
  • Direct device assignment
  • Accelerated user space IO (vhost-user)

7 of 7

High level architecture - runV