I want to setup a local Kubernetes cluster for testing on macOS. I selected microk8s provided by Canonical. Kubernetes doesn't run native on macOS, but uses a Linux VM provided by multipass.
Installation was smooth and deployment of the kubernetes-bootcamp seemed to have worked. This is the output I got so far:
microk8s kubectl get services
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
kubernetes ClusterIP 10.152.183.1 <none> 443/TCP 5h9m
kubernetes-bootcamp NodePort 10.152.183.226 <none> 8080:31004/TCP 4h10m
multipass list
Name State IPv4 Image
microk8s-vm Running 192.168.64.2 Ubuntu 18.04 LTS
Pinging the instance with ping 192.168.64.2
works as expected.
Update: I further tested connectivity by installing nginx inside the VM. Using curl http://192.168.64.2
the nginx startpage inside the VM showed up on macOS.
Now when I shell into the VM using multipass exec microk8s-vm -- bash
, I can curl
into my deployed service as expected with both:
curl http://127.0.0.1:31004
curl http://10.152.183.226:8080
Getting the expected result of:
Hello Kubernetes bootcamp! | Running on: kubernetes-bootcamp-57978f5f5d-d977w | v=1
However I'm missing the step to access these url from macOS (both curl and a browser). I tried unsuccessfully:
curl http://10.152.183.226:8080
curl http://10.152.183.226:31004
curl http://192.168.64.2:8080
curl http://192.168.64.2:31004
I'm obviously missing a step to make the running services accessible from the macOS host. What did I miss? Help is very much appreciated!