When connecting to my-domain to /dashboard/
-
Ingress
-
port-forwarding
-
the service
-
pod itself
-
always responds with 404
traefik pod logs see my request
10.108.9.237 - - [07/Oct/2025:18:58:31 +0000] "GET /dashboard/ HTTP/1.1" 404 19 "-" "-" 25 "-" "-" 0ms
Here is my values.yaml
service:
enabled: true
type: LoadBalancer
annotations:
external-dns.alpha.kubernetes.io/hostname: "example.com"
service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
service.beta.kubernetes.io/aws-load-balancer-scheme: "internal"
service.beta.kubernetes.io/aws-load-balancer-nlb-target-type: "ip"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-protocol: "tcp"
service.beta.kubernetes.io/aws-load-balancer-healthcheck-port: "traffic-port"
service.beta.kubernetes.io/aws-load-balancer-name: "example-eks-nlb"
service.beta.kubernetes.io/aws-load-balancer-ssl-cert: "arn:aws:acm:eu-west-1:XXXXXXXXXXXXXXX:certificate/XXXXXXXXXXXXXXXXXXXXX"
ingressRoute:
dashboard:
enabled: true
# Custom match rule with host domain
matchRule: Host(`example.com`) && (PathPrefix(`/api`) || PathPrefix(`/dashboard`))
entryPoints: ["websecure", "web"]
# Add custom middlewares : authentication and redirection
middlewares:
- name: traefik-dashboard-auth
# Create the custom middlewares used by the IngressRoute dashboard (can also be created in another way).
# /!\ Yes, you need to replace "changeme" password with a better one. /!\
extraObjects:
- apiVersion: v1
kind: Secret
metadata:
name: traefik-dashboard-auth-secret
type: kubernetes.io/basic-auth
stringData:
username: admin
password: changeme # Just for testing
- apiVersion: traefik.io/v1alpha1
kind: Middleware
metadata:
name: traefik-dashboard-auth
spec:
basicAuth:
secret: traefik-dashboard-auth-secret
ports:
traefik: # Inner traefik services
port: 8080
expose:
default: true
exposedPort: 8080
web: # HTTP
expose:
default: true
port: 8000
exposedPort: 80
websecure: # HTTPS
expose:
default: true
port: 8443
exposedPort: 443
tls:
enabled: true
metrics:
port: 9100
expose:
default: true
exposedPort: 9100
providers:
kubernetesCRD:
enabled: true
kubernetesIngress:
enabled: true
kubernetesGateway:
enabled: false
gateway:
enabled: true
listeners:
web:
port: 8000
namespacePolicy:
from: All
# websecure::
# port: 8443
# protocol: HTTPS
logs:
general:
level: "DEBUG"
access:
enabled: true
