Errores de red en minishift

2017/05/27

Intentando probar la versión 1.0.1 de minishift para linux con virtualbox 5.1.22-115126~Debian~stretch aparece el siguiente error en mi laptop (en la PC de escritorio no tuve el problema):

$ minishift start --vm-driver virtualbox
Starting local OpenShift cluster using 'virtualbox' hypervisor...
E0528 01:40:13.870597    1984 start.go:176] Error starting the VM: Error creating the VM. Error creating machine: Error checking the host: Error checking and/or regenerating the certs: There was an error validating certificates for host "192.168.99.100:2376": dial tcp 192.168.99.100:2376: i/o timeout
You can attempt to regenerate them using 'docker-machine regenerate-certs [name]'.
Be advised that this will trigger a Docker daemon restart which might stop running containers.
. Retrying.
-- Checking OpenShift client ... OK
-- Checking Docker client ... FAIL
   Error: cannot communicate with Docker
   Solution:

     Ensure that Docker is installed and accessible in your environment.
     Use your package manager or follow instructions at:

        https://docs.docker.com/linux/

   Caused By:
     Error: Get https://192.168.99.100:2376/_ping: dial tcp 192.168.99.100:2376: i/o timeout
Error starting the cluster.

Revisando las interfaces de red:

$ ip a
...
8: vboxnet0: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff

Como se ve la interfaz vboxnet0 creada por minishift en virtualbox no tiene asignada una ip o subred (BUSCAR EL MOTIVO). Debido a esto minishift no puede conectarse a la vm que acaba de crear y continuar su configuración.

Para solucionar el problema se establece manualmente la subred correspondiente a la interfaz vboxnet0 en 192.168.99.1/24 (la red utilizada por minishift por defecto):

$ sudo ip addr add 192.168.99.1/24 dev vboxnet0 \
    && sudo ip link set vboxnet0 up

A continuación se comprueba que quedó asignada correctamente la subred el dispositivo de red creado por virtualbox y también se prueba la conectividad con docker:

$ ip addr show vboxnet0
8: vboxnet0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether 0a:00:27:00:00:00 brd ff:ff:ff:ff:ff:ff
    inet 192.168.99.1/24 scope global vboxnet0
       valid_lft forever preferred_lft forever
    inet6 fe80::800:27ff:fe00:0/64 scope link
       valid_lft forever preferred_lft forever
$ telnet 192.168.99.100 2376
Trying 192.168.99.100...
Connected to 192.168.99.100.
Escape character is '^]'.
...

Se vuelve a iniciar minishift:

$ minishift start --vm-driver virtualbox
Starting local OpenShift cluster using 'virtualbox' hypervisor...
-- Checking OpenShift client ... OK
-- Checking Docker client ... OK
-- Checking Docker version ... OK
-- Checking for existing OpenShift container ... OK
-- Checking for openshift/origin:v1.5.0 image ...
   Pulling image openshift/origin:v1.5.0
...
-- Server Information ...
   OpenShift server started.
   The server is accessible via web console at:
       https://192.168.99.100:8443
...

Y con lo anterior se comprueba que minishift inició exitosamente.

Notas

Puede ser útil utilizar los siguientes comandos para listar y eliminar las interfaces creadas por virtualbox: