1. 목표
- Terraform을 통해 EKS, K8S 환경까지 Infra as Code 구성
- Jenkins, Gitlab Pipeline을 구성하여 CICD 자동화
- K8S 환경에 WEB, WAS, DB의 3-tier Architecture 구성
2. 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 |
댓글