Search code examples
kubernetesnginxkubernetes-ingressnginx-ingress

How can I identify which ingress controller is installed on my Kubernetes cluster?


I have a Kubernetes cluster deployed on GKE as a managed cluster. I've also installed the Nginx ingress controller in my cluster. Later I noticed that there are 2 ingress controllers with nginx and they are:

  1. Ingress Nginx (https://github.com/kubernetes/ingress-nginx)
  2. Kubernetes Ingress (https://github.com/nginxinc/kubernetes-ingress)

The cluster and the controllers were installed a while back and right now I want to identify which controller I installed. Is there a way to identify the ingress easier?

Given below is the name of the deployment that was installed on my cluster:

nginx-ingress-ingress-nginx-controller

Is this the ingress controller from Kubernetes or from the NGINX?


Solution

  • Unlike other types of controllers which run as part of the kube-controller-manager binary, Ingress controllers are not started automatically with a cluster. In order for the Ingress resource to work, the cluster must have an ingress controller running.

    As you mentioned in the question yes there are many ingress controllers not just limited to two but manay by default ingress controller will not be present in any kubernetes cluster, as this is purely depends on the user to select a particular ingress controllers

    The populor Ingress Controllers are:

    If you want a complete list of ingress controllers, then you can use this link


    Coming to your question: How to identify which controller you have used

    The easiest way is by looking at the image used in the controller deployment

    • Nginx, Inc: nginx/nginx-ingress:1.6.1
    • traefik: traefik:v1.7
    • Kubernetes Community Ingress: quay.io/kubernetes-ingress-controller/nginx-ingress-controller:master