sleighzy/k3s-traefik-v2-kubernetes-crd

404 not found on dashboard

ricgatti opened this issue · 7 comments

Hi I'm following the guide you write, very useful to avoid the usage of helm.

I have created all resource in your file and the whoami test work correctly I got the same output as yours, but when I try to go on the dashboard with the ingressRoute apply I got 404 not found error after logging in succeffuly

curl localhost/dashboard -H "host:traefik.mydomain.io" -u test
Enter host password for user 'test':
404 page not found

This is the IngressRoute that I apply

apiVersion: traefik.containo.us/v1alpha1
kind: IngressRoute
metadata:
  name: traefik-dashboard
  namespace: default
spec:
  routes:
    - match: Host(`traefik.mydomain.io`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))
      kind: Rule
      services:
        - name: api@internal
          kind: TraefikService
      middlewares:
        - name: tools-auth-sec

I got traefik on kube-system namespace and all ingressRoute on default namespace.

Thanks for help

Hi @ricgatti . When you view the logs in your Traefik pod do you see any errors or other messages about this?

I'll have a look on my end and see if I can replicate the problem as well.

Hi, I put log on DEBUG level to hope to see more about error but that's what I found

time="2020-10-23T07:06:07Z" level=debug msg="Configuration received from provider kubernetescrd: {\"http\":{\"middlewares\":{\"default-traefik-basic-auth\":{\"basicAuth\":{\"users\":[\"radicalbit:$apr1$bg1Ro/Yw$ZyQ/OTp347cZnW5NnpEQj0\"]}}}},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=kubernetescrd
time="2020-10-23T07:06:07Z" level=debug msg="Added outgoing tracing middleware api@internal" middlewareType=TracingForwarder entryPointName=traefik routerName=api@internal middlewareName=tracing
time="2020-10-23T07:06:07Z" level=debug msg="Added outgoing tracing middleware dashboard@internal" entryPointName=traefik routerName=dashboard@internal middlewareName=tracing middlewareType=TracingForwarder
time="2020-10-23T07:06:07Z" level=debug msg="Creating middleware" middlewareType=StripPrefix middlewareName=dashboard_stripprefix@internal entryPointName=traefik routerName=dashboard@internal
time="2020-10-23T07:06:07Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal
time="2020-10-23T07:06:07Z" level=debug msg="Creating middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex
time="2020-10-23T07:06:07Z" level=debug msg="Setting up redirection from ^(http:\\/\\/(\\[[\\w:.]+\\]|[\\w\\._-]+)(:\\d+)?)\\/$ to ${1}/dashboard/" middlewareType=RedirectRegex entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal
time="2020-10-23T07:06:07Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal
time="2020-10-23T07:06:07Z" level=debug msg="Configuration received from provider kubernetescrd: {\"http\":{\"routers\":{\"default-traefik-dashboard-b0ce5ecc1866777e68e3\":{\"entryPoints\":[\"web\"],\"middlewares\":[\"default-traefik-basic-auth\"],\"service\":\"api@internal\",\"rule\":\"Host(`traefik.mydomain.io`) \\u0026\\u0026 (PathPrefix(`/api`) || PathPrefix(`/dashboard`))\"}},\"middlewares\":{\"default-traefik-basic-auth\":{\"basicAuth\":{\"users\":[\"radicalbit:$apr1$bg1Ro/Yw$ZyQ/OTp347cZnW5NnpEQj0\"]}}}},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=kubernetescrd
time="2020-10-23T07:06:07Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=traefik
time="2020-10-23T07:06:07Z" level=debug msg="No default certificate, generating one"
time="2020-10-23T07:06:09Z" level=debug msg="Skipping Kubernetes event kind *v1.Endpoints" providerName=kubernetescrd
time="2020-10-23T07:06:09Z" level=debug msg="Added outgoing tracing middleware dashboard@internal" entryPointName=traefik routerName=dashboard@internal middlewareName=tracing middlewareType=TracingForwarder
time="2020-10-23T07:06:09Z" level=debug msg="Creating middleware" middlewareName=dashboard_stripprefix@internal middlewareType=StripPrefix entryPointName=traefik routerName=dashboard@internal
time="2020-10-23T07:06:09Z" level=debug msg="Adding tracing to middleware" entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_stripprefix@internal
time="2020-10-23T07:06:09Z" level=debug msg="Creating middleware" middlewareType=RedirectRegex entryPointName=traefik routerName=dashboard@internal middlewareName=dashboard_redirect@internal
time="2020-10-23T07:06:09Z" level=debug msg="Setting up redirection from ^(http:\\/\\/(\\[[\\w:.]+\\]|[\\w\\._-]+)(:\\d+)?)\\/$ to ${1}/dashboard/" routerName=dashboard@internal middlewareName=dashboard_redirect@internal middlewareType=RedirectRegex entryPointName=traefik
time="2020-10-23T07:06:09Z" level=debug msg="Adding tracing to middleware" middlewareName=dashboard_redirect@internal entryPointName=traefik routerName=dashboard@internal
time="2020-10-23T07:06:09Z" level=debug msg="Added outgoing tracing middleware api@internal" entryPointName=traefik routerName=api@internal middlewareName=tracing middlewareType=TracingForwarder
time="2020-10-23T07:06:09Z" level=debug msg="Creating middleware" middlewareType=Recovery entryPointName=traefik middlewareName=traefik-internal-recovery
time="2020-10-23T07:06:09Z" level=debug msg="Added outgoing tracing middleware api@internal" middlewareType=TracingForwarder entryPointName=web routerName=default-traefik-dashboard-b0ce5ecc1866777e68e3@kubernetescrd middlewareName=tracing
time="2020-10-23T07:06:09Z" level=debug msg="Creating middleware" entryPointName=web routerName=default-traefik-dashboard-b0ce5ecc1866777e68e3@kubernetescrd middlewareName=default-traefik-basic-auth@kubernetescrd middlewareType=BasicAuth
time="2020-10-23T07:06:09Z" level=debug msg="Adding tracing to middleware" routerName=default-traefik-dashboard-b0ce5ecc1866777e68e3@kubernetescrd middlewareName=default-traefik-basic-auth@kubernetescrd entryPointName=web
time="2020-10-23T07:06:09Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2020-10-23T07:06:09Z" level=debug msg="No default certificate, generating one"
time="2020-10-23T07:06:11Z" level=debug msg="Skipping Kubernetes event kind *v1.Endpoints" providerName=kubernetescrd
time="2020-10-23T07:06:38Z" level=debug msg="Authentication succeeded" middlewareName=default-traefik-basic-auth@kubernetescrd middlewareType=BasicAuth
172.17.0.3 - radicalbit [23/Oct/2020:07:06:38 +0000] "GET /dashboard HTTP/1.1" 404 19 "-" "-" 1 "default-traefik-dashboard-b0ce5ecc1866777e68e3@kubernetescrd" "-" 0ms 

and this are the args used on traefik startup

- --api
- --api.dashboard=true
- --api.insecure=true
- --accesslog
- --log
- --log.Level=DEBUG
- --entrypoints.traefik.address=:8080
- --entrypoints.web.Address=:80
- --entryPoints.websecure.address=:443
- --providers.kubernetescrd

Hi @ricgatti , can you try your curl command again but make sure you have a trailing slash after /dashboard. I also get a 404 error without the trailing slash.

https://doc.traefik.io/traefik/operations/dashboard/

The trailing slash / in /dashboard/ is mandatory

This works fine for me, at least when using --api.insecure=true. I'll retest further in the coming days using the secure mode, but let me know if adding the trailing slash works for you.

This works fine for me, at least when using --api.insecure=true. I'll retest further in the coming days using the secure mode

This works fine even without --api.insecure=true.

Thanks a lot, @sleighzy with the trailing slash works also for me in both way secure and not secure

Fantastic!!

@ricgatti , I've merged a change to the README to add a trailing slash to the /dashboard urls and link to the docs as I realise the README doesn't contain the trailing slash either.