0. 들어가며기존에는 Jenkins + ArgoCD 조합으로 CI/CD를 구성하고 있었지만, 중앙 집중형 파이프라인 관리에 대한 대안을 찾던 중 GoCD를 알게 되어 간단히 학습해보고자 한다. 이번 포스팅에서는 GoCD가 어떤 도구인지 간단히 소개하고, Kubernetes 환경에서의 설치 방법과 기본 파이프라인 구성 및 실행 과정까지 단계별로 정리해 본다. 1. GoCD 란 GoCD는 ThoughtWorks에서 만든 오픈소스 CI/CD 파이프라인 도구이다.특히 지속적 배포(Continuous Delivery)에 초점을 두고 설계된 툴로, 복잡한 배포 흐름을 시각적으로 표현하고 관리하기에 강점이 있다. Jenkins처럼 자유롭게 커스터마이징 가능한 플러그인 시스템은 부족하지만, 대신 파이프라인 간의 의존..
어느 날 파드가 일시적으로 죽다.어느 날, 사내 인프라 미들웨어에서 이상 현상이 발생했다. 간헐적으로 일부 특정 파드가 재기동되는 상황이 반복되고 있었고, 이는 단순한 장애라기보다는 반복적으로 나타나는 패턴성 문제처럼 보였다.재기동되는 파드를 확인해 보니 주로 Harbor와 MinIO가 포함되어 있었다. 특히 Harbor는 내부 CI/CD 파이프라인에서 컨테이너 이미지 레지스트리로 사용되고 있기 때문에, 이 문제가 빌드 프로세스 전반에도 영향을 주고 있었다.문제 원인을 파악해보자.Phase 1: 애플리케이션 로그 확인먼저, 파드 내부 애플리케이션 로그를 확인했다.harbor-core 파드가 SIGTERM 신호를 받아 정상적으로 종료된 로그를 확인할 수 있었지만, 이는 종료 “과정”에 대한 로그일 뿐, 종..
개요ArgoCD는 Kubernetes 리소스를 코드화하여 GitOps 방식으로 관리할 수 있는 도구이다. 그러나 정작 ArgoCD 자체를 프로비저닝 하거나 GitOps 환경을 구성하는 과정은 여전히 수작업이 필요하다. 이러한 불편함을 해소하기 위해 등장한 도구가 바로 ArgoCD Autopilot이다. 이를 통해 ArgoCD를 자동 프로비저닝하고 GitOps 환경까지 표준화된 구조로 구성할 수 있다.이번 포스팅에서는 ArgoCD Autopilot의 주요 기능과 사용법을 알아보자.ArgoCD Autopilot 소개ArgoCD Autopilot은 GitOps 기반 배포 도구인 ArgoCD를 간편하게 설치하고 관리할 수 있도록 설계된 도구로 Argo 프로젝트에 포함되어 있다. 단순히 ArgoCD 설치를 자동화..
목표 ArgoCD Image Updater를 이용해서 GitOps가 아닌 RegistryOps CD를 구축합니다. Harbor(Private Registry)와 연동하여 Helm Application을 배포 해봅니다. ECR의 경우 포스팅을 잘해주셔서 아래 글을 참고하시면 될 것 같습니다 https://velog.io/@junsugi/Argo-CD-Image-Updater-사용하기-with.-AWS-EKS#결론 설치 argocd image updater를 설치합니다. kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj-labs/argocd-image-updater/stable/manifests/install.yaml # 설치 확인 ..
ArgoCD의 클러스터 연결은 아래 2가지 방식을 지원합니다. 1. 명령어(CLI) 2. 시크릿(Declarative) ArgoCD 클러스터에 외부 EKS 클러스터를 연동하여 애플리케이션을 배포해보겠습니다. 실습에 나오는 설정 정보들은 보안을 위해서 임의로 작성하였습니다. 1. 명령어 1.1 AWS 인증 및 EKS 클러스터 추가 ArgoCD가 동작하는 쿠버네티스마스터 노드에 접속합니다 aws 명령어가 없을 시 apt-get install awscli 로 설치합니다. # aws 인증 aws configure # aws_access_key_id: aws_secret_access_key: region: ap-northeast-2 # eks 클러스터 추가 aws eks --region ap-n..