Argo CD

yong·2025년 8월 26일

SW 모빌리티 스쿨

목록 보기
11/11

Argo CD 실습

Kubernetes + Helm + Kustomize
Prometheous

  1. Argo CD 설치
  • 헬름 레포지토리 추가 : helm repo add argo https://argoproj.github.io/argo-helm
  • 레포지토리 업데이트 : helm repo update
  • 네임스페이스 생성 : kubectl create namespace argocd
  • 설치 : helm install argocd argo/argo-cd -n argocd
  • 설치 확인 : kubectl get all -n argocd
    서비스를 잘 확인해보자! 모든 서비스가 ClusterIP로 만들어진다 ⭐
    • 로컬 k8s를 운영하는 경우에는 argocd-server 서비스에 설정된 포트를 port-forwarding 해야만 로컬 컴퓨터에서 접근이 가능하다.

    • public IP를 가진 클러스터나 EKS와 같은 Public Cloud Managed Service를 사용하는 경우에는 NodePort나 LoadBalaner로 서비스를 수정해서 외부에서 접근이 가능하게 해야 한다.

      로컬 쿠버네티스를 실습하기 위해 가상머신에 리눅스를 설치하고 클러스터를 구성할 때 Control Plane에는 GUI를 같이 설치하는 것이 좋다.

  1. 설정
  • 초기 비밀번호 확인 : kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.passwd}" | base64 -d
    비밀번호 :

  • 로컬 k8s에서 Web UI 접근을 위한 포트포워딩
    : kubectl port-forward service/argocd-server -n argocd 포트번호:443
    kubectl port-forward service/argocd-server -n argocd 포트번호:80
    로컬 컴퓨터에서 http://localhost:포트번호로 브라우저에서 접근 가능

  • 서비스 타입 변경 : kubectl edit svc argocd-server -n argocd

mkdir argocd
cd argocd

application.yaml

apiVersion: argoproj.io/v1alpha1
kind: application
metadata:
  name: nginx
  namespace: argocd
  finalizers:
    - resources-finalizer.argocd.argoproj.io
spec:
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
    SyncOptions:
      - CreateNamespace=true
  destination:
    namespace: nginx
    server: https://kubernetes.default.svc
  project: default
  source:
    repoURL: https://charts.bitnami.com/bitnami
    chart: nginx
    targetRevision: 13.2.10
  • 매니페스트 적용 : kubectl apply -f application.yaml -n argocd

Argo CD CLI를 활용한 애플리케이션 배포

  1. Argo CD CLI를 설치
  • 다운로드 : curl -sSL -o argocd-linux-amd64 https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
  • 실행 권한 부여 : chmod +x argocd-linux-amd64
  • path에 추가 : sudo mv argocd-linux-amd64 /usr/local/bin/argocd
  • 버전 확인 : argocd version
  1. 현재 argocd Web UI에 로그인
    argocd login localhost:30080

  2. 이전 애플리케이션 삭제 : argocd app delete nginx

  3. nginx 배포 : argocd app crete nginx --repo https://charts.bitnami.com/bitnami --helm-chart nginx --revision 13.2.10 --dest-server https://kubernetes.default.svc

Argo CD Autopilot

Argo CD를 GitOps 방식으로 설치/운영하기 쉽게 만들어주는 툴
Argo CD는 수동으로 설치하고 Application을 하나하나 정의하지만 Autopilot은 Argo CD 자체 설치하고 애플리케이션 관리 구조를 Git Repository 중심으로 자동화한다.

기능

  • GitOps를 사용해 부트스트랩 Argo CD 애플리케이션을 생성하고 관리할 수 있다.
  • Git Repository를 짜여진 구조로 세팅해 새로운 서비스를 추가하고 Argo CD의 수명주기에 적용할 수 있따.
  • Argo CD 애플리케이션에 시크릿에 대한 암호화 지원

설치

설치 가이드 : https://argocd-autopilot.readthedocs.io/en/stable/Installation-Guide/

# get the latest version or change to a specific version
VERSION=$(curl --silent "https://api.github.com/repos/argoproj-labs/argocd-autopilot/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')

# download and extract the binary
curl -L --output - https://github.com/argoproj-labs/argocd-autopilot/releases/download/"$VERSION"/argocd-autopilot-linux-amd64.tar.gz | tar zx

# move the binary to your $PATH
mv ./argocd-autopilot-* /usr/local/bin/argocd-autopilot

# check the installation
argocd-autopilot version
profile
꿈틀꿈틀

0개의 댓글