minikube/docs/networking.md

2.1 KiB

Networking

The minikube VM is exposed to the host system via a host-only IP address, that can be obtained with the minikube ip command. Any services of type NodePort can be accessed over that IP address, on the NodePort.

To determine the NodePort for your service, you can use a kubectl command like this (note that nodePort begins with lowercase n in JSON output):

kubectl get service $SERVICE --output='jsonpath="{.spec.ports[0].nodePort}"'

We also have a shortcut for fetching the minikube IP and a service's NodePort:

minikube service --url $SERVICE

LoadBalancer emulation (minikube tunnel)

Services of type LoadBalancer can be exposed via the minikube tunnel command.

minikube tunnel

Will output:

out/minikube tunnel
Password: *****
Status:
        machine: minikube
        pid: 59088
        route: 10.96.0.0/12 -> 192.168.99.101
        minikube: Running
        services: []
    errors:
                minikube: no errors
                router: no errors
                loadbalancer emulator: no errors


Tunnel might ask you for password for creating and deleting network routes.

Cleaning up orphaned routes

If the minikube tunnel shuts down in an unclean way, it might leave a network route around. This case the ~/.minikube/tunnels.json file will contain an entry for that tunnel. To cleanup orphaned routes, run:

minikube tunnel --cleanup

(Advanced) Running tunnel as root to avoid entering password multiple times

minikube tunnel runs as a separate daemon, creates a network route on the host to the service CIDR of the cluster using the cluster's IP address as a gateway. Adding a route requires root privileges for the user, and thus there are differences in how to run minikube tunnel depending on the OS.

Recommended way to use on Linux with KVM2 driver and MacOSX with Hyperkit driver:

sudo -E minikube tunnel

Using VirtualBox on Windows, Mac and Linux both minikube start and minikube tunnel needs to be started from the same Administrator user session otherwise VBoxManage can't recognize the created VM.