CICD 3

CI/CD with Jenkins&ArgoCD

이번 포스팅에선 Jenkins와 Bitbucket, Harbor를 통해 CI/CD Pipeline을 구축하는 과정에 대해 설명한다. 전체 Architecture는 아래와 같다. 개발자가 Bitbucket으로 소스코드를 Push한다. Push event를 트리거 삼아 Webhook이 Jenkins로 전달된다. Jenkins에선 Bitbucket의 Jenkinsfile을 기반으로 docker image를 build하고 이를 Harbor에 push한다. ArgoCD는 Bitbucket의 변경사항을 감지하여 이를 EKS Cluster에 배포한다. 사전 작업 Jenkins 서버에 Docker 설치 해당 포스팅에서 Jenkins는 Dockerfile을 빌드하는 역할을 한다. 따라서 Jenkins 서버에서도 Dock..

CICD 2022.05.03

Argo CD

Argo CD 주요 구성 요소 1. API Server - WebUI, CLI, CICD 시스템용 API 2. Repository Server - 매니페스트를 보관하는 git 저장소의 로컬 캐시를 유지하는 내부 서비스 3. Application Controller - 애플리케이션 제어, 모니터링 / 상태 비교하는 Kubernetes 컨트롤러 Argo CD 설치 - 위 세 구성요소는 Argo Project에서 매니페스트를 제공한다. mzmz01:~/environment $ kubectl create namespace argocd namespace/argocd created mzmz01:~/environment $ kubectl apply -n argocd -f https://raw.githubusercon..

CICD 2021.10.13

AWS CodePipeline을 이용한 깃옵스(GitOps) 구현하기

지금까지 진행했던 실습들을 정리해보면, Kubernetes 환경에서는 모든 설정 정보를 매니페스트 파일(ex .yaml)로 정의해왔다. 이번 포스팅에선 앞선 실습에서 YAML 파일로 생성했던 모든 설정을 코드로 관리하여 CI/CD를 구현하려고 한다. 구현하기에 앞서 CI/CD라는 개념을 정리해보자. 현재 인프라를 관리하고 운영하는 데 있어 가장 많이 접하는 단어는 아마 IaC, CD/CD일 것이다. CI(Continuous Integration)/CD(Continuous Delivery 혹은 Deployment)는 말 그대로 '지속적인 통합/지속적인 배포' 를 의미한다. 그럼 무엇을 통합하고 무엇을 배포한다는 뜻일까? 아래 그림은 CI/CD를 설명할 때 가장 쉽게 볼 수 있는 그림이다. 그림을 살펴보면,..

CICD 2021.09.04