title: microk8s Broken K8s Dashboard and Kubeflow Dashboard
body: <p>I'm using microk8s in an Ubuntu 18.04 LTS VM, 3 cores, 60 GB storage, 12 GB of memory. I followed the instructions from microk8s website <a href="https://microk8s.io/docs/" rel="noreferrer">here</a> to install it.</p>
  
  <pre class="lang-sh prettyprint-override"><code>$ snap install microk8s --classic --channel=1.18/stable
  $ sudo microk8s start
  $ sudo microk8s enable dns storage dashboard
  $ sudo microk8s enable kubeflow
  </code></pre>
  
  <p>This took some time but everything got started. I have 110 pods running.  When Kubeflow finished installing I got </p>
  
  <pre class="lang-sh prettyprint-override"><code>Operator pods ready.
  Waiting for service pods to become ready.
  
  Congratulations, Kubeflow is now available.
  The dashboard is available at http://10.64.140.43.xip.io/
  
      Username: admin
      Password: VIVGI9KB7GEX6JNAQJXZTXD97S42XD
  </code></pre>
  
  <p>Which did not work. When I put that URL into my browser, I get a white screen.  I then tried to access the kubernetes dashboard and was able to login with my token but it says it cannot find any resources.  It doesn't show anything in namespaces, nodes, or anything. </p>
  
  <p><a href="https://i.stack.imgur.com/sD7uq.png" rel="noreferrer"><img src="https://i.stack.imgur.com/sD7uq.png" alt="enter image description here"></a></p>
  
  <p>The namespace is still at default because I cannot get it to show <code>kubeflow</code>.  The documentation says that kubeflow doesn't work for kubernetes 1.18 but if you install an older version of microk8s it doesn't give you the option to enable kubeflow.  That also doesn't explain why the dashboard is not working.  I don't really know what to check to fix this issue. I tried using the internal IP address for the kubeflow ambassador  (kubeflow load balancer) but that didn't seem to work either.  </p>
  
  <p>here is more detail on the <code>ambassador</code> service</p>
  
  <pre class="lang-sh prettyprint-override"><code>sudo microk8s kubectl -n kubeflow describe service/ambassador
  Name:                     ambassador
  Namespace:                kubeflow
  Labels:                   juju-app=ambassador
  Annotations:              juju.io/controller: 7fe60455-b041-4b5e-8c85-0c8155b0f52d
                            juju.io/model: f635bf6f-c598-4d5c-841b-e798f520a898
                            metallb.universe.tf/address-pool: default
  Selector:                 juju-app=ambassador
  Type:                     LoadBalancer
  IP:                       10.152.183.67
  LoadBalancer Ingress:     10.64.140.43
  Port:                     ambassador  80/TCP
  TargetPort:               80/TCP
  NodePort:                 ambassador  30085/TCP
  Endpoints:                10.1.40.17:80
  Session Affinity:         None
  External Traffic Policy:  Cluster
  Events:
    Type    Reason        Age                 From                Message
    ----    ------        ----                ----                -------
    Normal  IPAllocated   58m                 metallb-controller  Assigned IP "10.64.140.43"
    Normal  nodeAssigned  2m5s (x5 over 56m)  metallb-speaker     announcing from node "tatooine"
  </code></pre>