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