aws eks
kubernetes 1.20
helm 3.6.1
linux
이글은 설치에 중점을 둔 글로 개념에 대한 글은 추후 포스팅하겠다.
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
helm repo add argo https://argoproj.github.io/argo-helm
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 파일을 변경했으면 이제 적용하기 위해 세팅할 상태이다
쿠버네티스 네임스패이스를 생성해준다.
kubectl create ns argo
이제 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
이제 쿠버네티스에 띄운 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
지정한 도메인으로 접근해보자
argocd cluster add {클러스터 정보} grpc-web --server argocd.bbo.com:80
이러면 클러스터가 등록된다.
여기서 중요한 점은 80 으로 해야한다. 아까 insecure 옵션을 주었기 때문이다. 그 옵션 뺀다면 화면이 뜨지 않는다.
argocd repo add http://{리포지토리 주소} --username {유저네임} --password {토큰]
이렇게 되면 세팅이 완료된다.
안녕하세요.질문이있습니다. k8s cluster에 argocd를 helm으로 설치한건 알겠는데, 맨 처음에 서버에 설치한 argocd는 무슨용도인가요?