Dashboard setup help from helm

Hi everyone,

Thanks for this terrific software. I have tried to setup the metallb and trafefik + dashboard in my single node bare metal machine by basically following this tutorial (https://docs.traefik.io/v1.7/user-guide/kubernetes/).

In short, I cannot access the dashboard from traefik, only got 404 and 503. I am a newbie to k8s and traefik. So I would like to keep things simple, for example, allowing to access dashboard in LAN only, not expose to outside. It would be nice if I can keep the metallb and traefik in the same namespace too, in case I have to re-create the namespace again. Not sure if it causes problem. I have debugged this problem on and off a few weeks now. Every time I feel so close to resolve this problem, but it just never happened. For some reason, the traefik-web-ui service is being captured, but cannot be found. I would really like to get some help.

Here is the detail:
helm get values traefik

USER-SUPPLIED VALUES:
dashboard:
  auth:
    basic:
      admin: $apr1$1xn0uf8m$mgijAUdcIyuzCLSWeiO3J/
  domain: traefik.phoenix
  enabled: true
rbac:
  enabled: true
serviceType: LoadBalancer

cat traefik-dashboard.yml

apiVersion: v1
kind: Service
metadata:
  name: traefik-web-ui
  namespace: metallb
spec:
  # A post said rm the selector can resolve the problem, but not in my case
  #selector:
  #  k8s-app: traefik-ingress-lb
  ports:
  - name: web
    port: 80
    targetPort: 8080
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: traefik-dashboard
  namespace: metallb
  annotations:
   kubernetes.io/ingress.class: "traefik"
spec:
  rules:
  - host: dashboard-traefik.phoenix
    http:
      paths:
      - path: /
        backend:
          serviceName: traefik-web-ui
          servicePort: 80

kubectl get all -n metallb

NAME                                     READY   STATUS    RESTARTS   AGE
pod/metallb-controller-9f46bdfcb-2h2cg   1/1     Running   5          17d
pod/metallb-speaker-6868p                1/1     Running   5          17d
pod/traefik-c48b85ff4-7bwcq              1/1     Running   5          17d

NAME                        TYPE           CLUSTER-IP       EXTERNAL-IP     PORT(S)                      AGE
service/traefik             LoadBalancer   172.16.27.215    192.168.1.245   443:30981/TCP,80:30035/TCP   17d
service/traefik-dashboard   ClusterIP      172.16.179.156   <none>          80/TCP                       17d
service/traefik-web-ui      ClusterIP      172.16.184.141   <none>          80/TCP                       17d

NAME                             DESIRED   CURRENT   READY   UP-TO-DATE   AVAILABLE   NODE SELECTOR                 AGE
daemonset.apps/metallb-speaker   1         1         1       1            1           beta.kubernetes.io/os=linux   17d

NAME                                 READY   UP-TO-DATE   AVAILABLE   AGE
deployment.apps/metallb-controller   1/1     1            1           17d
deployment.apps/traefik              1/1     1            1           17d

NAME                                           DESIRED   CURRENT   READY   AGE
replicaset.apps/metallb-controller-9f46bdfcb   1         1         1       17d
replicaset.apps/traefik-c48b85ff4              1         1         1       17d

kubectl describe service/traefik-web-ui

Name:              traefik-web-ui
Namespace:         metallb
Labels:            <none>
Annotations:       Selector:  <none>
Type:              ClusterIP
IP:                172.16.184.141
Port:              web  80/TCP
TargetPort:        8080/TCP
Endpoints:         <none>
Session Affinity:  None
Events:            <none>

kubectl describe service/traefik-web-ui

Name:              traefik-web-ui
Namespace:         metallb
Labels:            <none>
Annotations:       Selector:  <none>
Type:              ClusterIP
IP:                172.16.184.141
Port:              web  80/TCP
TargetPort:        8080/TCP
Endpoints:         <none>
Session Affinity:  None
Events:            <none>
kingston@leaf:~/lab$ kubectl describe service/traefik
Name:                     traefik
Namespace:                metallb
Labels:                   app=traefik
                          app.kubernetes.io/managed-by=Helm
                          chart=traefik-1.86.2
                          heritage=Helm
                          release=traefik
Annotations:              meta.helm.sh/release-name: traefik
                          meta.helm.sh/release-namespace: metallb
Selector:                 app=traefik,release=traefik
Type:                     LoadBalancer
IP:                       172.16.27.215
LoadBalancer Ingress:     192.168.1.245
Port:                     https  443/TCP
TargetPort:               httpn/TCP
NodePort:                 https  30981/TCP
Endpoints:                172.18.202.243:8880
Port:                     http  80/TCP
TargetPort:               http/TCP
NodePort:                 http  30035/TCP
Endpoints:                172.18.202.243:80
Session Affinity:         None
External Traffic Policy:  Cluster
Events:
  Type    Reason        Age                 From             Message
  ----    ------        ----                ----             -------
  Normal  nodeAssigned  42h (x11 over 43h)  metallb-speaker  announcing from node "phoenix"
  Normal  nodeAssigned  24h (x6 over 25h)   metallb-speaker  announcing from node "phoenix"
  Normal  nodeAssigned  70s (x3 over 95s)   metallb-speaker  announcing from node "phoenix"

kubectl describe service/traefik-dashboard

Name:              traefik-dashboard
Namespace:         metallb
Labels:            app=traefik
                   app.kubernetes.io/managed-by=Helm
                   chart=traefik-1.86.2
                   heritage=Helm
                   release=traefik
Annotations:       meta.helm.sh/release-name: traefik
                   meta.helm.sh/release-namespace: metallb
Selector:          app=traefik,release=traefik
Type:              ClusterIP
IP:                172.16.179.156
Port:              dashboard-http  80/TCP
TargetPort:        8080/TCP
Endpoints:         172.18.202.243:8080
Session Affinity:  None
Events:            <none>

kubectl logs --since=1h service/traefik

(very long)
.
.
.
{"level":"warning","msg":"Endpoints not available for metallb/traefik-web-ui","time":"2020-05-14T02:34:45Z"}
{"level":"warning","msg":"Endpoints not available for metallb/traefik-web-ui","time":"2020-05-14T02:34:45Z"}

kubectl logs --since=1h service/traefik-dashboard

(very long)
.
.
.
{"level":"warning","msg":"Endpoints not available for metallb/traefik-web-ui","time":"2020-05-14T02:34:45Z"}
{"level":"warning","msg":"Endpoints not available for metallb/traefik-web-ui","time":"2020-05-14T02:34:45Z"}

kubectl logs service/traefik-web-ui

error: cannot get the logs from *v1.Service: invalid service 'traefik-web-ui': Service is defined without a selector

Testing URL:

curl http://192.168.1.245/ -H 'Host: traefik.phoenix'
404 page not found
curl https://192.168.1.245/ -H 'Host: traefik.phoenix'
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
curl http://192.168.1.245 -H 'Host: traefik.phoenix'
404 page not found
curl https://192.168.1.245 -H 'Host: traefik.phoenix'
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
curl http://192.168.1.245 -H 'Host: dashboard-traefik.phoenix'
Service Unavailable
curl https://192.168.1.245 -H 'Host: dashboard-traefik.phoenix'
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number
curl http://192.168.1.245/ -H 'Host: dashboard-traefik.phoenix'
Service Unavailable
curl https://192.168.1.245/ -H 'Host: dashboard-traefik.phoenix'
curl: (35) error:1408F10B:SSL routines:ssl3_get_record:wrong version number