Argo CD

Argo CD (1) - GitOps와 Argo CD의 역할

1. 개요 애플리케이션을 Kubernetes에 배포할 때 kubectl apply 를 직접 실행하면 빠르게 시작할 수 있다. 하지만 환경과 클러스터가 늘어나면 누가, 언제, 어떤 설정을 바꿨는지 추적하기 어렵고, Git에 저장된 설정과 실제 클러스터의 상태가 달라질 수…

·6분
Argo CD

Argo CD (2) - Helm으로 설치하고 Web UI 접속하기

1. 개요 이번 글에서는 Kubernetes 클러스터에 Argo CD를 설치하고, 초기 관리자 비밀번호로 Web UI에 접속한다. 실습에서는 외부 접속을 위해 argocd server Service를 NodePort로 변경한다. NodePort와 자체 서명 인증서는 학…

·5분
Argo CD

Argo CD (3) - Application으로 Helm 차트 배포하기

1. 개요 Argo CD의 Application 은 배포할 소스와 대상 클러스터를 연결하는 핵심 리소스다. 이번 글에서는 Bitnami NGINX Helm 차트를 예시로 Application을 만들고, 자동 동기화와 구성 드리프트 처리 옵션을 살펴본다. Helm을 직접…

·7분
Argo Rollouts

Argo Rollouts (1) - 개요와 설치하기

1. 개요 일반 Kubernetes Deployment를 수정하면 새 ReplicaSet을 만들고, 기본 RollingUpdate 전략에 따라 이전 Pod와 새 Pod를 점진적으로 교체한다. 이 전략은 간단하지만 새 버전을 얼마나 노출할지, 중간에 관찰을 위해 멈출지,…

·7분
Argo Rollouts

Argo Rollouts (2) - Canary 배포 실습하기

1. 개요 카나리 배포는 새 버전을 일부에 먼저 적용하고, 오류율·응답 시간·로그처럼 중요한 신호를 확인한 뒤 점차 배포 범위를 넓히는 방식이다. 이번 실습에서는 파란색( blue ) 버전을 먼저 5개 배포한 뒤, 노란색( yellow ) 버전을 20%부터 점진적으로…

·7분
Jenkins

Jenkins (1) - CI/CD 자동화와 Docker 설치

1. 개요 여러 사람이 코드를 합치면 빌드, 테스트, 배포 확인을 반복해야 한다. Jenkins는 이런 반복 작업을 이벤트나 일정에 따라 실행하는 오픈 소스 자동화 서버다. Git 저장소에서 코드를 가져와 테스트하고, 이미지를 만들고, 결과를 알리는 CI/CD 흐름을…

·5분
Jenkins

Jenkins (2) - Freestyle Job과 Credentials로 첫 빌드 만들기

1. 개요 Jenkins를 설치한 뒤에는 무엇을 언제 실행할지 Job으로 정의한다. 가장 단순한 Freestyle Job은 화면에서 소스 저장소, 실행 명령, 실행 뒤 동작을 설정할 수 있어 Jenkins의 기본 흐름을 익히기에 좋다. 이 글에서는 Freestyle J…

·8분
Jenkins

Jenkins (3) - GitHub Webhook과 주기적 빌드 설정하기

1. 개요 수동으로 Build Now 를 누르는 방식은 자동화의 출발점일 뿐이다. 실제 CI는 코드가 바뀌었을 때 Jenkins가 알아서 빌드해야 한다. Jenkins에는 GitHub가 변경 사실을 알려 주는 Webhook 방식과 Jenkins가 저장소를 주기적으로 확…

·5분
Jenkins

Jenkins (4) - Pipeline으로 Spring Boot 테스트 자동화하기

1. 개요 Freestyle Job은 빠르게 시작할 수 있지만, 화면에서 바꾼 빌드 절차는 애플리케이션 코드와 함께 리뷰하거나 버전을 비교하기 어렵다. Jenkins Pipeline은 빌드·테스트·배포 순서를 코드로 작성하고 Jenkinsfile 로 저장소에 커밋하는…

·6분
Jenkins

Jenkins (5) - Docker 이미지 빌드와 로컬 배포하기

1. 개요 앞선 글에서는 Jenkins Pipeline으로 Spring Boot 프로젝트를 테스트했다. 이번에는 테스트를 통과한 JAR를 Docker 이미지로 만들고, 기존 컨테이너를 새 이미지로 교체해 로컬에서 실행한다. 이 글의 Jenkins는 Docker Desk…

·8분
GitHub Actions

GitHub Actions (5) - SSH로 EC2에 Spring Boot 배포하기

1. 개요 앞선 글에서는 테스트를 통과한 Spring Boot 애플리케이션을 Docker 이미지로 만들어 Docker Hub에 푸시했다. 이미지를 저장소에 올리는 것만으로는 EC2에서 실행 중인 컨테이너가 바뀌지 않는다. 이 글에서는 main 브랜치에 푸시하면 테스트,…

·9분
GitHub Actions

GitHub Actions (2) - Spring Boot 단위 테스트 자동화하기

1. 개요 첫 워크플로가 실행되는 것을 확인했다면, 실제 Spring Boot 프로젝트의 테스트를 연결할 차례다. 이 글에서는 서비스 클래스의 JUnit 단위 테스트를 예시로, main 브랜치에 푸시하거나 풀 리퀘스트를 열 때마다 Gradle의 test 태스크를 실행한…

·4분
GitHub Actions

GitHub Actions (1) - Workflow와 Spring Boot 첫 CI 만들기

1. 개요 코드를 원격 저장소에 올린 뒤 매번 직접 빌드와 테스트를 실행하면 확인을 빼먹기 쉽다. GitHub Actions는 push , 풀 리퀘스트 같은 이벤트가 발생할 때 저장소의 작업을 자동으로 실행하는 도구다. 이 글에서는 GitHub Actions의 구성 요…

·5분