개요 Kustomize를 사용하면 Kubernetes 리소스를 효율적으로 구성하고 관리할 수 있습니다. 이 글에서는 ArgoCD Notification의 트리거와 템플릿 구성을 여러 ConfigMap 파일로 분리한 뒤, Kustomize를 이용해 하나의 ConfigMap으로 병합하고 배포하는 과정을 다룹니다. 이를 통해 복잡한 Notification...
[AWS] Route 53 계정 간 도메인 이전 및 ACM 인증서 발급 방법
개요 AWS Route 53에서 구매한 도메인을 서로 다른 AWS 계정으로 이전하는 방법과 AWS Certificate Manager(ACM)을 이용해 HTTPS 통신을 위한 인증서를 발급하는 과정을 정리했습니다. 상황 AWS 계정 A와 B가 있다고 가정합니다. 계정 A에서 Route 53을 통해 구매한 도메인의 소유권을 계정 B로 이전하...
[Spring] DTO 입력 값 검증하기 (Bean Validation 활용)
개요 컨트롤러에서 DTO를 통해 전달받는 클라이언트의 요청의 입력 값에 제약 조건을 설정하기 위해 Spring Bean Validation을 활용하는 방법을 정리했습니다. 도입 배경 프론트엔드에서 작성된 게시물 본문의 길이는 최대 1,000자까지만 제한하는 규칙을 정했습니다. 이를 처리하기 위해 백엔드에서 아래와 같은 DTO를 통해 요청을 받습니...
[ArgoCD] Notification default trigger 설정 방법
개요 ArgoCD Notification 기능을 활용하면 배포하는 애플리케이션에 대해 기본으로 작동할 트리거를 설정할 수 있습니다. 기본 트리거를 설정하면 모든 Application 객체나 Rollout 객체에 동일한 트리거를 한 번에 설정할 수 있어 설정 과정이 간소화됩니다. default trigger 적용 전 # demo-hpa-rollou...
[Slack] Incoming Webhook 설정 방법
개요 ArgoCD에서 Webhook을 이용한 알림 전송을 위해 Slack의 Incoming Webhook URL을 생성하는 방법을 정리했습니다. (2024.06.21 기준) Incoming Webhook Incoming Webhook URL로 정해진 형식에 맞춰 데이터를 전송하면 Slack의 특정 채널에 아래의 이미지와 같이 메세지를 보내줍니다....
[ArgoCD] Rolling Update와 Canary 배포에서의 알림 트리거 동작
개요 ArgoCD의 알림 트리거(Notification Trigger)를 활용해 Application의 라이프사이클(생성, 업데이트, 삭제) 및 배포 상태(정상, 오류)에 따라 알림을 설정하고, 각 트리거의 작동 순서와 결과를 확인하는 방법을 정리했습니다. 특히 Rolling Update와 Canary 배포 전략을 중심으로, 정상적인 배포와 오류 ...
[ArgoCD] 사용자 정의 트리거(Custom Trigger)를 활용한 알림 설정하기
개요 ArgoCD에서 제공하는 기본 트리거 외에도 사용자가 새롭게 트리거를 정의하여 알림을 보낼 수 있습니다. ArgoCD와 Argo Rollouts 모두 커스텀 트리거를 지원하며, 적용 방법은 동일하므로 이 글에서는 ArgoCD를 기준으로 설명합니다. 1. Notification ConfigMap 수정 ConfigMap 파일 수정 알림 설정...
[Kubernetes] Deployment 객체를 활용해서 Rolling Update 무중단 배포 전략 적용하기
개요 Kubernetes의 Deployment 객체를 이용해 무중단 배포를 적용하는 방법을 정리했습니다. Rolling Update 개념 Rolling Update는 Kubernetes에서 기본적으로 적용하는 업데이트 방식입니다. 이 배포 전략은 다음과 같이 진행됩니다. 기존 버전(v1) 파드 3개가 실행 중인 상태에서 새로운 버전(v2)을 ...
[ArgoCD] 무중단 배포 canary 전략의 파드 개수에 따른 로드밸런싱
개요 ArgoCD에서 지원하는 무중단 배포 전략 중 하나인 canary 전략을 사용해서 업데이트를 진행할 때, 파드의 개수에 따라 트래픽의 로드 밸런싱이 어떻게 이루어지는지 정리했다. canary 개념 새롭게 업데이트 하는 버전을 v2, 기존 실행하고 있는 버전을 v1이라고 해보자. canary 배포 전략에서는 v1에 보내던 트래픽을 v2로 점...
[ArgoCD] 무중단 배포 전략과 함께 HPA 적용하기
개요 Kubernetes의 HPA(Horizontal Pod Autoscaler) 객체를 활용하여 무중단 배포 전략(Rolling Update, Canary)을 설정하고, 오토스케일링을 구현하는 방법을 정리했다. HPA 개념 출처: Was ist (Kubernetes) Autoscaling? VPA vs. HPA [kreyman] HPA(H...