본문 바로가기
IT/Devops

[Project] Terraform으로 EKS에 3-tier architecture 구성 (with Pipeline)

by FreeYourMind 2022. 5. 28.

1. 목표

- Terraform을 통해 EKS, K8S 환경까지 Infra as Code 구성

- Jenkins, Gitlab Pipeline을 구성하여 CICD 자동화

- K8S 환경에 WEB, WAS, DB의 3-tier Architecture 구성

 

2. Architecture

infra
3-tier architecture

 

3. Blocker

  1. eks cluster 내에 생성된 k8s 자원을 인식하지 못하는 문제

-> terraform registry 설정 오류

  2. kubernetes ingress에서 alb를 생성하지 않는 문제

-> eks oidc 권한 설정 및 aws-load-balancer 설치를 통한 aws와 kubernetes 연동

  3. infra pipeline 실행(terraform apply) 시 pipeline을 실행하는 서버가 변경되고 중지되면서 pipeline 자체가 멈추는 문제

-> terraform lifecycle에서 ignore_changes = all을 통해 해당 resource의 변화를 무시

  4. pipeline 서버 사이트에 접근할 수 없는 없음 문제

-> security group 열어줌

  5. kubectl apply에서 deployment에 imagePullPolicy: always를 설정하더라도 최신 이미지를 가져오지 않는 문제 (tag 변경이 없음)

-> 기존 deployment를 제거하는 방식으로 해결했지만, 제거된 후 자원이 새로 생성되기 전까지는 서비스 중단이 일어나므로 미봉책임, tag에 versioning을 하는 것이 정석으로 보임 (imagePullPolicy always는 원래 최신의 이미지를 항상 가져오는 설정이 아님)

 

 

 

'IT > Devops' 카테고리의 다른 글

[Terraform] 코드 설계  (0) 2022.05.21
[Jenkins] Credentials from Kubernetes Secrets will not be available.  (0) 2022.05.21
[Terraform] User Data, Provisioner 우선 순위  (0) 2022.05.08
[Terraform] for_each  (0) 2022.04.12
[Terraform] Block type  (0) 2022.04.06

댓글