weaveworks / ignite

Ignite a Firecracker microVM
https://ignite.readthedocs.org
Apache License 2.0
3.49k stars 226 forks source link

VM doesn't start up (or shuts down immediately), timeout waiting for ignite-spawn startup #939

Open NiklasRosenstein opened 2 years ago

NiklasRosenstein commented 2 years ago

I'm trying to run an ignite VM on my dedicated server. I've followed the guide on https://ignite.readthedocs.io/en/stable/installation/.

$ lscpu | grep Virtualization
Virtualization:                  AMD-V
$ lsmod | grep kvm
kvm_amd               118784  0
kvm                   864256  1 kvm_amd
ccp                    98304  1 kvm_amd
$ uname -a
Linux dds-f73a0 5.13.0-51-generic #58~20.04.1-Ubuntu SMP Tue Jun 14 11:29:12 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
$ sudo ignite version
Ignite version: version.Info{Major:"0", Minor:"10", GitVersion:"v0.10.0", GitCommit:"4540abeb9ba6daba32a72ef2b799095c71ebacb0", GitTreeState:"clean", BuildDate:"2021-07-19T20:52:59Z", GoVersion:"go1.16.3", Compiler:"gc", Platform:"linux/amd64", SandboxImage:version.Image{Name:"weaveworks/ignite", Tag:"v0.10.0", Delimeter:":"}, KernelImage:version.Image{Name:"weaveworks/ignite-kernel", Tag:"5.10.51", Delimeter:":"}}
Firecracker version: v0.22.4
$ sudo docker version
Client:
 Version:           20.10.12
 API version:       1.41
 Go version:        go1.16.2
 Git commit:        20.10.12-0ubuntu2~20.04.1
 Built:             Wed Apr  6 02:14:38 2022
 OS/Arch:           linux/amd64
 Context:           default
 Experimental:      true

Server:
 Engine:
  Version:          20.10.12
  API version:      1.41 (minimum version 1.12)
  Go version:       go1.16.2
  Git commit:       20.10.12-0ubuntu2~20.04.1
  Built:            Thu Feb 10 15:03:35 2022
  OS/Arch:          linux/amd64
  Experimental:     false
 containerd:
  Version:          1.5.9-0ubuntu1~20.04.4
  GitCommit:
 runc:
  Version:          1.1.0-0ubuntu1~20.04.1
  GitCommit:
 docker-init:
  Version:          0.19.0
  GitCommit:
$ find /opt/cni/
/opt/cni/
/opt/cni/bin
/opt/cni/bin/host-device
...

The only thing that appears off to me here is that ignite version does not show a line with the Runtime.

Observed behavior

In one session:

sudo ignited daemon --log-level debug runtime docker
DEBU[0000] Using ignite default configurations
INFO[0000] Starting reconciliation loop...

In a parallel session:

$ sudo ignite run weaveworks/ignite-ubuntu
INFO[0001] Created VM with ID "88bfb38dc1a1f917" and name "hidden-river"
INFO[0001] Networking is handled by "cni"
INFO[0001] Started Firecracker VM "88bfb38dc1a1f917" in a container with ID "ignite-88bfb38dc1a1f917"
FATA[0121] timeout waiting for ignite-spawn startup
$ sudo ignite ps -a
VM ID                   IMAGE                           KERNEL                                  SIZE    CPUS    MEMORY          CREATED         STATUS  IPS     PORTS   NAME
88bfb38dc1a1f917        weaveworks/ignite-ubuntu:latest weaveworks/ignite-kernel:5.10.51        4.0 GB  1       512.0 MB        2m23s ago       Stopped                 hidden-river

There is no output from the ignited daemon while trying to start a VM with ignite. But a containerd process is started and it stays up, even after I remove the VM with ignite rm.

$ sudo ps -aux | grep ignite
[ ... ]
root       13046  0.0  0.0 114172  8908 ?        Sl   19:41   0:00 /usr/bin/containerd-shim-runc-v2 -namespace firecracker -id ignite-88bfb38dc1a1f917 -address /run/containerd/containerd.sock

What could be wrong?

Thanks for your help.

chrisyalamov commented 2 years ago

Same problem here, getting the following error trying to start a VM:

$ ignite start 9b1fe3579ab94d29
FATA[0000] [ERROR ExistingFile--opt-cni-bin-loopback]: File /opt/cni/bin/loopback, does not exist
[ERROR ExistingFile--opt-cni-bin-bridge]: File /opt/cni/bin/bridge, does not exist 

Running on Ubuntu 20.04 (LTS).

Update: Just tried on Debian and it seems to work

simon1tan1 commented 2 years ago

@chrisyalamov, looks like you are missing files. My /opt/cni/bin/ directory: bandwidth bridge dhcp firewall flannel host-device host-local ipvlan loopback macvlan portmap ptp sbr static tuning vlan vrf*

Perhaps reinstall