diff --git a/docs/design/architecture/README.md b/docs/design/architecture/README.md index 296276a7b1..73d1ef459d 100644 --- a/docs/design/architecture/README.md +++ b/docs/design/architecture/README.md @@ -39,22 +39,10 @@ Kata Containers provides a ["shimv2"](#shim-v2-architecture) compatible runtime. The Kata Containers runtime is shim v2 ("shimv2") compatible. This section explains what this means. -### History - -In the old [Kata 1.x architecture](https://github.com/kata-containers/documentation/blob/master/design/architecture.md), -the Kata [runtime](#runtime) was an executable called `kata-runtime`. -The container manager called this executable multiple times when -creating each container. Each time the runtime was called a different -OCI command-line verb was provided. This architecture was simple, but -not well suited to creating VM based containers due to the issue of -handling state between calls. Additionally, the architecture suffered -from performance issues related to continually having to spawn new -instances of the runtime binary, and -[Kata shim](https://github.com/kata-containers/shim) and -[Kata proxy](https://github.com/kata-containers/proxy) processes for systems -that did not provide VSOCK. - -### An improved architecture +> **Note:** +> +> For a comparison with the Kata 1.x architecture, see +> [the architectural history document](history.md). The [containerd runtime shimv2 architecture](https://github.com/containerd/containerd/tree/main/runtime/v2) @@ -86,26 +74,6 @@ launch both Pod and OCI compatible containers with a single alone `kata-proxy` process is required, even if VSOCK is not available. -### Architectural comparison - -| Kata version | Kata Runtime process calls | Kata shim processes | Kata proxy processes (if no VSOCK) | -|-|-|-|-| -| 1.x | multiple per container | 1 per container connection | 1 | -| 2.x | 1 per VM (hosting any number of containers) | 0 | 0 | - -> **Notes:** -> -> - A single VM can host one or more containers. -> -> - The "Kata shim processes" column refers to the old -> [Kata shim](https://github.com/kata-containers/shim) (`kata-shim` binary), -> *not* the new shimv2 runtime instance (`containerd-shim-kata-v2` binary). - -The diagram below shows how the original architecture was simplified -with the advent of shimv2. - - - ## Root filesystem This document uses the term _rootfs_ to refer to a root filesystem diff --git a/docs/design/architecture/history.md b/docs/design/architecture/history.md new file mode 100644 index 0000000000..ca23396e5b --- /dev/null +++ b/docs/design/architecture/history.md @@ -0,0 +1,41 @@ +# History + +## Kata 1.x architecture + +In the old [Kata 1.x architecture](https://github.com/kata-containers/documentation/blob/master/design/architecture.md), +the Kata [runtime](README.md#runtime) was an executable called `kata-runtime`. +The container manager called this executable multiple times when +creating each container. Each time the runtime was called a different +OCI command-line verb was provided. This architecture was simple, but +not well suited to creating VM based containers due to the issue of +handling state between calls. Additionally, the architecture suffered +from performance issues related to continually having to spawn new +instances of the runtime binary, and +[Kata shim](https://github.com/kata-containers/shim) and +[Kata proxy](https://github.com/kata-containers/proxy) processes for systems +that did not provide VSOCK. + +## Kata 2.x architecture + +See the ["shimv2"](README.md#shim-v2-architecture) section of the +architecture document. + +## Architectural comparison + +| Kata version | Kata Runtime process calls | Kata shim processes | Kata proxy processes (if no VSOCK) | +|-|-|-|-| +| 1.x | multiple per container | 1 per container connection | 1 | +| 2.x | 1 per VM (hosting any number of containers) | 0 | 0 | + +> **Notes:** +> +> - A single VM can host one or more containers. +> +> - The "Kata shim processes" column refers to the old +> [Kata shim](https://github.com/kata-containers/shim) (`kata-shim` binary), +> *not* the new shimv2 runtime instance (`containerd-shim-kata-v2` binary). + +The diagram below shows how the original architecture was simplified +with the advent of shimv2. + +