Files
kata-containers/src/runtime/README.md
Binbin Zhang a305bafeef docs: Update outdated URLs and keep them available
By comparing the content of the old url and the new url,
ensure that their content is consistent and does not contain ambiguities

Fixes: #4454

Signed-off-by: Binbin Zhang <binbin36520@gmail.com>
2022-06-15 16:34:28 +08:00

175 lines
5.7 KiB
Markdown

[![Go Report Card](https://goreportcard.com/badge/github.com/kata-containers/kata-containers)](https://goreportcard.com/report/github.com/kata-containers/kata-containers)
# Runtime
## Binary names
This repository contains the following components:
| Binary name | Description |
|-|-|
| `containerd-shim-kata-v2` | The [shimv2 runtime](../../docs/design/architecture/README.md#runtime) |
| `kata-runtime` | [utility program](../../docs/design/architecture/README.md#utility-program) |
| `kata-monitor` | [metrics collector daemon](cmd/kata-monitor/README.md) |
For details of the other Kata Containers repositories, see the
[repository summary](https://github.com/kata-containers/kata-containers).
## Introduction
The `containerd-shim-kata-v2` [binary](#binary-names) is the Kata
Containers [shimv2](../../docs/design/architecture/README.md#shim-v2-architecture) runtime. It leverages the
[virtcontainers](virtcontainers)
package to provide a high-performance standards-compliant runtime that creates
hardware-virtualized [Linux](https://www.kernel.org) containers running on Linux hosts.
The runtime is
[OCI](https://github.com/opencontainers/runtime-spec)-compatible,
[CRI-O](https://github.com/cri-o/cri-o)-compatible, and
[Containerd](https://github.com/containerd/containerd)-compatible,
allowing it
to work seamlessly with both Docker and Kubernetes respectively.
## Download and install
[![Get it from the Snap Store](https://snapcraft.io/static/images/badges/en/snap-store-black.svg)](https://snapcraft.io/kata-containers)
See the [installation guides](../../docs/install/README.md)
available for various operating systems.
## Architecture overview
See the [architecture overview](../../docs/design/architecture)
for details on the Kata Containers design.
## Configuration
The runtime uses a TOML format configuration file called `configuration.toml`.
The file is divided into sections for settings related to various
parts of the system including the runtime itself, the [agent](../agent) and
the [hypervisor](#hypervisor-specific-configuration).
Each option has a comment explaining its use.
> **Note:**
>
> The initial values in the configuration file provide a good default configuration.
> You may need to modify this file to optimise or tailor your system, or if you have
> specific requirements.
### Configuration file location
#### Runtime configuration file location
The shimv2 runtime looks for its configuration in the following places (in order):
- The `io.data containers.config.config_path` annotation specified
in the OCI configuration file (`config.json` file) used to create the pod sandbox.
- The containerd
[shimv2](/docs/design/architecture/README.md#shim-v2-architecture)
options passed to the runtime.
- The value of the `KATA_CONF_FILE` environment variable.
- The [default configuration paths](#stateless-systems).
#### Utility program configuration file location
The `kata-runtime` utility program looks for its configuration in the
following locations (in order):
- The path specified by the `--config` command-line option.
- The value of the `KATA_CONF_FILE` environment variable.
- The [default configuration paths](#stateless-systems).
> **Note:** For both binaries, the first path that exists will be used.
### Hypervisor specific configuration
Kata Containers supports multiple hypervisors so your `configuration.toml`
configuration file may be a symbolic link to a hypervisor-specific
configuration file. See
[the hypervisors document](../../docs/hypervisors.md) for further details.
### Stateless systems
Since the runtime supports a
[stateless system](https://clearlinux.org/about),
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 below command lists the full paths to the configuration files that the
runtime attempts to load. The first path that exists will be used:
```bash
$ kata-runtime --show-default-config-paths
```
The runtime will log the full path to the configuration file it is using. See
the [logging](#logging) section for further details.
To see details of your systems runtime environment (including the location of
the configuration file being used), run:
```bash
$ kata-runtime env
```
## Logging
For detailed information and analysis on obtaining logs for other system
components, see the documentation for the
[`kata-log-parser`](../tools/log-parser)
tool.
### Kata containerd shimv2
The Kata containerd shimv2 runtime logs through `containerd`, and its logs will be sent
to wherever the `containerd` logs are directed. However, the
shimv2 runtime also always logs to the system log (`syslog` or `journald`) using the `kata` identifier.
> **Note:** Kata logging [requires containerd debug to be enabled](../../docs/Developer-Guide.md#enabling-full-containerd-debug).
To view the `shimv2` runtime logs:
```bash
$ sudo journalctl -t kata
```
## Debugging
See the
[debugging section of the developer guide](../../docs/Developer-Guide.md#troubleshoot-kata-containers).
## Limitations
See the
[limitations file](../../docs/Limitations.md)
for further details.
## Community
See [the community repository](https://github.com/kata-containers/community).
### Contact
See [how to reach the community](https://github.com/kata-containers/community/blob/main/CONTRIBUTING.md#contact).
## Further information
See the
[project table of contents](https://github.com/kata-containers/kata-containers)
and the
[documentation repository](../../docs).
## Additional packages
For details of the other packages contained in this repository, see the
[package documentation](pkg).