How to Set Up an EKS Cluster with Managed Node Group and AWS Ingress Controller: A Step-by-Step Guide
Here’s a step-by-step guide to setting up an Amazon Elastic Kubernetes Service (EKS) cluster with a managed node group and the AWS ingress controller:
Step 1: Prerequisites
- Sign in to the AWS Management Console and navigate to the Amazon EKS console.
- Create an IAM role with the necessary permissions to create and manage EKS clusters, node groups, and other resources.
Step 2: Create the EKS Cluster
- Click on “Create cluster” in the EKS console.
- Select the desired settings for your cluster, such as region, Kubernetes version, and VPC configuration.
- Choose the IAM role you created earlier for cluster creation.
- Configure any additional settings as per your requirements.
- Review and create the cluster.
Step 3: Install and Configure the AWS CLI and kubectl
- Install the AWS CLI and configure it with your AWS credentials.
- Install kubectl, the command-line tool for Kubernetes, and configure it to connect to your EKS cluster.
Step 4: Create and Configure the Managed Node Group
- In the EKS console, click on your cluster.
- Click on “Add node group” and provide the necessary details like instance type, desired capacity, and other configurations.
- Choose the IAM role you created earlier for the node group.
- Review and create the node group.
Step 5: Install the AWS Load Balancer Controller
- Open a terminal or command prompt.
Run the following command to install the AWS Load Balancer Controller:
kubectl apply -k "github.com/aws/eks-charts/stable/aws-load-b.."
Install the controller with the following command:
helm repo add eks aws.github.io/eks-charts helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName= --set serviceAccount.create=false --set serviceAccount.name=aws-load-balancer-controller
Step 6: Deploy and Configure the AWS Ingress Controller
Create an AWS ALB Ingress Controller manifest file (e.g., alb-ingress-controller.yaml) with the necessary configurations.
apiVersion: apps/v1 kind: Deployment metadata: name: alb-ingress-controller namespace: kube-system labels: app.kubernetes.io/name: alb-ingress-controller spec: selector: matchLabels: app.kubernetes.io/name: alb-ingress-controller replicas: 1 template: metadata: labels: app.kubernetes.io/name: alb-ingress-controller spec: containers:
- name: alb-ingress-controller
image: docker.io/amazon/aws-alb-ingress-controller..
args:
- --ingress-class=alb
- --cluster-name=
- --aws-vpc-id= env:
- name: AWS_REGION value: securityContext: runAsNonRoot: true serviceAccountName: aws-load-balancer-controller
- name: alb-ingress-controller
image: docker.io/amazon/aws-alb-ingress-controller..
args:
Replace <cluster-name>
, <vpc-id>
, and <aws-region>
with the appropriate values.
Apply the manifest file to your cluster using the following command:
kubectl apply -f alb-ingress-controller.yaml
Step 7: Deploy an Application with Ingress
- Create a Kubernetes manifest file for your application, including an Ingress resource to define the routing rules.
- Apply the manifest to your cluster using the
**kubectl apply**
command.
Step 8: Verify the Setup
- After deploying your application with the Ingress resource, wait for a few moments to allow the ingress controller to configure the necessary resources.
- Verify that the AWS ALB (Application Load Balancer) is created and associated with the Ingress rules by checking the AWS Management Console or running the appropriate AWS CLI commands.
Step 9: Test the Application
- Obtain the DNS name or IP address of the ALB created by the ingress controller.
- Access your application by entering the ALB’s DNS name or IP address in a web browser or using tools like cURL or Postman.
Congratulations! You have now successfully set up an EKS cluster with a managed node group and the AWS ingress controller. Your application is accessible through the ALB created by the ingress controller.
The post How to Set Up an EKS Cluster with Managed Node Group and AWS Ingress Controller: A Step-by-Step Guide appeared first on Abhay Singh.