7
votes

I have Kubernetes Cluster with Ingress/Traefik controller

Also, I installed the dashboard using the standard config from here: https://raw.githubusercontent.com/kubernetes/dashboard/master/src/deploy/recommended/kubernetes-dashboard.yaml

I'm trying to access the Dashboard through Ingress, but I get 404 error

404 page not found

My ingress.yml file looks like this

apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    kubernetes.io/ingress.class: "traefik"
  name: app-ingress-system
  namespace: kube-system
spec:
  tls:
  - hosts:
    - dashboard.domain.com
    secretName: kubernetes-dashboard-certs
  rules:
  - host: dashboard.domain.com
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 443

I've tried different - path: (like /dashboard, /proxy) same result

1
Can you post mode details regarding the configuration. Also have you tried with port 80?Crou
Hi @Crou, thanks for the answer. I use config from here raw.githubusercontent.com/kubernetes/dashboard/master/src/…Taras Katrichenko
the path in your ingress rule need to path: /dashboardc4f4t0r

1 Answers

4
votes

This occurs because kubernetes-dashboard-certs doesnot have the file tls.crt and tls.key which are expected by traefik. You should get this in the traefik logs.

Next problems will be between traefik certificates and dashboard certificates. I still not understand how to fix properly this and configure traefik with the option :

 ssl.insecureSkipVerify: "true"

The last one I had, is that http endpoint doesnot accept login, then finally I declare the ingress that redirect http to https like this :

kubectl apply -f - << EOF
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  labels:
    k8s-app: kubernetes-dashboard
  name: kubernetes-dashboard
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/ingress.class: traefik
    traefik.ingress.kubernetes.io/ssl-redirect: "true"
spec:
  rules:
    - host: dashboard.domain.com
      http:
        paths:
          - path: /
            backend:
              serviceName: kubernetes-dashboard
              servicePort: 443
EOF