1. ArgoCD란?
- ArgoCD는 GitOps로 관리되는 Kubernetes manifests의 변경사항을 Monitoring 하며 실제 Cluster에 배포된 형태를 이와 동일하게 계속 유지시키는 역할을 한다.
- 애플리케이션의 상태를 Git Repository에 저장하고, Git Repository의 내용이 업데이트 되면 변경 사항을 기반으로 Kubernets 클러스터에 동기화 시켜주는 방식으로 동작한다.
- ArgoCD는 Kubernetes와 같이 선언적으로 동작한다. Git Repository의 특정 경로를 지정하고, 해당 경로에 원하는 Kubernetes의 상태가 기술된 manifest 파일들을 위치시키면 ArgoCD가 해당 파일에 선언한 상태들과 동일하게 Object들을 배포해준다.
2. ArgoCD 설치
- ArgoCD를 설치하는 방법은 크게 두 가지가 있다.
- yaml를 이용한 설치
- helm을 이용한 설치
- 본 글은 yaml을 이용해 ArgoCD를 설치하는 방법이다.
- ArgoCD를 배포하기 위한 Kubernetes 환경은 미리 구성되어야 한다.
- 본 글은 AKS(Azure Kubernetes Service)를 사용하여 Kubernetes 환경을 구성하였다.
# namespace 생성
kubectl create namespace argocd
# 공식 Github Repository의 yaml파일을 이용해 ArgoCD 설치 (Non-HA 방식, HA 방식 중 택 1)
# Non-HA 방식
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.9.3/manifests/install.yaml
# HA 방식
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/v2.9.3/manifests/ha/install.yaml
# Argo CD는 default로 서버를 외부로 노출시키지 않음으로 외부에서 접속할 수 있도록 SVC Type 변경
kubectl patch svc argocd-server -n argocd -p '{"spec": {"type": "NodePort"}}'
3. ArgoCD 설치 확인
k get pods,svc -n argocd
4. ArgoCD 설치 후 Web Console 접속
1) ArgoCD Web Console 접속
- https://argocd server pod가 배포되어 있는 Node IP:31734
2) 로그인
- Username은 admin이 기본값
- Argo CD는 argocd-initial-admin-secret이라는 Secret에 초기 비밀번호를 저장
# secret에서 data.password 값 조회
kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}" ;echo
# password값이 암호화 되어있기 때문에 decoding 진행
kubectl -n argocd get secret argocd-initial-admin-secret -o jsonpath="{.data.password}" | base64 -d; echo
3) Password 변경
- User Info → UPDATE PASSWORD 에서 Password 변경 진행
참고
'Container > Devops' 카테고리의 다른 글
[Devops] Jenkins, ArgoCD를 통한 CI/CD 구성 - (2) ArgoCD 구성 (1) | 2024.03.07 |
---|---|
[Devops] Jenkins, ArgoCD를 통한 CI/CD 구성 - (1) Jenkins 구성 (1) | 2024.03.07 |
[Devops] Jenkins에서 Plugin 및 Credential 설정 (0) | 2024.03.04 |
[Devops] Ubuntu에 Jenkins 설치 (1) | 2024.02.20 |
[Devops] VM에 Gitlab 설치 (0) | 2024.02.05 |