No node created when installing microk8s
See original GitHub issueInstall microk8s, and unfortunately there was no Nodes inside the cluster, and therefore no Pods could be started.
When running:
$ microk8s.kubectl get nodes
No resources found.
Also when running
$ microk8s.kubectl get nodes
No resources found.
All Pods failed with the message: Warning FailedScheduling 6s (x37 over 10m) default-scheduler no nodes available to schedule pods
As per this article, I stopped Docker and reinstalled the snap, and started it again, but that did not solve the issue.
You can see the video of my attempt on Twitch for next 14 days, so you can see all the steps and workarounds I took.
I’ll add the Youtube version when it’s uploaded, so it’s here forever.
OS: Debian, Stretch
Docker Version: Client: Version: 18.03.0-ce API version: 1.37 Go version: go1.9.4 Git commit: 0520e24 Built: Wed Mar 21 23:10:06 2018 OS/Arch: linux/amd64 Experimental: false Orchestrator: swarm
Server: Engine: Version: 18.03.0-ce API version: 1.37 (minimum version 1.12) Go version: go1.9.4 Git commit: 0520e24 Built: Wed Mar 21 23:08:35 2018 OS/Arch: linux/amd64 Experimental: false
Issue Analytics
- State:
- Created 5 years ago
- Comments:12 (8 by maintainers)
Top GitHub Comments
The docker logs were very helpful. snap.microk8s.daemon-docker.service attempts to get its configuration from the default location
/etc/docker/daemon.json
this results in reading the config parameters of the already installed dockerd. It complains that thedata-root
is not known since this config argument replaced thegraph
parameter.The quick fix is to not use the
/etc/docker/daemon.json
:We will soon have this fix on edge, PR is on its way. Ultimately, this will be handles when we move all services to strict confinement.
The fix is released in edge and will hit beta soon.
We ship our own docker because of how snaps are supposed to work. Snaps pack the entire software stack they will need so that they can be deployed on any distribution and release. Its like docker containers, they package everything needed by the application and they run everywhere. If we tried to reuse the dockerd installed (if any) we would have to deal with whichever docker version the user has available.