mingming

EKS 클러스터 배포하기 (Terraform) 본문

kubernetes

EKS 클러스터 배포하기 (Terraform)

mingming_96 2023. 8. 11. 15:20

지난글에 이어서 테라폼으로 EKS 클러스터를 배포 해보겠습니다.

 

사전 준비사항으로 로컬 사용자 pc에 aws cli 자격증명 정보가 있어야 합니다.

 

테라폼에는 여러 플랫폼 provider가 존재하며 잘 짜여진 모듈도 존재합니다.

 

AWS 에서 제공하는 eks 모듈을 통해 배포해보도록 하겠습니다. 

 

VPC

우선 EKS를 배포하기위한 VPC 코드를 작성해줍니다.

vpc 또한 AWS 제공하는 vpc 모듈을 이용해 간단하게 배포할 수 있습니다. 

 

provider "aws" {
  region = "ap-northeast-2"
}

module "vpc" {
  source = "terraform-aws-modules/vpc/aws"


  name = "vpc name" 
  cidr = "vpc cidr"

  azs             = ["ap-northeast-2a", "ap-northeast-2c"]
  public_subnets  = ["서브넷 cidr", "서브넷 cidr"]
  private_subnets = ["서브넷 cidr", "서브넷 cidr"]
  map_public_ip_on_launch = true
  enable_nat_gateway     = true
  one_nat_gateway_per_az = true

  enable_dns_hostnames = true

}

 

EKS 클러스터 생성 

module "eks" {
  source = "terraform-aws-modules/eks/aws"

  cluster_name                    = "eks-cluster"
  cluster_version                 = "1.24"
  cluster_endpoint_private_access = false
  cluster_endpoint_public_access  = true

  cluster_addons = {
    coredns = {
      resolve_conflicts = "OVERWRITE"
    }
    kube-proxy = {}
    vpc-cni = {
      resolve_conflicts = "OVERWRITE"
    }
  }

  vpc_id     = module.vpc.vpc_id
  subnet_ids = module.vpc.public_subnets

  cloudwatch_log_group_retention_in_days = 1

  eks_managed_node_group_defaults = {
    instance_types = ["t3.small"]

}
  eks_managed_node_groups = {
    green = {
      min_size     = 1
      max_size     = 1
      desired_size = 1

      instance_types = ["t3.small"]
      capacity_type  = "ON_DEMAND"

    }
  }
}

 

해당 테라폼 코드를 init , apply 하시면 eks 클러스터가 생성됩니다.

 

생성된 클러스터의 config 파일을 로컬에 가져오려면 

aws eks update-kubeconfig --name <cluster_name> --region ap-northeast-2

해당 명령어를 입력하시면 됩니다. kubeconfig 파일이 업데이트 되고 kubectl 명령어를 사용하실 수 있습니다.

 

다음글에서 해당 모듈을 이용한 로드밸런서 컨트롤러 efs csi driver 설치에 대해 알아보겠습니다.

'kubernetes' 카테고리의 다른 글

Kubernetes 컴포넌트  (0) 2023.08.14
kubernetes 동작원리  (1) 2023.08.13
kubernetes 연습장  (0) 2023.08.13
EKS 클러스터 배포하기 (eksctl 명령어)  (0) 2023.08.09
Kubernetes 설치하기 (Ubuntu 20.04)  (0) 2023.08.08