Dashboard not reachable - helm install on k3s

Hi there,

I seem to be unable to get Traefik to serve its dashboard. I do have a server running a k3s and now I'm trying to install Traefik via Helm (using the Helm chart 20.0.8) with the following values.yaml

image:
  name: traefik
  pullPolicy: IfNotPresent

hub:
  enabled: false

deployment:
  enabled: true
  kind: Deployment
  replicas: 1
  annotations: {}
  podAnnotations: {}
  additionalContainers: []
  initContainers: []

ingressClass:
  enabled: true
  isDefaultClass: true
      
ingressRoute:
  dashboard:
    enabled: true
    annotations: {}
    labels: {}
    matchRule: PathPrefix(`/dashboard`) || PathPrefix(`/api`)
    entrypoints: ["traefik"]
    middlewares: []

providers:
  kubernetesCRD:
    enabled: true
    ingressClass: traefik-external
    allowExternalNameServices: true
  kubernetesIngress:
    enabled: true
    allowExternalNameServices: true
    publishedService:
      enabled: false

globalArguments:
  - "--global.sendanonymoususage=false"

additionalArguments:
  - "--serversTransport.insecureSkipVerify=true"
  - "--log.level=DEBUG"

ports:
  web:
    redirectTo: websecure
  websecure:
    tls:
      enabled: true

service:
  enabled: true
  type: LoadBalancer
  annotations: {}
  labels: {}
  spec:
    loadBalancerIP:  # my server's IP
  loadBalancerSourceRanges: []
  externalIPs: []

rbac:
  enabled: true

However although the Traefik Pod is spun up and answers with the default certificate I am unable to get to the dashboard.
I tried port-forwarding the pods port 9000 and then surfing to the 127.0.0.1:9000/dashboard/.
I tried surfing to the server's address with the route /dashboard/

But I simply get a 404 in all cases.

Can somebody explain to me how I can verify traefik is actually serving something or can get to the Dashboard? What am I doing wrong?

Hi @zwergdachs.

Thanks for your interest in Traefik!

Can you run Traefik in DEBUG mode and post the logs?

Hi @svx,
sorry for the delay, I'm on a tight schedule so I need to squeeze these tests in.

These are the logs of my latest test, only change to above is the DEBUG mode specified in the yaml (in addition to the the argument)

time="2023-02-01T11:15:54Z" level=info msg="Configuration loaded from flags."
time="2023-02-01T11:15:54Z" level=info msg="Traefik version 2.9.6 built on 2022-12-07T14:17:58Z"
time="2023-02-01T11:15:54Z" level=debug msg="Static configuration loaded {\"global\":{\"checkNewVersion\":true},\"serversTransport\":{\"insecureSkipVerify\":true,\"maxIdleConnsPerHost\":200},\"entryPoints\":{\"metrics\":{\"address\":\":9100/tcp\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}},\"traefik\":{\"address\":\":9000/tcp\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}},\"web\":{\"address\":\":8000/tcp\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{\"redirections\":{\"entryPoint\":{\"to\":\":443\",\"scheme\":\"https\",\"permanent\":true,\"priority\":2147483646}}},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}},\"websecure\":{\"address\":\":8443/tcp\",\"transport\":{\"lifeCycle\":{\"graceTimeOut\":\"10s\"},\"respondingTimeouts\":{\"idleTimeout\":\"3m0s\"}},\"forwardedHeaders\":{},\"http\":{\"tls\":{}},\"http2\":{\"maxConcurrentStreams\":250},\"udp\":{\"timeout\":\"3s\"}}},\"providers\":{\"providersThrottleDuration\":\"2s\",\"kubernetesIngress\":{\"allowExternalNameServices\":true},\"kubernetesCRD\":{\"allowExternalNameServices\":true,\"ingressClass\":\"traefik-external\"}},\"api\":{\"dashboard\":true},\"metrics\":{\"prometheus\":{\"buckets\":[0.1,0.3,1.2,5],\"addEntryPointsLabels\":true,\"addServicesLabels\":true,\"entryPoint\":\"metrics\"}},\"ping\":{\"entryPoint\":\"traefik\",\"terminatingStatusCode\":503},\"log\":{\"level\":\"DEBUG\",\"format\":\"common\"}}"
time="2023-02-01T11:15:54Z" level=info msg="\nStats collection is disabled.\nHelp us improve Traefik by turning this feature on :)\nMore details on: https://doc.traefik.io/traefik/contributing/data-collection/\n"
time="2023-02-01T11:15:54Z" level=debug msg="Configured Prometheus metrics" metricsProviderName=prometheus
time="2023-02-01T11:15:54Z" level=info msg="Starting provider aggregator aggregator.ProviderAggregator"
time="2023-02-01T11:15:54Z" level=debug msg="Starting TCP Server" entryPointName=web
time="2023-02-01T11:15:54Z" level=debug msg="Starting TCP Server" entryPointName=traefik
time="2023-02-01T11:15:54Z" level=debug msg="Starting TCP Server" entryPointName=websecure
time="2023-02-01T11:15:54Z" level=debug msg="Starting TCP Server" entryPointName=metrics
time="2023-02-01T11:15:54Z" level=info msg="Starting provider *traefik.Provider"
time="2023-02-01T11:15:54Z" level=debug msg="*traefik.Provider provider configuration: {}"
time="2023-02-01T11:15:54Z" level=debug msg="Configuration received: {\"http\":{\"routers\":{\"ping\":{\"entryPoints\":[\"traefik\"],\"service\":\"ping@internal\",\"rule\":\"PathPrefix(`/ping`)\",\"priority\":2147483647},\"prometheus\":{\"entryPoints\":[\"metrics\"],\"service\":\"prometheus@internal\",\"rule\":\"PathPrefix(`/metrics`)\",\"priority\":2147483647},\"web-to-443\":{\"entryPoints\":[\"web\"],\"middlewares\":[\"redirect-web-to-443\"],\"service\":\"noop@internal\",\"rule\":\"HostRegexp(`{host:.+}`)\",\"priority\":2147483646}},\"services\":{\"api\":{},\"dashboard\":{},\"noop\":{},\"ping\":{},\"prometheus\":{}},\"middlewares\":{\"redirect-web-to-443\":{\"redirectScheme\":{\"scheme\":\"https\",\"port\":\"443\",\"permanent\":true}}},\"models\":{\"websecure\":{\"tls\":{}}},\"serversTransports\":{\"default\":{\"insecureSkipVerify\":true,\"maxIdleConnsPerHost\":200}}},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=internal
time="2023-02-01T11:15:54Z" level=info msg="Starting provider *crd.Provider"
time="2023-02-01T11:15:54Z" level=debug msg="*crd.Provider provider configuration: {\"allowExternalNameServices\":true,\"ingressClass\":\"traefik-external\"}"
time="2023-02-01T11:15:54Z" level=info msg="label selector is: \"\"" providerName=kubernetescrd
time="2023-02-01T11:15:54Z" level=info msg="Creating in-cluster Provider client" providerName=kubernetescrd
time="2023-02-01T11:15:54Z" level=warning msg="ExternalName service loading is enabled, please ensure that this is expected (see AllowExternalNameServices option)" providerName=kubernetescrd
time="2023-02-01T11:15:54Z" level=info msg="Starting provider *ingress.Provider"
time="2023-02-01T11:15:54Z" level=debug msg="*ingress.Provider provider configuration: {\"allowExternalNameServices\":true}"
time="2023-02-01T11:15:54Z" level=info msg="ingress label selector is: \"\"" providerName=kubernetes
time="2023-02-01T11:15:54Z" level=info msg="Creating in-cluster Provider client" providerName=kubernetes
time="2023-02-01T11:15:54Z" level=warning msg="ExternalName service loading is enabled, please ensure that this is expected (see AllowExternalNameServices option)" providerName=kubernetes
time="2023-02-01T11:15:54Z" level=info msg="Starting provider *acme.ChallengeTLSALPN"
time="2023-02-01T11:15:54Z" level=debug msg="*acme.ChallengeTLSALPN provider configuration: {}"
time="2023-02-01T11:15:54Z" level=debug msg="Configuration received: {\"http\":{},\"tcp\":{},\"udp\":{},\"tls\":{}}" providerName=kubernetescrd
time="2023-02-01T11:15:54Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
time="2023-02-01T11:15:54Z" level=debug msg="Added outgoing tracing middleware noop@internal" routerName=web-to-443@internal middlewareName=tracing middlewareType=TracingForwarder entryPointName=web
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" middlewareName=redirect-web-to-443@internal middlewareType=RedirectScheme entryPointName=web routerName=web-to-443@internal
time="2023-02-01T11:15:54Z" level=debug msg="Setting up redirection to https 443" entryPointName=web routerName=web-to-443@internal middlewareName=redirect-web-to-443@internal middlewareType=RedirectScheme
time="2023-02-01T11:15:54Z" level=debug msg="Adding tracing to middleware" entryPointName=web middlewareName=redirect-web-to-443@internal routerName=web-to-443@internal
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2023-02-01T11:15:54Z" level=debug msg="Added outgoing tracing middleware ping@internal" entryPointName=traefik middlewareName=tracing middlewareType=TracingForwarder routerName=ping@internal
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2023-02-01T11:15:54Z" level=debug msg="Added outgoing tracing middleware prometheus@internal" entryPointName=metrics routerName=prometheus@internal middlewareName=tracing middlewareType=TracingForwarder
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=metrics
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" middlewareType=Metrics entryPointName=websecure middlewareName=metrics-entrypoint
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" middlewareName=metrics-entrypoint middlewareType=Metrics entryPointName=metrics
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=metrics middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:54Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:54Z" level=debug msg="Configuration received: {\"http\":{},\"tcp\":{},\"udp\":{}}" providerName=kubernetes
time="2023-02-01T11:15:55Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
time="2023-02-01T11:15:55Z" level=debug msg="Added outgoing tracing middleware noop@internal" routerName=web-to-443@internal middlewareName=tracing middlewareType=TracingForwarder entryPointName=web
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=web routerName=web-to-443@internal middlewareName=redirect-web-to-443@internal middlewareType=RedirectScheme
time="2023-02-01T11:15:55Z" level=debug msg="Setting up redirection to https 443" routerName=web-to-443@internal middlewareName=redirect-web-to-443@internal middlewareType=RedirectScheme entryPointName=web
time="2023-02-01T11:15:55Z" level=debug msg="Adding tracing to middleware" routerName=web-to-443@internal middlewareName=redirect-web-to-443@internal entryPointName=web
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=traefik-internal-recovery middlewareType=Recovery
time="2023-02-01T11:15:55Z" level=debug msg="Added outgoing tracing middleware ping@internal" middlewareName=tracing entryPointName=traefik routerName=ping@internal middlewareType=TracingForwarder
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=traefik
time="2023-02-01T11:15:55Z" level=debug msg="Added outgoing tracing middleware prometheus@internal" routerName=prometheus@internal entryPointName=metrics middlewareName=tracing middlewareType=TracingForwarder
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareType=Recovery middlewareName=traefik-internal-recovery entryPointName=metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=metrics middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareType=Metrics entryPointName=web middlewareName=metrics-entrypoint
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=metrics middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="No default certificate, fallback to the internal generated certificate" tlsStoreName=default
time="2023-02-01T11:15:55Z" level=debug msg="Added outgoing tracing middleware prometheus@internal" entryPointName=metrics routerName=prometheus@internal middlewareName=tracing middlewareType=TracingForwarder
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery entryPointName=metrics middlewareType=Recovery
time="2023-02-01T11:15:55Z" level=debug msg="Added outgoing tracing middleware noop@internal" entryPointName=web routerName=web-to-443@internal middlewareName=tracing middlewareType=TracingForwarder
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareName=redirect-web-to-443@internal middlewareType=RedirectScheme entryPointName=web routerName=web-to-443@internal
time="2023-02-01T11:15:55Z" level=debug msg="Setting up redirection to https 443" entryPointName=web routerName=web-to-443@internal middlewareName=redirect-web-to-443@internal middlewareType=RedirectScheme
time="2023-02-01T11:15:55Z" level=debug msg="Adding tracing to middleware" entryPointName=web routerName=web-to-443@internal middlewareName=redirect-web-to-443@internal
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareType=Recovery middlewareName=traefik-internal-recovery entryPointName=web
time="2023-02-01T11:15:55Z" level=debug msg="Added outgoing tracing middleware ping@internal" entryPointName=traefik routerName=ping@internal middlewareName=tracing middlewareType=TracingForwarder
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareName=traefik-internal-recovery middlewareType=Recovery entryPointName=traefik
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=websecure middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareType=Metrics entryPointName=metrics middlewareName=metrics-entrypoint
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareType=Metrics entryPointName=web middlewareName=metrics-entrypoint
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" middlewareType=Metrics entryPointName=websecure middlewareName=metrics-entrypoint
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=metrics middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=traefik middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Creating middleware" entryPointName=web middlewareName=metrics-entrypoint middlewareType=Metrics
time="2023-02-01T11:15:55Z" level=debug msg="Skipping Kubernetes event kind *v1.Service" providerName=kubernetescrd
time="2023-02-01T11:15:55Z" level=debug msg="Skipping Kubernetes event kind *v1.Service" providerName=kubernetes
time="2023-02-01T11:15:56Z" level=debug msg="Skipping Kubernetes event kind *v1.Endpoints" providerName=kubernetes
time="2023-02-01T11:15:56Z" level=debug msg="Skipping Kubernetes event kind *v1.Endpoints" providerName=kubernetescrd
time="2023-02-01T11:16:20Z" level=debug msg="Serving default certificate for request: \"\""
time="2023-02-01T11:16:22Z" level=debug msg="Serving default certificate for request: \"\""
time="2023-02-01T11:16:27Z" level=debug msg="Serving default certificate for request: \"\""
time="2023-02-01T11:16:39Z" level=debug msg="Serving default certificate for request: \"cloud.zwergdachs.de\""
time="2023-02-01T11:16:39Z" level=debug msg="http: TLS handshake error from 10.42.0.1:65389: remote error: tls: bad certificate"
time="2023-02-01T11:16:45Z" level=debug msg="Serving default certificate for request: \"zwergdachs.de\""
time="2023-02-01T11:16:45Z" level=debug msg="http: TLS handshake error from 10.42.0.1:9921: remote error: tls: bad certificate"
time="2023-02-01T11:16:48Z" level=debug msg="Serving default certificate for request: \"zwergdachs.de\""
time="2023-02-01T11:16:48Z" level=debug msg="http: TLS handshake error from 10.42.0.1:45378: remote error: tls: bad certificate"
time="2023-02-01T11:17:08Z" level=debug msg="Serving default certificate for request: \"zwergdachs.de\""
time="2023-02-01T11:18:30Z" level=debug msg="Serving default certificate for request: \"\""
time="2023-02-01T11:18:30Z" level=debug msg="http: TLS handshake error from 127.0.0.1:57730: remote error: tls: bad certificate"
time="2023-02-01T11:18:35Z" level=debug msg="Serving default certificate for request: \"\""

I guess you can ignore the TLS handshake errors, which are probably caused by some nextcloud clients polling the server. Does this help?

I think you need to set ports.traefik.exposed: true; EDIT this might not be true; perhaps you can still use the "traefik" entrypoint as the entrypoint for the dashboard IngressRoute without exposing it. Exposition publishes the port on the traefik Service, though, so I don't see how an IngressRoute would be able to target it without it being published, unless the CRD is able to handle that somehow. Worth trying though.