argocd 2

CD를 위한 Jenkins, Argo CD 연계

이전 포스트에서 Jenkins, GitHub, Docker Hub를 파이프라인으로 구성하여, 컨테이너 이미지 빌드를 자동화하였다. 이번 시간엔 Argo CD를 연계하여 배포까지 자동화된 CI/CD Pipeline을 만들어 볼 차례다. 우선 기존 구성에서 추가되는 내용은 다음과 같다. 1. Jenkins에서 Image 빌드 및 Push 후, 배포 전용 Repository에 새로운 이미지 태그 반영 2. Argo CD는 해당 Repository로부터 Auto Sync 수행 3. AutoSync를 통해 업데이트된 Manifest를 사용하여 리소스 재생성 참고로 GitHub와 Argo CD의 연결은 일반적으로 GitHub Webhook 방식을 사용하나, 현재 테스트 환경은 외부에서 Argo CD에 접근할 수 없..

CI-CD 2021.02.21

ArgoCD: Kubernetes에 GitOps 적용하기

What is GitOps? 개발자의 코드가 실제 서비스로 반영되기까지 많은 과정을 거쳐야 한다. Repository에 Push 후 CI를 통해 Docker Image로 빌드되고, Container Registry(ex: DockerHub)로 업로드하면 CI 과정은 끝나며 이후부턴 Kubernetes에 어떻게 배포할지 고민이 필요하다. 처음엔 Manifest 파일을 작성하고 이를 kubectl 명령어를 통해 서비스를 배포하다가, 서비스마다 일일이 Manifest 파일을 작성하기 번거롭기 때문에 Helm, kustomize 등을 활용하고, 이후 자동화를 위해 Jenkins나 Ansible 등의 툴이나 API 호출같은 방식을 택하게 된다. 문제는 사람마다 선호하는 배포 방식이 제각각이고 여러 소스(원천)로부..

CI-CD 2021.02.17