Skip to content
Yadong Ding edited this page Nov 1, 2023 · 16 revisions

Frequently Asked Questions

At any time, let's continue to update.

Q: Where can I find documentation?

A: You could find them in: https://github.com/dragonflyoss/nydus/tree/master/docs

Q: How to sync nydus images between different registries?

A: You could using nerdctl to sync nydus images with --unpack false

nerdctl pull --unpack false tomcat:latestnydusv6
nerdctl tag tomcat:latestnydusv6 ghcr.io/username/tomcat:latestnydusv6
nerdctl push --allow-nondistributable-artifacts   ghcr.io/username/tomcat:latestnydusv6

Q: Can't run the image built by nydus >= v2.2.x in nydus <=v2.1.3

A: Try nydus >= v2.1.4, the version fixed the nydusd error when running the images created by nydusify/buildkit/acceld using nydus-image >= 2.2, strongly recommend all users to upgrade.

Q: How to migrate the root dir of nydus shanpshotter?

A: Please refer to: https://github.com/containerd/nydus-snapshotter/issues/488

Troubleshooting

Q: Can't start nydus pod in K8s. Error: failed to get reader from content store: content digest sha256:*** not found

A: In some environments, the containerd will discard unpacked layers in the content store. So when the pause container is started, it is found that the snapshotter is nydus and needs to be unpacked again, but the data cannot be found in the content store.

  1. You could try to set discard_unpapcked_layers = false in /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd]
  discard_unpacked_layers = false
  1. Or please refer to the following documents to deploy pods in k8s: https://github.com/containerd/nydus-snapshotter/blob/main/docs/run_nydus_in_kubernetes.md

Q: Can't start nydus pod in K8s. Error: failed to find image ref of snapshot

A: Containerd CRI config disable_snapshot_annotations is not set to false. disable_snapshot_annotations disables to pass additional annotations (image related information) to snapshotters. These annotations are required by nydus snapshotter.

  1. You could configure disable_snapshot_annotations = false in /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd]
   snapshotter = "nydus"
   disable_snapshot_annotations = false

Q: Can't start nydus image. Error: failed to get stream processor for application/vnd.oci.image.layer.nydus.blob.v1: no processor for media-type: unknown

A: Nydus-snapshotter is not selected by containerd, causing the nydus image to fail to be parsed.

  1. You could try to configure [proxy_plugins] in /etc/containerd/config.toml
[proxy_plugins]
  [proxy_plugins.nydus]
    type = "snapshot"
    address = "/run/containerd-nydus/containerd-nydus-grpc.sock"
  1. If you wish to switch containerd's default snapshotter to nydus, you can also configure [plugins."io.containerd.grpc.v1.cri".containerd] in /etc/containerd/config.toml
[plugins."io.containerd.grpc.v1.cri".containerd]
   snapshotter = "nydus"
   disable_snapshot_annotations = false

Q: Can't pull nydus image from the registry. Error: temporarily failed to get blob.meta, Input/output error (os error 5)

A: There may be a problem with the network accessing the registry.

  1. Please check whether the firewall has opened access to the registry. In addition to the registry, the object storage service (AWS S3 / Alibaba OSS) associated with it may also need to allow access.
  2. Please check that the authentication to the registry is configured correctly. Try docker login your.registry.com or nerdctl login your.registry.com

Q: Can't start nydus image. Error: "invalid super flags 1b4" or Mount(MountFilesystem(Other("Rafs(FillSuperblock(Os { code: 22, kind: InvalidInput, message: \"Invalid argument\" }))")))

A: Try nydus >= v2.1.4, the version fixed the nydusd error when running the images created by nydusify/buildkit/acceld using nydus-image >= 2.2, strongly recommend all users to upgrade.

Q: Can't start nydus image in k8s. Error: failed to create snapshot: missing parent "k8s.io/2/sha256:******" bucket: not found

A: Try ctr -n k8s.io content fetch $pause-image-name, the $pause-image-name is the k8s pause image you are using.

This case occurs after using the default snapshotter (usually overlay snapshotter) of containerd to pull OCI v1 images and then switching to nydus snapshotter.

Q: Can't start nydus image. Error: transport: Error while dialing dial unix /run/containerd-nydus/containerd-nydus-grpc.sock: connect: connection refused

A: Nydus snapshotter (containerd-nydus-grpc) is not running, consider starting it.

Or the socket running by nydus-snapshotter is different from the containerd configuration, and needs to be modified to the same.

Q: Can't start nydus snapshotter container by helm/docker. Error: transport: Error while dialing dial unix /run/containerd-nydus/containerd-nydus-grpc.sock: connect: connection refused

A: Please remove nydus snapshotter configuration from [plugins."io.containerd.grpc.v1.cri".containerd] in /etc/containerd/config.toml.

You have already configured nydus in containerd, but the snapshotter itself needs to be started in the overlay, because it cannot depend on itself circularly.

Clone this wiki locally