- doc: Fix invalid URLs - virtcontainers: fix vCPU calculation errors - Network: add ipvlan unmarshal - store: Add SetLogger API - versions: Bump to kernel 4.19.24 - cgroups: fix failed to remove sandbox cgroup - devices: fix attach count for vhost-user-blk - qemu: Cleanup Vm paths irrespective of Sandbox stop pass/fail - virtcontainers: reimplement sandbox cgroup - delete: force: Do not fail on non exiting container - vendor: add missing comma to Gopkg.lock - Unit test: fix bugs on a few unit tests on aarch64 - versions: update k8s, cri-o and containerd - versions: Update qemu-lite hash - virtcontainers: Improve debug messages when deleting files - versions: use clear linux latest rootfs. - shimv2: Send async task events to containerd/cri - Makefile: Set ARCH in GOPATH not set mode - Virtcontainers store - runtime: Do not error if only initrd/rootfs image installed - pullapprove: remove it - Reduce virtcontainers unit test noise - snap: add snapcraft store banner - kata-env: kata-env error out when there is no VERSION_ID. - ppc64le: Fix hotplug issue - Network interface removal and decoupling - Makefile: Provide default hypervisor CMD settings - ci: Add a CODEOWNERS file for github ack checks - shimv2: use the runtime config file passed from containerd/cri - cli: set config options before showing config paths - makefile: honor DESDIR on install - factory: do not destroy vm factory when checking status - runtime: Fix TestCCCheckCLIFunction on P9 systemdc26508virtcontainers: fix vCPU calculation errorsf540a80store: Add SetLogger API4357e85doc: Fix invalid URLs36141d2Network: add ipvlan unmarshal454775fcgroups: fix failed to remove sandbox cgroup768658fversions: Update kernel version to 4.19.2446e2f88devices: fix attach count for vhost-user-blk6daefdbqemu: Cleanup Vm paths irrespective of Sandbox stop pass/fail58d2785virtcontainers: don't try to talk with the proxy when it's not running62c393cvirtcontainers: change container's state to stop asap5201860virtcontainers: reimplement sandbox cgroup9758cdbvirtcontainers: move cpu cgroup implementationc78d6b0delete: force: Do not fail on non exiting containera136999vendor: Add missing comma to Gopkg.lock and dep ensure409a8a5versions: update k8s, cri-o and containerd23c554eunit-test: refine func TestGetCPUDetails1b967a4unit-test: add nolint comment to avoid unused warning3ec56earuntime: add appendBridges for arm64e93fb0bunit-test: test func for RunningOnVMM should be arch-dependent0679f6funit-test: refine qemu_arm64_test.go44e2b9aunit-test: struct TestDataa should be included in arch-indenpedent .go filea1c8590virtcontainers: add method to get hypervisor PIDc17dd11versions: Update qemu-lite hasha614273virtcontainers: Improve debug when create/delete files84b7165versions: use clear linux latest rootfs.81c7a96Makefile: Set ARCH in GOPATH not set mode96e524dshimv2: Send task events to containerd/cribb99e41virtcontainers: Fix Store related vm factory leak7b0376fvirtcontainers: Fix container.go cyclomatic complexityf8e7e30virtcontainers: Remove the resource storage original implementationfad23eavirtcontainers: Conversion to Stores962e1e6pullapprove: remove it2ecffdavirtcontainers: store: Add a ItemLock API6e9256fvirtcontainers: store: Add a Raw APIc25c608virtcontainers: store: Add a VC specific Storeef11bf5virtcontainers: store: Add a Delete APIf2ab58dvirtcontainers: store: Implement the filesystem backendd22cdf2virtcontainers: store: Add an internal backend interface6b87ecfvirtcontainers: store: Keep track of newly created Storesefd50ecvirtcontainers: Add a Store manager4be76e9virtcontainers: Initial Store implementation2affa1fvirtcontainers: Reduce hyperstart agent test noisea3eff87virtcontainers: Make proxy startup sequence less noisyf0312f6virtcontainers: Reduce filesystem test noisee402601virtcontainers: Reduce sandbox test noise799ac6evirtcontainers: Reduce qemu test noise560902cvirtcontainers: Reduce kata_agent test noise2093fe6virtcontainers: Reduce cc_proxy mock test noise79ed088virtcontainers: Reduce hyperstart mock test noisebe0726cruntime: Do not error if only initrd/rootfs image installed7222f53snap: add snapcraft store banner4f51687kata-env: kata-env error out when there is no VERSION_ID.a48e614ci: Add a CODEOWNERS file for github ack checksb1c6667vendor: Update govmm vendoringb0986a5ppc64le: Fix vCPU hotplug issue68043b5cli: set config options before showing config pathsf1a12ceshimv2: use the runtime config file passed from containerd/cri18dcd2cvirtcontainers: Decouple the network API from the sandbox oneb39cb1dvirtcontainers: Remove the network interfacea02c39eMakefile: Set arch regardless of GOPATH stated78a62dfactory: do not destroy vm factory when checking status718488bmakefile: honor DESDIR on installc93aa53runtime: Check SMT=on/off only for P8 or lesser Signed-off-by: Eric Ernst <eric.ernst@intel.com>
Runtime
This repository contains the runtime for the Kata Containers project.
For details of the other Kata Containers repositories, see the repository summary.
- Introduction
- License
- Platform support
- Download and install
- Quick start for developers
- Architecture overview
- Configuration
- Logging
- Debugging
- Limitations
- Community
- Further information
Introduction
kata-runtime, referred to as "the runtime", is the Command-Line Interface
(CLI) part of the Kata Containers runtime component. It leverages the
virtcontainers
package to provide a high-performance standards-compliant runtime that creates
hardware-virtualized containers.
The runtime is OCI-compatible, CRI-O-compatible, and Containerd-compatible, allowing it to work seamlessly with both Docker and Kubernetes respectively.
License
The code is licensed under an Apache 2.0 license.
See the license file for further details.
Platform support
Kata Containers currently works on systems supporting the following technologies:
- Intel VT-x technology.
- ARM Hyp mode (virtualization extension).
- IBM Power Systems.
- IBM Z mainframes.
Hardware requirements
The runtime has a built-in command to determine if your host system is capable of running a Kata Container:
$ kata-runtime kata-check
Note:
If you run the previous command as the
rootuser, further checks will be performed (e.g. it will check if another incompatible hypervisor is running):$ sudo kata-runtime kata-check
Download and install
See the installation guides available for various operating systems.
Quick start for developers
See the developer guide.
Architecture overview
See the architecture overview for details on the Kata Containers design.
Configuration
The runtime uses a TOML format configuration file called configuration.toml.
The file contains comments explaining all options.
Note:
The initial values in the configuration file provide a good default configuration. You might need to modify this file if you have specialist needs.
Since the runtime supports a
stateless system,
it checks for this configuration file in multiple locations, two of which are
built in to the runtime. The default location is
/usr/share/defaults/kata-containers/configuration.toml for a standard
system. However, if /etc/kata-containers/configuration.toml exists, this
takes priority.
The command below lists the full paths to the configuration files that the runtime attempts to load. The first path that exists is used:
$ kata-runtime --kata-show-default-config-paths
Aside from the built-in locations, it is possible to specify the path to a
custom configuration file using the --kata-config option:
$ kata-runtime --kata-config=/some/where/configuration.toml ...
The runtime will log the full path to the configuration file it is using. See the logging section for further details.
To see details of your systems runtime environment (including the location of the configuration file being used), run:
$ kata-runtime kata-env
Logging
The runtime provides --log= and --log-format= options. However, the
runtime always logs to the system log (syslog or journald).
To view runtime log output:
$ sudo journalctl -t kata-runtime
For detailed information and analysis on obtaining logs for other system components, see the documentation for the kata-log-parser tool.
Debugging
See the debugging section of the developer guide.
Limitations
See the limitations file for further details.
Community
Contact
See how to reach the community.
Further information
See the project table of contents and the documentation repository.