skip to Main Content

The whole cluster consists of 3 nodes and everything seems to run correctly:

$ kubectl get pods --all-namespaces
NAMESPACE              NAME                                         READY   STATUS    RESTARTS        AGE
default                ingress-nginx-controller-5c8d66c76d-wk26n    1/1     Running   0               12h
ingress-nginx-2        ingress-nginx-2-controller-6bfb65b8-9zcjm    1/1     Running   0               12h
kube-system            calico-kube-controllers-684bcfdc59-2p72w     1/1     Running   1 (7d11h ago)   7d11h
kube-system            calico-node-4zdwr                            1/1     Running   2 (5d10h ago)   7d11h
kube-system            calico-node-g5zt7                            1/1     Running   0               7d11h
kube-system            calico-node-x4whm                            1/1     Running   0               7d11h
kube-system            coredns-8474476ff8-jcj96                     1/1     Running   0               5d10h
kube-system            coredns-8474476ff8-v5rvz                     1/1     Running   0               5d10h
kube-system            dns-autoscaler-5ffdc7f89d-9s7rl              1/1     Running   2 (5d10h ago)   7d11h
kube-system            kube-apiserver-node1                         1/1     Running   2 (5d10h ago)   7d11h
kube-system            kube-controller-manager-node1                1/1     Running   3 (5d10h ago)   7d11h
kube-system            kube-proxy-2x8fg                             1/1     Running   2 (5d10h ago)   7d11h
kube-system            kube-proxy-pqqv7                             1/1     Running   0               7d11h
kube-system            kube-proxy-wdb45                             1/1     Running   0               7d11h
kube-system            kube-scheduler-node1                         1/1     Running   3 (5d10h ago)   7d11h
kube-system            nginx-proxy-node2                            1/1     Running   0               7d11h
kube-system            nginx-proxy-node3                            1/1     Running   0               7d11h
kube-system            nodelocaldns-6mrqv                           1/1     Running   2 (5d10h ago)   7d11h
kube-system            nodelocaldns-lsv8x                           1/1     Running   0               7d11h
kube-system            nodelocaldns-pq6xl                           1/1     Running   0               7d11h
kubernetes-dashboard   dashboard-metrics-scraper-856586f554-6s52r   1/1     Running   0               4d11h
kubernetes-dashboard   kubernetes-dashboard-67484c44f6-gp8r5        1/1     Running   0               4d11h

The Dashboard service works fine as well:

$ kubectl get svc -n kubernetes-dashboard
NAME                        TYPE        CLUSTER-IP     EXTERNAL-IP   PORT(S)    AGE
dashboard-metrics-scraper   ClusterIP   10.233.20.30   <none>        8000/TCP   4d11h
kubernetes-dashboard        ClusterIP   10.233.62.70   <none>        443/TCP    4d11h

What I did recently, was creating an Ingress to expose the Dashboard to be available globally:

$ cat ingress.yml
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: dashboard
spec:
  defaultBackend:
    service:
      name: kubernetes-dashboard
      port:
        number: 443

After applying the configuration above, it looks like it works correctly:

$ kubectl get ingress
NAME        CLASS    HOSTS   ADDRESS   PORTS   AGE
dashboard   <none>   *                 80      10h

However, trying to access the Dashboard on any of the URLs below, both http and https, returns Connection Refused error:

https://10.11.12.13/api/v1/namespaces/kube-system/services/kube-dns/proxy
https://10.11.12.13/api/v1/
https://10.11.12.13/

What did I miss in this configuration? Additional comment: I don’t want to assign any domain to the Dashboard, at the moment it’s OK to access its IP address.

2

Answers


  1. Are you running metallb or a similar loadbalancer for nginx or are you using a nodeport for the ingress endpoint?
    You need to access the ingress either via a loadbalancer IP or a nginx NodePort. And afaik you will need a hostname/DNS entry for ingress entry.

    If you just want to access the dashboard without a hostname you don’t need an ingress but a loadbalancer service or NodePort service to the dashboard pods.

    Login or Signup to reply.
  2. Ingress is namespaced resource , and kubernetes-dashboard pod located in "kubernetes-dashboard" namespace .

    so you need to move the ingress to the "kubernetes-dashboard" namespace.

    :: To list all namespaced k8s resources ::

    kubectl api-resources --namespaced=true
    
    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search