Register Now

Login

Lost Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.


Add question

You must login to ask a question.

Login

Register Now

Lorem ipsum dolor sit amet, consectetur adipiscing elit.Morbi adipiscing gravdio, sit amet suscipit risus ultrices eu.Fusce viverra neque at purus laoreet consequa.Vivamus vulputate posuere nisl quis consequat.

How to Set Up an EKS Cluster with Managed Node Group and AWS Ingress Controller: A Step-by-Step Guide

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-balancer-controller/crds?ref=master"
  • Install the controller with the following command:
helm repo add eks https://aws.github.io/eks-charts
helm upgrade -i aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system --set clusterName=<cluster-name> --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:v1.1.7
          args:
            - --ingress-class=alb
            - --cluster-name=<cluster-name>
            - --aws-vpc-id=<vpc-id>
          env:
            - name: AWS_REGION
              value: <aws-region>
          securityContext:
            runAsNonRoot: true
      serviceAccountName: aws-load-balancer-controller

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.

About Abhay Singh

I'm Abhay Singh, an Architect with 9 Years of It experience. AWS Certified Solutions Architect.

Follow Me

Leave a reply

Table of Contents