본문 바로가기

[Kubernetes]/[ArgoCD]

[ArgoCD] ArgoCD 사용설명서 - 1. 기본설정

반응형

ArgoCD란?

golang도 그렇고 argo도 그렇고 go가 들어가면 애들이 너무 멍청하게 생겼다

 

앞서 설명한 GitOps 전략에서 Pull Type 형태를 이용해 ArgoCD에서 설정한 Git Repository를 지속적으로 감시하고 yaml 파일에 변경이 발생하면 배포를 진행해주는 문어다.

 

1. ArgoCD 설치

1-1. Namespace 생성

# Namespace 생성
kubectl create ns argocd

ArgoCD의 install.yaml 파일은 Namespace argocd를 바라보기 때문에 해당 작업은 필수다. 

 

1-2. ArgoCD 설치

# argocd 설치
kubectl apply -n argocd \
-f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

# 설치파일 확인
kubectl get all -n argocd

정상적으로 설치가 되었다면 문어가 반겨줄거다.

 


2. ArgoCD Cli 설치

2-1. cli 설치

brew install argocd

2-2. 어드민 계정 설정

초기 비밀번호 조회

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

서비스 접근은 두가지 방식으로 할수있다.

만약 본인이 ingress를 통해 Loadbalancer로 접근하고 싶다면 아래 방법을 사용하면된다.

 

# argocd의 LB주소 조회 = SERVER_HOST
kubectl get svc argocd-server -n argocd
# or
kubectl get svc argocd-server -n argocd \
 -o json | jq -r '.status.loadBalancer.ingress[0].hostname'

포트포워딩으로 접근하고 싶다면 다음 코드를 실행

# localhost:[PORT]로 접근 가능해진다.
kubectl port-forward svc/argocd-server -n argocd [PORT]:443

2-3. 로그인

argocd cli는 HTTP2/gRPC 프로토콜 기반으로 통신하기 때문에 로드밸런서 혹은 외부 통신을 담당하는 라우터가 HTTP2/gRPC를 완벽히 지원해야하는데 AWS에서 제공하는 ALB혹은 CLB는 해당 녀석을 완벽하게 지원하지 않기 때문에 --grpc-web을 뒤에 붙여줘야 한다.

argocd login [SERVER_HOST]:[PORT] --grpc-web


3. 비밀번호 변경

로그인한 사용자의 비밀번호 변경

argocd account update-password

 

728x90