Skip to main content
Installing the nginx Ingress Controller automatically creates a Load Balancer that acts as an entry point for incoming traffic. The Load Balancer forwards requests to the Ingress Controller, which routes them to the appropriate services based on Ingress manifest rules.

Step 1. Install Helm

Helm is a package manager that simplifies deploying and managing applications on Kubernetes. The following tabs cover installation on the most common operating systems. For other platforms, the Helm installation guide lists additional methods.
1. In the terminal, run the official Helm installation script:
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash
This downloads and installs the latest version of Helm to /usr/local/bin/helm.2. Verify the installation: helm version

Step 2. Deploy the nginx Ingress Controller

The following commands create a dedicated namespace, register the Helm repository, and install the controller.
  1. Create a namespace for the controller:
kubectl create namespace ingress-nginx
  1. Add the nginx Ingress Controller Helm repository:
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
  1. Update the repository index:
helm repo update
  1. Install the nginx Ingress Controller:
helm install ingress-nginx ingress-nginx/ingress-nginx \
\--namespace ingress-nginx \
\--set controller.ingressClassResource.name=nginx
Once installed, the controller provisions a Load Balancer automatically.

Step 3. Get the Load Balancer IP address

Run the following command to watch the service until an external IP is assigned:
watch kubectl -n ingress-nginx get svc
Wait until the EXTERNAL-IP column changes from <pending> to an IP address. The Load Balancer also appears in the Gcore Customer Portal under Networking > Load Balancers, where it routes all incoming traffic to the nginx Ingress Controller.
Load Balancers page showing the load balancer created by the nginx Ingress Controller