• 카테고리

    질문 & 답변
  • 세부 분야

    데브옵스 · 인프라

  • 해결 여부

    미해결

Terraform으로 eks cluster를 만들고 있습니다.

21.01.21 13:48 작성 조회수 456

0

클러스터와 node, fargate  profile까지 생성 했습니다.

주가적으로 launch_template를 통해 생성해서 tag를 붙이고 싶은데 클러스터 조인이 되지 않더군요.

네트워크 설정과 sg설정 모두 완료해 주었는데 ami가 문제인지...도큐먼트를 보면 nat등의 외부 접근이 가능해야 한다고 봐서

네트워크를 전부 public망에 빼보기도 하였습니다.

관련해서 eks cluster를 생성할때 launch_template를 사용하여 구축한 레퍼런스가 있을지요?? 아무리 찾아봐도 없더군요...

그리도 두번째로 클러스터 생성후 ALB를 붙이는부분에 대하여 좀 난해한데 이부분은 eksctl을 통해 진행 되야 하는 부분이라

terraform으로 어느정도 제약이 있는것 같더군요. 혹시 Terraform으로 관련 스크립트를 원스톱으로 실행시키는 방법이 있을까요?

답변 1

답변을 작성해보세요.

0

안녕하세요.

1. EKS Cluster 구성 시에 launch_template을 사용하신다는 건  Custom worker 노드를 구성하실 때를 말씀하시는 걸로 이해했는데, 혹시나 아니라면 재질문 부탁드립니다.

EKS worker 구성 시에 launch_template으로 구성하는게 가능합니다. launch_template은 autoscaling를 구성하기 위해서 필요한 요소로, EC2에 사용할 리소스를 미리 정의해 놓은 템플릿입니다. 따라서 EC2와 EKS의 Join 부분만 고려하시면 됩니다. 

다만, EKS는 내부적으로 aws-auth 라는 configMap을 통해서 worker node의 IAM role을 인식하여 클러스터에 Join할 수 있도록 합니다.

관련 자료: https://aws.amazon.com/ko/premiumsupport/knowledge-center/eks-worker-nodes-cluster/

추가로, 테라폼 레퍼런스로 유명한 것은 terraform-eks-module이 있습니다. 다만 여기서는 launch_configuration을 사용하기 때문에, launch_template 사용을 원하시면 이 부분은 코딩이 필요합니다.

관련 자료: https://github.com/terraform-aws-modules/terraform-aws-eks

2. 클러스터 생성 후 ALB 붙이는 부분은 eksctl로 생성하실 필요 없습니다. ALB는 Instance -> Pod 로 트래픽을 라우팅해주는 AWS 리소스입니다. 이는 테라폼으로 생성하지 않고, 보통은 kubernetes 리소스를 활용합니다. 대표적으로 alb-ingress-controller를 사용하여 kubernetes ingress로 ALB를 생성하실 수 있습니다.

Terraform으로 생성하는 경우에는 Routing 설정이나 타켓 설정관리가 힘들 수 있기 때문에, kubernetes 리소스로 관리하시는 것을 추천드립니다.

관련자료: https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/alb-ingress.html

테라폼의 예시 코드가 많기는 하지만, 결국 내가 원하는대로의 모양을 만들고 싶다면 직접 만들어야합니다~

감사합니다.