Kata Containers
Kata Containers
KataContainers.io
Contents
Project Overview
Technical Details
Governance
Get Involved
History
Linux* Kernel
Virtual Machine
Linux Kernel
Server Hardware
Hypervisor Based Containers
Container A Container B Container C
● Each container/pod is
App A App B App C hypervisor isolated
● As secure as a VM
Middleware A Middleware B Middleware C ● As fast as a container
● Seamless integration
Linux Kernel A Linux Kernel B Linux Kernel C with the container
ecosystem and
Virtual Machine Virtual Machine Virtual Machine
management layers
Linux* Kernel
Server Hardware
Isolation
Speed
Technical Details
Virtual Machine
Container Container
I/O OCI cmd/spec Command Exec
Container namespaces
Shim
Runtime
Shim
Agent
gRPC gRPC
Kernel
Proxy
gRPC over Yamux Hypervisor
Hypervisor serial interface
Virtual Machine
Container Container
Command Exec
Shim Agent
Shim Runtime
gRPC
Kernel
gRPC
Hypervisor
Hypervisor VSOCK socket
Fast as a Container
Create Start
$ kubectl apply -f nginx.yml
VM
Kernel Agent Start Pod
Boot
hotplug
Prepare Prepare
container Image Volumes
Small as a Container
MacVTAP
Pod
Kubernetes* veth pair Tap
Overlay
Network
Virtual Machine
Container networking namespace
Networking
tc
Pod
Kubernetes* veth pair Tap
Overlay mirror
Network
Virtual Machine
Container networking namespace
Storage
9pfs/virtio-blk
9pfs/virtio-blk
Container 1
Rootfs Volume
Overlay
Container 2
Rootfs Volume
9pfs/virtio-b 9pfs/virtio-blk
Overlay
lk
Virtual Machine
Multi-tenant Kubernetes*
VM VM VM VM
container
container container
container container
container container
container
Pod Pod Pod Pod
Pod Pod Pod Pod
VM VM VM VM VM VM VM VM
IaaS CaaS
Demo: Stackube - K8S with Hard Multi-tenancy
kubectl
k8s Node
Agent Initial implementation merged Shared PID ns, sub-reaping (agent is PID 1)
Linux Kernel 4.13.13 + one 9pfs patch Minimal kernel config definition
Agent Protocol V0.0.1 merged (pre-alpha) More declarative APIs, network APIs improved
Project Status - Code - Runtime
● Documentation
○ Missing at the moment
○ Clear Containers and runV documentation as a backup
● CI
○ Travis based for now: Unit testing only
○ Will move to a nested virtualization enabled and/or bare metal public cloud
■ Functional and integration test
■ From unit testing up to the higher levels of the stack (Kubernetes, OpenShift)
What’s Next?
1H’2018 Horizon
● 1.0 Release (parity with RunV and CC 3.0 with upgrade path)
● CRI integration: Frakti, CRI-O, containerd-cri
● OCI runtime spec support for hypervisor based containers
● OSV support
● Documented case studies
Governance
Governance
● Contributors
○ At least one github contribution for the past 12 months
● Maintainers
○ Active contributor, nominated by fellow maintainers
○ Can merge code
● Architecture Committee
○ Take high level architecture and roadmap decisions
○ 5 seats, elected by contributors
Governance
Architecture Committee
● The Architecture Committee is responsible for architectural decisions, including
standardization, and making final decisions if Maintainers disagree.
● It will be comprised of 5 members, who are appointed by the Maintainers at launch
but fully elected by Contributors within the first year.
● The initial Architecture committee members are Samuel Otiz (Intel), Xu Wang
(Hyper), Zhang Wei (Huawei) and Tim AllClair (Google).
Governance
Working Committee
● The Working Committee is intended to make non-technical decisions and help influence the project strategy,
including marketing and communications, product management and ecosystem support.
● Representatives are expected to be active contributors who are committed to the health and success of the
project.
● Recognizing the project will grow and change quickly in the first six months, and in order to encourage diversity
and participation, the Working Committee will be forming up and finalizing it’s structure after the project launch.
● Initial appointed members include Amy Leeland (Intel) and James Kulina (Hyper). During this initial period, the
participants will appoint a leader to help organize and run regular meetings, coordinate the various work streams
and help define the long-term structure.
● The initial task will be to determine 2018 plans and appropriate work streams, working groups and funding to
execute on those plans.
● Anyone can join! Get involved in the #working-committee channel on Slack: bit.ly/KataSlack (case sensitive)
Get Involved
Contribute
● Code ● Documentation
○ Unit tests for agent, shim and proxy ○ Getting Started guides
○ PR reviews (agent, shim) ○ Code documentation
○ Osbuilder support for more distros
● Features Requests
● gRPC ○ Open issues and PRs for any feature
○ Input needed: Do we cover it all? that you’d like to get from Kata
○ API documentation Containers
Community