kinvolk / kube-spawn

A tool for creating multi-node Kubernetes clusters on a Linux machine using kubeadm & systemd-nspawn. Brought to you by the Kinvolk team.
https://kinvolk.io
Apache License 2.0
440 stars 42 forks source link

Fails to register machines on machined. #352

Open kalium99 opened 4 years ago

kalium99 commented 4 years ago

Running kube-spawn start fails saying it timed out waiting for machines to start.

Poking around a bit, I can see that systemd-nspawn is in fact running, and I can see the scope is running in systemd. However, machinectl does not list any machines.

If I copy and paste the systemd-nspawn command output from ps, then the container starts fine and is registered with systemd-machined

However it seems that when you run /usr/bin/systemd-run --scope --property=DevicePolicy=auto /usr/bin/kube-spawn cni-spawn ... command that then forks the systemd-nspawn, it just fails to register with systemd-machined. As far as I can tell the container is running... I can't see anything useful in the logs either.

Has anyone seen these symptoms before?

This seems like a different problem to #339

I'm running systemd v243 on Fedora 31.

kalium99 commented 4 years ago

So looking further, it seems to be a problem with the way that systemd-nspawn is being launched.

For example when running systemd-nspawn directly under systemd-run it works fine, but when it's being ForkExec'ed from kube-spawn it doesn't.

Looking at the dbus-monitor --system and it's clear that there is nothing being sent to the org.freedesktop.machine1.Manager which explains why nothing is being registered with systemd-machined.

Still making my way through the strace to see what I can see, but this looks like it's likely a bug (or feature?) in systemd and nothing to do with kube-spawn.

jblankfeld commented 4 years ago

Running into this issue as well, it does not work on ArchLinux. Is this project still maintained ?