How to export microk8s ports to macOS host?

I want to setup a local Kubernetes cluster for testing on macOS. I selected microk8s running on macOS using Canonical’s 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     <none>        443/TCP          5h9m
kubernetes-bootcamp   NodePort   <none>        8080:31004/TCP   4h10m

multipass list

Name                    State             IPv4             Image
microk8s-vm             Running      Ubuntu 18.04 LTS

Pinging the instance with ping works as expected.

Update: I further tested connectivity by installing nginx inside the VM. Using curl 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
  • curl

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
  • curl
  • curl
  • curl

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!

Hi @notessensei

Sorry for the late reply.

The is a network internal to the the VM so the curl command should not work for those. curl should not work either because port 8080 is of the pod The curl should be returning the Hello Kubernetes bootcamp! message. Could you check there is not firewall (either on the host or on the VM) blocking this connection?