Traefik Dashboard not available (404)

Hello Traefik Community!

We’re running Traefik in our Kubernetes clusters with multiple replicas, Certbot, IngressRoutes, and the Consul service catalog. Now we’d like to access the Traefik dashboard, but we’re running into an issue:

By default, Traefik doesn’t seem to create a dedicated Service for the dashboard. Instead, it exposes container port 9000, which we’re attempting to port-forward using:

kubectl port-forward pod/traefik-ddc887c7f-q9bdn 9000:9000 \
  --container traefik \
  -n cluster-system

However, when we navigate to:

http://localhost:9000/dashboard

we get a 404. We’ve tried adding a trailing slash (/dashboard/) and switching to HTTPS, but neither works.

Questions:
1. Does anyone know why the dashboard is returning 404 even though we enabled it at port 9000?
2. Is there a way to create a dedicated Kubernetes Service for the dashboard instead of relying on port-forwarding within a single container?

Below are the relevant details:
• Traefik Version: 3.2.2
• Helm Chart Version: 33.2.1

Our Helm configuration:

- name: traefik
  namespace: {{ .Values.namespace }}
  chart: traefik/traefik
  version: 33.2.1
  values:
    - api:
        dashboard: true

    - persistence:
        enabled: false

    - volumes:
        {{- toYaml .Values.traefik.volumes | nindent 18 }}

    - additionalArguments:
        - "--log.level=DEBUG"
        - "--entrypoints.web.http.redirections.entryPoint.to=:443"
        - "--providers.file.filename=/config/dynamic.yml"
        - "--providers.consulcatalog.connectAware=true"
        - "--providers.consulcatalog.exposedByDefault=false"
        - "--providers.consulcatalog.connectByDefault=true"
        - "--providers.consulcatalog.servicename=traefik-system-ingress"
        - "--providers.consulcatalog.endpoint.address=consul-server.{{ .Values.namespace }}.svc.cluster.local:8501"
        - "--providers.consulcatalog.endpoint.scheme=https"
        - "--providers.consulcatalog.endpoint.tls.ca=/certs/consul-ca/tls.crt"
        - "--providers.consulcatalog.endpoint.token={{ .Values.traefik.consul.token }}"
          
    - deployment:
        replicas: 3
        podAnnotations:
          consul.hashicorp.com/connect-inject: "true"
          consul.hashicorp.com/transparent-proxy: "false"
          consul.hashicorp.com/connect-service: "traefik"
          prometheus.io/scrape: "true"
          prometheus.io/port: "8000"
          
    - ports:
        web:
          port: 8000
          expose:
            default: true
          exposedPort: 80
          protocol: TCP
          redirectTo:
            port: websecure
        websecure:
          port: 8443
          expose:
            default: true
          exposedPort: 443
          protocol: TCP
          tls:
            enabled: true
          http3:
            enabled: true
            
    - nodeSelector:
        {{- toYaml .Values.nodeSelector | nindent 18 }}

Any guidance or suggestions would be greatly appreciated. Thank you!