Giter Site home page Giter Site logo

eksctl-labs-cluster's Introduction

AWS EKS Cluster Setup

This repository contains configurations to set up an AWS EKS cluster using eksctl. Additionally, it includes configurations for AWS Load Balancer Controller and External DNS Helm charts.

Prerequisites

Before running the scripts, ensure you have the following prerequisites installed:

AWS IAM Policies

Before provisioning the cluster, create the requisite IAM policies for AWS Load Balancer Controller and External DNS.

aws iam create-policy \
--policy-name AWSLoadBalancerControllerIAMPolicy \
--policy-document file://aws/aws-load-balancer-controller-iam-policy.json

aws iam create-policy \
--policy-name AWSExternalDnsIAMPolicy \
--policy-document file://aws/external-dns-iam-policy.json

EKS Cluster Setup

Update the cluster.yaml file with ARNs of the IAM policies created in the previous step. Create the EKS cluster using eksctl with the provided cluster configuration:

eksctl create cluster -f cluster.yaml

This command creates an EKS cluster based on the configuration specified in the cluster.yaml file. Adjust the configuration file to match your requirements. Keep in mind that the current configuration creates a cluster SPOT instances. This may cause your cluster to be unstable (frequent reboots). If you want to avoid this use ON_DEMAND instances. It will increase the cost of the lab cluster.

Write the kubeconfig for the newly created cluster:

eksctl utils write-kubeconfig --cluster=labs-cluster

Deploy AWS Load Balancer Controller & External DNS helm charts. Before deploying the helm charts, update the and helm/external-dns.yaml files with your domain name.

helm repo add eks https://aws.github.io/eks-charts
helm repo add bitnami https://charts.bitnami.com/bitnami

helm install aws-load-balancer-controller eks/aws-load-balancer-controller -n kube-system -f helm/aws-load-balancer-controller.yaml
helm install external-dns bitnami/external-dns -n kube-system -f helm/external-dns.yaml 

Clean up

eksctl delete cluster -f cluster.yaml --disable-nodegroup-eviction

eksctl-labs-cluster's People

Contributors

luafanti avatar

Stargazers

 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.