To create an NGINX ingress controller with an AWS Classic Load Balancer (CLB) on an EKS cluster, you can follow these steps:
- Create a service account and role binding for the ingress controller. This will allow the ingress controller to interact with the Kubernetes API server.
kubectl create serviceaccount nginx-ingress-controller
kubectl create clusterrolebinding nginx-ingress-controller --clusterrole=cluster-admin --serviceaccount=default:nginx-ingress-controller
2. Create a namespace for the ingress controller
kubectl create namespace ingress-nginx
3. Use Helm to install the ingress controller
First, install Helm. The instructions to install Helm on AWS are given here.
Then add the repo of the nginx ingress controller.
helm repo add ingress-nginx https://kubernetes.github.io/ingress-nginx
helm repo update
Then install the Nginx-ingress controller with Classic load balancer.
helm install nginx-ingress ingress-nginx/ingress-nginx --namespace ingress-nginx --set controller.service.annotations."service\.beta\.kubernetes\.io/aws-load-balancer-type"=classic
4 Verify that the ingress controller is running by using the kubectl get pods
command and checking for pods with the name nginx-ingress-controller-*
.