Argo Rollouts를 이용한 Blue-Green 배포 전략 적용하기
·
DevOps
이 포스팅에서는 GitOps 환경에서 Blue-Green 방식의 무중단 배포를 구성하는 과정을 다룹니다.이전 포스팅들을 참고하시면 GitOps 환경에서 GitHub Actions + ArgoCD를 이용한 CI/CD 파이프라인을 구축하실 수 있습니다.2025.01.04 - [DevOps] - GitOps와 ArgoCD2025.01.05 - [DevOps] - GitHub Actions + ArgoCD로 k8s 클러스터 환경에서 CI/CD 구축하기서론쿠버네티스는 배포를 쉽게 해 줍니다. 하지만 GitOps 방식의 CI/CD 파이프라인을 구축한 후 무중단 배포를 위해 설정해야 하는 부분은 꽤나 까다로웠습니다. GitHub Actions 워크플로우 스크립트를 수정할 때 configMap 등을 이용해 현재 배포된..
쿠버네티스에서 트래픽 유실 없는 무중단 배포 적용하기
·
Kubernetes
쿠버네티스는 배포를 편리하게 해 줍니다. 편리하지만 수동으로 배포한다면 꽤나 번거로워질 수 있고 Human Error가 발생할 가능성이 높습니다. 만약 GitOps 방식을 채택했다면 배포 과정에서 트래픽이 유실되지 않도록 하려면 복잡한 설정이 필요할 수 있습니다. 파드가 생성된 후 애플리케이션이 완전히 준비돼야 정상적으로 트래픽을 처리할 수 있고, 그 시점에 서비스 객체가 해당 파드를 바라볼 수 있도록 하는 제어가 필요하기 때문입니다. 서비스가 중단되지 않도록 배포하기 위해 무중단 배포 전략이 등장했고, 무중단 배포 전략에는 canary, blue-green, rolling 등이 있습니다. 이 포스팅에선 blue-green 배포 전략을 예시로 들겠습니다.쿠버네티스에서 트래픽의 이동 경로쿠버네티스 클러스터..
GitHub Actions + ArgoCD로 k8s 클러스터 환경에서 CI/CD 구축하기
·
DevOps
지난 포스팅에서 ArgoCD를 통해 애플리케이션의 자동 배포를 구축했습니다.ArgoCD로 자동 배포를 구축하는 과정은 이 링크를 확인해 주세요! 이번 포스팅은 GitHub Actions를 통해 CI 부분을 자동화하는 부분을 중점적으로 다루며, 이전 포스팅과 함께 읽으신다면 최종적으로 GitOps 방식으로 쿠버네티스 클러스터 환경에서 CI/CD 파이프라인을 구축하는 과정을 보실 수 있습니다.CI/CD 파이프라인 전체 흐름단일 진실의 원천(SSOT)인 GitHub Repository에 코드를 Push 합니다.GitHub Actions의 workflow가 트리거 됩니다.JDK로 Spring 애플리케이션을 빌드하고, 빌드된 JAR 파일로 Docker 이미지를 만든 다음 Docker Hub에 Push 합니다.Do..
GitOps와 ArgoCD
·
DevOps
이번 포스팅은 GitOps의 핵심 개념, 동작 방식과 그 구현체인 ArgoCD에 대한 주제를 다룹니다.GitOps?GitOps라는 용어는 Weaveworks 회사에서 처음 사용되어 지금까지 많은 영향력을 끼쳐왔는데요, 클라우드 네이티브 애플리케이션을 지속적인 배포(Continous Delivery;CD)를 구현하는 방법입니다. 핵심 개념은 다음과 같습니다.프로덕션 환경에서 목표로하는 인프라에 대한 선언적인 정의서(declarative descriptions)가 포함된 Git 저장소(Repository)와 실제 프로덕션 환경이 일치하도록 자동화된 프로세스를 구축하는 것입니다.즉, 새로 배포할 땐 Git 저장소만 업데이트하면 프로덕션 환경에 자동으로 반영이 되는 것입니다.선언적인 정의서(declarative..