Minikube: none without Docker installed: sudo systemctl start docker: exit status 5

Created on 3 Oct 2019  Β·  27Comments  Β·  Source: kubernetes/minikube

Unable to start minikube in RHEL 8 based, due to the missing container runtime as a systemd service.

**[l@minikube ~]$ sudo minikube start --vm-driver=none
πŸ˜„ minikube v1.4.0 on Centos 8.0.1905
πŸ’‘ Tip: Use 'minikube start -p ' to create a new cluster, or 'minikube delete' to delete this one.
πŸ”„ Starting existing none VM for "minikube" ...
βŒ› Waiting for the host to be provisioned ...

πŸ’£ Failed to enable container runtime: running command: sudo systemctl start docker: exit status 5

😿 Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
πŸ‘‰ https://github.com/kubernetes/minikube/issues/new/choose
[l@minikube ~]$ sudo minikube start --vm-driver=none --container-runtime=cri-o
πŸ˜„ minikube v1.4.0 on Centos 8.0.1905
πŸ’‘ Tip: Use 'minikube start -p ' to create a new cluster, or 'minikube delete' to delete this one.
πŸ”„ Starting existing none VM for "minikube" ...
βŒ› Waiting for the host to be provisioned ...

πŸ’£ Failed to enable container runtime: running command: sudo systemctl restart crio: exit status 5

😿 Sorry that minikube crashed. If this was unexpected, we would love to hear from you:
πŸ‘‰ https://github.com/kubernetes/minikube/issues/new/choose**:

CentOS Linux release 8.0.1905 (Core):

cnone-driver help wanted kinbug lifecyclrotten prioritbacklog

Most helpful comment

You are correct, but I don't want to use Docker, I'm using RHEL8 and want to use Podman for containers management .

All 27 comments

Which runtime did you install/want, and what was the entire output of that system to start command ?

It seems to install OK, as long as docker has been started and selinux has been disabled.

sudo yum install --nobest docker-ce
sudo setenforce 0

There doesn't seem to be any Docker version for CentOS 8 yet, so it installs an older version:

  • docker-ce-18.06.3.ce-3.el7.x86_64
$ sudo minikube start --vm-driver=none
πŸ˜„  minikube v1.4.0 on Centos 8.0.1905
🀹  Running on localhost (CPUs=2, Memory=3780MB, Disk=17394MB) ...
ℹ️   OS release is CentOS Linux 8 (Core)
🐳  Preparing Kubernetes v1.16.0 on Docker 18.06.3-ce ...
🚜  Pulling images ...
πŸš€  Launching Kubernetes ... 
🀹  Configuring local host environment ...

⚠️  The 'none' driver provides limited isolation and may reduce system security and reliability.
⚠️  For more information, see:
πŸ‘‰  https://minikube.sigs.k8s.io/docs/reference/drivers/none/

⚠️  kubectl and minikube configuration will be stored in /root
⚠️  To use kubectl or minikube commands as your own user, you may need to relocate them. For example, to overwrite your own settings, run:

    β–ͺ sudo mv /root/.kube /root/.minikube $HOME
    β–ͺ sudo chown -R $USER $HOME/.kube $HOME/.minikube

πŸ’‘  This can also be done automatically by setting the env var CHANGE_MINIKUBE_NONE_USER=true
βŒ›  Waiting for: apiserver proxy etcd scheduler controller dns
πŸ„  Done! kubectl is now configured to use "minikube"
πŸ’‘  For best results, install kubectl: https://kubernetes.io/docs/tasks/tools/install-kubectl/

The console looks rather poor, though:
minikube-centos8

You are correct, but I don't want to use Docker, I'm using RHEL8 and want to use Podman for containers management .

It seems that the messages above ("exit status 5") are a symptom of the software not being installed:

Failed to start crio.service: Unit crio.service not found.

You are correct, _but_ I don't want to use Docker, I'm using RHEL8 and want to use Podman for containers management .

It seems that there is no crio package for CentOS 8 yet, and for RHEL you are supposed to use OpenShift (rather than Kubernetes)... Podman can run containers, but for this you will need CRI-O.

Regular podman run is having some out-of-the-box issues as well:
error configuring network namespace for container 8cf402b2d46c31e7fc80fa3a215342b510e18ebc3510e8baf92df941cad4bbd0: Missing CNI default network

Possibly it could be the old version used (1.0.2). But /etc/cni/net.d is empty ?
Could try the "container-tools" module, but I think this will do (podman load)

@afbjorklund RHEL8 uses[1] runc as a Container runtime instead of Docker, and this is the argument I wanted to pass in the --container-runtime but it didn't work, minikube needs the container-runtime as a daemon while it is not a daemon in RHEL8 anymore.

[1] 1.3 in https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/8/html-single/building_running_and_managing_containers/index

@afbjorklund
The CNI default is there, here is the contents of /etc/cni/net.d/87-podman-bridge.conflist:

root@centos8 net.d]# cat 87-podman-bridge.conflist

{
    "cniVersion": "0.3.0",
    "name": "podman",
    "plugins": [
      {
        "type": "bridge",
        "bridge": "cni0",
        "isGateway": true,
        "ipMasq": true,
        "ipam": {
            "type": "host-local",
            "subnet": "10.88.0.0/16",
            "routes": [
                { "dst": "0.0.0.0/0" }
            ]
        }
      },
      {
        "type": "portmap",
        "capabilities": {
          "portMappings": true
        }
      }
    ]
}

RHEL8 uses[1] runc as a Container runtime instead of Docker,

Docker also uses runc, so those are _different_ types of runtimes...

We should give a better error message, when trying to use the none driver without having the runtime installed (and running). Currently the output is cryptic, and surely doesn't offer any help remedying:

πŸ’£ Failed to enable container runtime: running command: sudo systemctl start docker: exit status 5

It should say something happy like "you need to install a container runtime" (docker/containerd/cri-o)

@afbjorklund
Well the problem is that there is a container runtime already installed in the RHEL8/CentOS8, but the problem is that minikube can't see it, because minikube sees the container runtime only if it is a service/daemon, while it is in the RHEL8/CentOS8 is an embedded with systemd (serverless style).

@laith-leo : maybe this helps to explain: https://www.ianlewis.org/en/tag/container-runtime-series

The CNI default is there, here is the contents of /etc/cni/net.d/87-podman-bridge.conflist

Yes, it _was_ included with the podman package. No idea why the file when missing, first time.

I was able to get CRI-O 1.15.2 running, but it took a _lot_ of hand-holding to get it to actually start...

There are no packages yet, so I used the static builds (some of them, like conmon, even missing!)

You need:

  • crio-v1.15.2.tar.gz (binary)
  • cri-o-1.15.2.tar.gz (source)
  • conmon-2.0.1.tar.gz (source) <-- build this
  • /usr/bin/runc (yum install runc)
  • crictl-v1.15.0-linux-amd64.tar.gz (binary)

This will _definitely_ need some bundling, before it is usable. Hopefully some proper RPMS, too ?


The current kubeadm instructions don't work at all (i.e. the yum repository is completely empty)

# Install prerequisites
yum-config-manager --add-repo=https://cbs.centos.org/repos/paas7-crio-115-release/x86_64/os/

# Install CRI-O
yum install --nogpgcheck cri-o

See: https://github.com/cri-o/cri-o/issues/2833

And podman is 1.0.2-dev

And for the _important_ stuff, in order to get the emojis working in gnome-terminal you need:

sudo yum install google-noto-emoji-color-fonts

Then it looks better:

minikube-emojis

I knew it that the only to get the things worked is by building and compling the things from source code which is not ideal! I would like to use a regular rpm package from a stable system repository.
From our conversation, I understand that minikube doesn't work in RHEL8/CentOS8. with standard packages and installations.

It does work OK, but you are right in that the repositories are not ready yet. The recommendation is to stay with CentOS 7 until they are... (later this year)

You can always use the regular minikube iso, rather than running directly on your host. I haven’t tried, but both VirtualBox and libvirt (KVM) should work.

And I found out why my podman installation had been broken, it was after the minikube delete:

https://github.com/cri-o/cri-o/blob/master/tutorials/kubeadm.md

First, CRI-O and kubeadm reset don't play well together, as kubeadm reset empties /etc/cni/net.d/.

So that means uninstalling kubernetes breaks all CNI. Not cool.

Added #5547 (about "/usr/local/bin") and #5549 (about "docker") for the bugs found when testing this.

I swear that https://minikube.sigs.k8s.io/docs/reference/drivers/none/ used to say that Docker was the only supported container runtime for none, but it must have disappeared in a refactor.

I would like to see #5549 get fixed though.

Marking this as a bug because the user experience here is so bad.

  • We should output a clear error message if Docker is not installed
  • We should output a clear error message if none is used with a non-Docker runtime

Help wanted!

we still need to do this

Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale.
Stale issues rot after an additional 30d of inactivity and eventually close.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale

Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten.
Rotten issues close after an additional 30d of inactivity.

If this issue is safe to close now please do so with /close.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

@fejta-bot: Closing this issue.

In response to this:

Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen.
Mark the issue as fresh with /remove-lifecycle rotten.

Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.

Was this page helpful?
0 / 5 - 0 ratings