- versions: Update Kubernetes, containerd and cri-o - virtcontainers: fix sandbox store struct VFIODevice bug - virtcontainers: Add function supportGuestMemoryHotplug - make: add ability to skip go version check - cli: Fix console for big endian architecture - virtcontainers: fix not close socket with ethtool - build: introduction of archConvertStatFs function - network: support hotplug a nic several times - sandbox: Extend sandbox API - golang.mk: Check and install yq before use it - cli: refactor the config into a separated package - newContainer: Not attach device if it is a CDROM - build: check golang version meets min req. - network: Use constant string for "none" network model - runtime,netmon: build as Position-Independent-Executable - virtcontainers: Rely on new interface LinkType field - enable default network endpoints hotplug for vm factory - cli: fix the issue of using wrong path to get version - cli: add guest hook path option (v2) - factory: use customised deep compare - qemu: query migrate status - Add support for ipvlan network driver - Add cgroup support - vfio: Change the way the driver is fetched - vendor: Rely on new agent package types - network: Use tc filtering rules in bridge mode - cli: add configuration option to use or not use host netns - versions: Update golang to 1.10.4 - network: Marshal BridgedMacvlanEndpoint and MacvtapEndpoint - device: fix the issue of passing wrong device address using virtio-blk - create/run: Make bundle path default to cwd - virtcontainers: Add missing API trace calls - sandbox/virtcontainers: memory resource hotplug when create container. - virtcontainers: Add missing API release calls - qemu: Disable the default romfile used by virtio-pci - Refactor network.go - network: Sort endpoints by name - virtcontainers: qemu: Add proper support for virt machine type - network: Add support for macvlan and macvtap driver - memory: update: Update state using the memory removed - block: Advertise block support for q35 - vendor: fix govmm package766f9edversions: Update Kubernetes, containerd and cri-ocba7a88virtcontainers: fix sandbox store struct VFIODevice bug0796f2evirtcontainers: Add function supportGuestMemoryHotplugd73f27ctest: set arch for test TestHotplugRemoveMemorybf56858cli: Fix console for big endian architecture4b9a471virtcontainers: fix not close socket with ethtool58c1db5make: notify user if yq is going to be installedab43e2amake: add ability to skip go version checkb185f31build: introduction of archConvertStatFs function982381bapi: Cleanup StartContainer()5777381sandbox: Create and export Pause/ResumeContainer() to the API levelb298ec4sandbox: Create and export ProcessListContainer() to the API level3add296sandbox: Create and export KillContainer() to the API level7653726sandbox: Create and export StopContainer() to the API level109e12asandbox: Export Stop() to the API level6c3e266sandbox: Export Start() to the API levelf5048b7golang.mk: Check and install yq before use it2f98b3enetwork: support hotplug a nic several times842a00acli: refactor the config into a separated package193b324newContainer: Not attach device if it is a CDROM8ddc0cenetwork: Use constant string for "none" network model5199777virtcontainers: Rely on new interface LinkType field45b2191netmon: Rely on new interface field LinkType7bf84d0types: Replace agent/pkg/types with virtcontainers/pkg/types39b95ccvirtcontainers: Create a new package "types"658bdb1runtime,netmon: build as Position-Independent-Executablee9aa870network: enable network hotplug for vm factory95f4fdbbuild: check golang version meets min req.eaa5c7aCI: travis: call yq installercbf7fb2CI: travis: add yq installer script11c6753cli: fix the issue of using wrong path to get version21a671enetwork: set endpoint pci address when hotplug33abb3ecli: add guest hook path option in the configuration file34fe3b9cgroups: add host cgroup support523d49cvendor: add github.com/containerd/cgroups lib38d56c9netmon: Rely on agent/pkg/types instead of duplicating types309dcf9vendor: Update the agent vendoring based on pkg/types0acbbf0network: Add support for ipvlanc38792econfig: Add documentation for tcfilter in configuration.toml17be8e3network: Introduce constants for the network model strings5da973dtest: Add test to verify tc redirecte20dbd0network: Use tc redirect filter to redirect traffic to the VM526d55bversions: Update golang to 1.10.462992f5versions: Update cri containerd version for golang 1.10.2 fix31cf6fbvfio: Change the way the driver is fetched7a5a57dcli: test: add unit test for kata-env and kata-check14e5437cli: add configuration option to use or not use host netns6935279network: add new NetInterworkingModel "none" and endpoint type TapEndpointf8f2962virtcontainers: refactor hotplug qmp functions21d38e9network: Marshal BridgedMacvlanEndpoint and MacvtapEndpoint32ef29bfactory: use customised deep compare36306e2sandbox/virtcontainers: modify tests relate to memory hotplug.3f39d6evirtcontainers: Add missing API release callsb72a3cddevice: fix the issue of passing wrong device address using virtio-blkee9275fvirtcontainers: Add missing API trace calls8831245create/run: Make bundle path default to cwd0ae5b14qemu: Disable the default romfile used by virtio-pci6f0873avendor: Update govmm vendoring14f480asandbox/virtcontainers: combine addResources and updateResources8e2ee68sandbox/virtcontainers: memory resource hotplug when create container.b04691enetwork: Collapse log calls for endpoint Attach and Detachab15498network: Explicitly check for veth type3c590b0network: Rename VirtualEndpoint to VethEndpointdf8f21dnetwork: Refactor network tests.adcd910network: Refactor network.go8f1b28dnetwork: Sort endpoints by nameeb77a41qemu: make saveSandbox wait for migration completiondffb4f9virtcontainers: qemu: Add proper support for virt machine type3c7cf58tests: Add additional network tests to verifu link creation functions378191atests: Add tests for macvlan and macvtap endpointsdef070dgolint: Refactor to reduce cyclomatic complexity417c1f0macvtap: Add support for macvtap0de7572vendor: Update govmm vendoring581ff17macvlan: Assign random MAC address8847af8network: Add support for macvlan driver1f5792etest: fix unit test nil pointer.4697cf3memory: update: Update state using the memory removed.0cab192block: Advertise block support for q35f4cf213vendor: fix govmm package Signed-off-by: Peng Tao <bergwolf@gmail.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
- Quick start for users
- 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:
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
Quick start for users
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.