2.2 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.