Argocd helm 으로 설치하기!

bo-yoon·2021년 10월 9일
0

devops

목록 보기
3/4
post-thumbnail

환경

aws eks
kubernetes 1.20
helm 3.6.1
linux


이글은 설치에 중점을 둔 글로 개념에 대한 글은 추후 포스팅하겠다.



설치

1. 일단 서버에 argocd 를 설치한다.

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

 sudo chmod +x /usr/local/bin/argocd


2. argocd helm 리포를 등록한다.

helm repo add argo https://argoproj.github.io/argo-helm

3. 그리고 github에서 sample 로 사용할 git 리포를 클론해왔다.

git clone https://github.com/argoproj/argo-helm.git

해당 리포지토리를 확인해보면 argo-helm/charts/argo-cd 에 다음 구조가 보인다

여기서 우리가 확인해야 할 것은 valus.yaml 파일이다

바꾼것 :

(1) 도메인을 내가 원하는 도메인으로 변경해준다. ( hosts 라고 검색하면 편하다.)

    hosts:      
      - "argocd.bbo.com"

(2) 서비스 타입 지정

: alb 로 지정 가능, 인증서 세팅, 타입 로드벨런서

  service:
    annotations:
      service.beta.kubernetes.io/aws-load-balancer-backend-protocol: http
      service.beta.kubernetes.io/aws-load-balancer-ssl-ports: "443"
      service.beta.kubernetes.io/aws-load-balancer-ssl-cert: 인증서 집어 넣기
	  service.beta.kubernetes.io/aws-load-balancer-internal: "true"
    labels: {}
    type: LoadBalancer

(3) insecure

  extraArgs: 
   - --insecure

이렇게 values.yaml 파일을 변경했으면 이제 적용하기 위해 세팅할 상태이다


4. 작업 namespace 생성

쿠버네티스 네임스패이스를 생성해준다.

kubectl create ns argo

5. helm

이제 helm 으로 argocd 를 설치한다.
네임스페이스는 아까 생성했던 argo
아까 helm으로 등록했던 argo/argo-cd 리포를 사용하고
어플리케이션 이름은 argo 로 해준다.

helm install argo -n argo argo/argo-cd -f values.yaml

다 설치가 된 다음 한번 조회해준다.

kubectl get svc -A | grep argo

6. argocd 세팅

이제 쿠버네티스에 띄운 argocd server와 서버에 설치한 argocd 를 연결해주자

 ARGOCD_SERVER=`kubectl get pods -n argo -l app.kubernetes.io/name=argo-argocd-server-75968dc658-kr8nh -o name | cut -d'/' -f 2`
 
 ARGOCD_SERVER_HOST=`kubectl get svc argo-argocd-server -o json -n argo | jq -r '.status.loadBalancer.ingress[0].hostname'`
  
 echo $ARGOCD_SERVER $ARGOCD_SERVER_HOST

이제 로그인해보자. 초기 패스워드는 이상한 암호처럼 생겼는데 이 기호를 웹에서로그인 할때마다 칠 수 없기 때문에 비밀번호 초기화도 같이 해보자


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

## 패스워드는 위의 암호를 입력하자
argocd login $ARGOCD_SERVER_HOST:80 --grpc-web

## 패스워드를 업데이트 해준다
argocd account update-password

argocd version 을 치고 argocd 정보랑 argocd-server 정보가 둘다 나오면 성공이다

 argocd version
argocd: v2.1.1+aab9542
  BuildDate: 2021-08-25T15:12:04Z
  GitCommit: aab9542f8b3356564553490523948202f0af296
  GitTreeState: clean
  GoVersion: go1.16.5
  Compiler: gc
  Platform: linux/amd64
argocd-server: v2.0.4+0842d44
  BuildDate: 2021-06-23T01:27:53Z
  GitCommit: 0842d45032985093468306983069830fdd6e
  GitTreeState: clean
  GoVersion: go1.16
  Compiler: gc
  Platform: linux/amd64
  Ksonnet Version: v0.13.1
  Kustomize Version: v3.9.4 2021-02-09T19:22:10Z
  Helm Version: v3.5.1+g32c2223
  Kubectl Version: v0.20.4
  Jsonnet Version: v0.17.0

지정한 도메인으로 접근해보자



7. argocd 에 배포 할 클러스터 등록하기

  argocd cluster add  {클러스터 정보} grpc-web --server argocd.bbo.com:80

이러면 클러스터가 등록된다.

여기서 중요한 점은 80 으로 해야한다. 아까 insecure 옵션을 주었기 때문이다. 그 옵션 뺀다면 화면이 뜨지 않는다.



8. git repository

argocd repo add http://{리포지토리 주소} --username {유저네임} --password {토큰]

이렇게 되면 세팅이 완료된다.

profile
개발 로그 🍎 🍎 🍎

1개의 댓글

comment-user-thumbnail
2024년 5월 19일

안녕하세요.질문이있습니다. k8s cluster에 argocd를 helm으로 설치한건 알겠는데, 맨 처음에 서버에 설치한 argocd는 무슨용도인가요?

답글 달기