kata-containers/docs/how-to/how-to-use-virtio-fs-nydus-with-kata.md
stevenhorsman 59ae244442 doc: Update crictl pod-config
- Ensure that our documented crictl pod config file contents have
uid  and namespace fields for compatibility with crictl 1.24+

This avoids a user potentially hitting the error:
```
getting sandbox status of pod "d3af2db414ce8": metadata.Name,
metadata.Namespace or metadata.Uid is not in metadata
"&PodSandboxMetadata{Name:nydus-sandbox,Uid:,Namespace:default,Attempt:1,}"

getting sandbox status of pod "-A": rpc error: code = NotFound desc = an
error occurred when try to find sandbox: not found
```

Fixes: #8092
Signed-off-by: stevenhorsman <steven@uk.ibm.com>
(cherry picked from commit 8f8c2215)
2023-10-02 14:53:46 +01:00

1.5 KiB

Kata Containers with virtio-fs-nydus

Introduction

Refer to kata-nydus-design for introduction and nydus has supported Kata Containers with hypervisor QEMU and CLH currently.

How to

You can use Kata Containers with nydus as follows,

  1. Use nydus latest branch;

  2. Deploy nydus environment as Nydus Setup for Containerd Environment;

  3. Start nydus-snapshotter with enable_nydus_overlayfs enabled;

  4. Use kata-containers latest branch to compile and build kata-containers.img;

  5. Update configuration-qemu.toml or configuration-clh.tomlto include:

shared_fs = "virtio-fs-nydus"
virtio_fs_daemon = "<nydusd binary path>"
virtio_fs_extra_args = []
  1. run crictl run -r kata nydus-container.yaml nydus-sandbox.yaml;

The nydus-sandbox.yaml looks like below:

metadata:
  attempt: 1
  name: nydus-sandbox
  uid: nydus-uid
  namespace: default
log_directory: /tmp
linux:
  security_context:
    namespace_options:
      network: 2
annotations:
  "io.containerd.osfeature": "nydus.remoteimage.v1"

The nydus-container.yaml looks like below:

metadata:
  name: nydus-container
image:
  image: localhost:5000/ubuntu-nydus:latest
command:
  - /bin/sleep
args:
  - 600
log_path: container.1.log