Gitops를 활용한 AWS EKS Blue-Green 업데이트 적용기
안녕하세요, 비브로스 백엔드팀에서 인프라를 맡고 있는 박진홍입니다.
비브로스에서는 Amazon Cloud의 EKS Service를 사용하고 있고, 당시 최상인 1.22 버전의 EKS를 사용환경에 적용하였습니다. 똑닥 서비스들의 배포되고 안정적인 운영을 이어가던 도중 심판의 날이 다가오게 되었습니다.
EKS 최신 버전을 당시 구성하여도 약 3개월 1번씩 EKS 버전이 새로 나오게 되며, 약 1년 뒤에는 새로운 버전으로 업데이트를 진행해야 합니다.
저희는 기존 사용 중인 클러스터를 업데이트 하는 방식(In-place 롤링 업데이트)가 아닌, Gitops를 활용한 Blue-Green 방식으로 클러스터 업데이트를 진행한 방법에 대해 소개하려고 합니다.
EKS 심판의 날
Amazon EKS Service를 사용하는 회사의 가장 큰 고민 사항은 버전 업데이트이지 않을까 싶습니다. Amazon EKS의 가장 큰 장점은 마스터노드(Control Plane)을 AWS에서 관리하지만, 반대로 특정 버전에 대한 지원이 종료될 경우 마스터 노드를 자동으로 업데이트하게 됩니다. 같이 사용 중이던 워커노드(Data Plane)의 버전과 Add-on 등의 버전을 맞춰주지 않을 경우 장애가 발생할 수 있습니다.
똑닥 서비스는 Amazon EKS Service에 구성되어 있으며 마지막 업데이트는 당시 최상 버전인 1.22 버전을 사용하고 있었습니다. 1.22의 지원 종료가 되는 심판의 날이 다가오게 되어, 똑닥 인프라에서 EKS 업데이트를 준비하게 되었습니다.
기존 사용중이던 Kubernetes 1.22 버전은 2023년 06월 04일에 지원이 종료됩니다.
당시 EKS 전환을 2023년 03월에 준비하여 당시 최신버전인 1.25 버전으로 업데이트를 준비하였습니다. AWS 공식 문서(AWS Docs)를 참고하여 사용 중인 EKS 버전과 최신 버전의 지원종료 일자를 확인합니다.
한 가지 아쉬운 부분은 다른 릴리즈 업데이트와 다르게 약 2달 만에 2개의 버전이 새로 출시되어 아쉬움이 남습니다.
EKS 업데이트 전략 변경 계기
전반적으로 하기와 같은 3가지 이슈 사항이 있지만, 가장 큰 이유는 운영 중인 서비스가 있고 클러스터를 업데이트하였을 때 해당 버전에 문제가 발생하였을 때 이전 버전으로 롤백을 할 수 없다는 큰 제약사항이 있습니다.
-
Add-on, 3rd-party 지원 유무
기존 클러스터에서 업데이트를 진행시 Kubernetes 별로 변경되는 사항들에 대해 버전별로 확인 필요합니다. (ex, EKS Add-on, Istio, HPA, Cronjob ...)
-