MSA 15일차 : ArgoCD

parang·2025년 6월 18일

LG CNS AM Inspire Camp 2기

목록 보기
48/50

✅ ArgoCD

git 저장소에 선언된 구성을 쿠버네티스 클러스터에 자동으로 동기화해서 지속적 배포를 구현하는 딜리버리 두조

설치(윈도우)

kubectl create ns argocd
-> 네임스페이스 생성

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml
-> 아르고CD 설치

kubectl get pods -n argocd
-> 파드 확인

kubectl port-forward -n argocd svc/argocd-server 8443:443
-> 로그인

접속 : https://localhost:8443

접속하게 되면 이렇게 화면이 뜬다. 접속 전, 보안 문제로 바로 들어가지지 않게 되면 고급 누르고 접속 누르면 된다. (안전함)

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}"
-> 비밀번호가 나오게 되고, 인코딩 된 값이므로 디코딩된 비밀번호 값을 얻어야 한다. (base64 인터넷에 변환 찾아서 넣기)

활용

깃허브에 yaml 파일이 올라간 저장소를 생성한 후,
app.yaml을 아르고 cd에 올린다.

정상 등록 되면 이런 모습이 나온다.

주의 : 깃에 올린 저장소가 프라이빗이면 접근이 안되므로 간단히 테스트 목적이라면 public으로 변경하는 게 좋다.

위 그림처럼 한눈에 볼 수 있고, 변경사항이 바로 반영되어 확인하기도 매우 편하다.

✅ 파드 업데이트

1️⃣ 롤링 업데이트

  • 기존 버전의 파드를 하나씩 종료하고, 새로운 버전의 하드를 하나씩 생성하는 방식.
  • 트래픽은 항상 최신 상태의 파드로 연결되도록 보장.
  • 이전 버전과 새로운 버전이 공존

2️⃣ 블루/그린 배포

  • 기존(블루)버전과 새(그린) 버전을 완전히 분리된 환경에 배포 후, 준비가 완료되면 트래픽을 일괄 전환하는 방식.
  • 두개의 인프라 자원 필요

3️⃣ 카나리 배포

  • 새 버전을 일부 사용자에게만 먼저 배포하여 반응을 본 후, 점진적으로 전체 트래픽으로 확대.

분산 트랜잭션

분산 환경에서의 트랜잭션 처리 문제점

SAGA 패턴

MSA 환경에서 즉시 일관성을 지키기 어렵다는 것을 기반으로, Eventual Consistency(최종 일관성)을 보장하여 효율성을 높이기 위한 패턴

profile
파랑입니다.

0개의 댓글