dashboard not working with https - K8s Version- v1.19.6

3/15/2021

I have deployed Kubernetes Dashboard with a command:

$ kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.2.0/aio/deploy/recommended.yaml

and I've edited the Service as a Nodeport and configured Ingress object accordingly. I could able to login to dashboard with http but getting issue while login the same URL with https:

"TLS handshake error from 10.244.0.0:44950: remote error: tls: unknown certificate" .

When i configured ingress rule with ssl it is giving error:

"Client sent an HTTP request to an HTTPS server."

I have jenkins application running on same cluster with real certificate and i could able to login the jenkins url with https .

Cluster Information:
k8s cluster running on (Linux Server release 7.9)
kubernetes version (v1.19.6)
Request you to confirm if any suggestion to fix this issue

---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: kube-system-ingress
  namespace: kubernetes-dashboard
  annotations:
    kubernetes.io/ingress.class: "haproxy"
    ingress.kubernetes.io/ssl-passthrough: "false"
spec:
  tls:
  - hosts:
    - console.qa.test.com
    secretName: qa-pss-dashboard
  rules:
  - host: console.qa.test.com
    http:
      paths:
      - path: /
        backend:
          serviceName: kubernetes-dashboard
          servicePort: 8443
-- Rituraj
kubernetes
linux

1 Answer

2/3/2022

I think you have to add the annotation ingress.kubernetes.io/backend-protocol: "HTTPS"

Please not that the kubernetes dashboard service is exposed in 443 port, not 8443 that is related to the deployment (pod port).

so:

    backend:
      service:
        name: kubernetes-dashboard
        port:
          number: 443
-- Anas TAYAA
Source: StackOverflow