[GitOps] ArgoCD란?

황시준·2023년 3월 2일
0

Kubernetes

목록 보기
5/12

오랜만에 글을 쓴다.
그동안 KubernetesAWSSpring이며 다양한걸 공부했다.
그 중 Kubernetes를 공부하며 ArgoCD에 대해 공부하게 되었는데 공부한 겸 글을 정리한다.

그 전에 GitOps먼저 알아본다.

GitOps

GitOpsDevOps의 실천 방법 중 하나로,
애플리케이션의 배포와 운영에 관련된 모든 요소들을 Git에서 관리(Operation) 한다는 뜻이다.
GitOpsGit Pull 요청을 사용하여 인프라 프로비저닝배포자동으로 관리한다.
Git 레포지토리에는 전체 시스템 상태가 포함되어 있어 시스템 상태의 변화 추이를 확인, 감사할 수 있다.

ArgoCD

ArgoCDGitOps 방식으로 관리되는 Manifest(yaml) 파일의 변경사항을 감시하며, 현재 배포된 환경의 상태Github Manifest 파일에 정의된 상태를 동일하게 유지하는 역할을 수행한다.

이전엔 Jenkins로 CD과정을 진행했는데 이때 SSH로 패키징된 파일을 컨테이너에 건네줬다.

ArgoCD는 CD과정을 진행하는데 Kubernetes로 배포한다고 보면 편하다.

ArgoCD는 쿠버네티스의 구성 요소를 배포하기 위해서는 Manifest (ex).yaml 파일을 구성해 실행해야 하는데 이러한 파일들은 계속해서 변경되기 때문에 지속적인 관리가 필요하다.

이를 간편하게 Git으로 관리하는 방식이 GitOps이고
GitOps를 실현시키며 Kubernetes에 배포하는 툴이 ArgoCD이다.

설치 방법

1. 먼저 argocd namespace 생성과 argo-cd.yaml 파일 다운

kubectl create namespace argocd
curl https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml -o argo-cd.yaml

2. VM 환경에 구축했으므로 argo-cd.yaml 파일을 수정해 NodePort 생성

---
apiVersion: v1
kind: Service 
metadata:
  labels: 
    app.kubernetes.io/component: server
    app.kubernetes.io/name: argocd-server
    app.kubernetes.io/part-of: argocd
  name: argocd-server
spec:
  type: NodePort # argocd-server에 NodePort type추가
  ports:  
  - name: http
    port: 80
    protocol: TCP
    targetPort: 8080
  - name: https
    port: 443
    protocol: TCP
    targetPort: 8080
  selector:
    app.kubernetes.io/name: argocd-server
---

3. argocd cli 설치

VERSION=$(curl --silent "https://api.github.com/repos/argoproj/argo-cd/releases/latest" | grep '"tag_name"' | sed -E 's/.*"([^"]+)".*/\1/')
echo $VERSION

curl -sSL -o /usr/local/bin/argocd https://github.com/argoproj/argo-cd/releases/download/$VERSION/argocd-linux-amd64
chmod +x /usr/local/bin/argocd

4. argocd 배포

kubectl apply -n argocd -f argo-cd.yaml

4-1 확인

5. ArgoCD PW 확인

ArgoCD 관리자의 기본 ID는 admin 이고 PW는 아래 명령어를 통해 알 수 있다.

kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo

6. 접속

이로써 ArgoCD설치가 완료됐다.
다음엔 ArgoCD를 활용해보는 글을 작성해보겠다.

profile
하고싶은게 많은 newbie

0개의 댓글