Setting up NGINX Ingress Controller

Steps to install the NGINX Ingress Controller.

Complete the steps provided here for installing the NGINX Ingress Controller on the base machine.

  1. Log in to the base machine and open a command prompt.

  2. Create a namespace where the NGINX Ingress Controller needs to be deployed using the following command.

    kubectl create namespace <Namespace name>
    

    For example,

    kubectl create namespace nginx
    
  3. Add the repository from where the Helm charts for installing the NGINX Ingress Controller must be fetched using the following command.

    helm repo add stable https://charts.helm.sh/stable
    helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
    
  4. Install the NGINX Ingress Controller using Helm charts using the following command.

    helm install nginx-ingress --namespace <Namespace name> --set controller.replicaCount=1 --set controller.nodeSelector."beta\.kubernetes\.io/os"=linux --set defaultBackend.nodeSelector."beta\.kubernetes\.io/os"=linux ingressnginx/ingress-nginx --set controller.publishService.enabled=true --set controller.ingressClassResource.name=<NGINX ingress class name> --set podSecurityPolicy.enabled=true --set rbac.create=true --set controller.extraArgs.enablessl-passthrough="true" --set controller.service.annotations."service\.beta\.kubernetes\.io/aws-load-balancer-internal"=\"true\" --set controller.service.annotations."service\\.beta\\.kubernetes\\.io/aws-load-balancer-connection-idle-timeout"=\\"300\\" --version 4.3.0
    

    For example,

    helm install nginx-ingress --namespace nginx --set controller.replicaCount=1 --set controller.extraArgs.enable-ssl-passthrough="true" --set controller.nodeSelector."beta\\.kubernetes\\.io/os"=linux --set defaultBackend.nodeSelector."beta\\.kubernetes\\.io/os"=linux ingress-nginx/ingress-nginx --set controller.publishService.enabled=true --setcontroller.ingressClassResource.name=nginx-anon --set podSecurityPolicy.enabled=true --set rbac.create=true --set controller.service.annotations."service\\.beta\\.kubernetes\\.io/aws-load-balancer-internal"=\\"true\\" --set controller.service.annotations."service\\.beta\\.kubernetes\\.io/aws-load-balancer-connection-idle-timeout"=\\"300\\" --version 4.3.0
    

    For more information about the various configuration parameters for installing the NGINX Ingress Helm charts, refer to values.yaml file.

  5. Check the status of the nginx-ingress release and verify that all the deployments are running accurately using the following command.

    kubectl get pods -n <Namespace name>
    

    For example,

    kubectl get pods -n nginx
    

    Note: The pod name should be noted. It is required as a parameter in the next step.

  6. View the logs on the Ingress pod using the following command.

    kubectl logs pod/<pod-name> -n <Namespace name>
    
  7. Obtain the external IP of the nginx service by executing the following command.

    kubectl get service --namespace <Namespace name>
    

    For example,

    kubectl get service -n nginx
    

    Note: The IP should be noted. It is required for communicating the Protegrity Anonymization API.


Last modified : February 18, 2026