DevOps/Kubernetes

[kubernetes] Argo CD Install

twoDeveloper 2021. 12. 22. 22:57

■ ArgoCD Install

1. argo namespace 생성

$ kubectl create namespace argo
---
namespace/argo created

 

2. Helm repo add 및 Update 진행

$ helm repo add argo https://argoproj.github.io/argo-helm
---
"argo" has been added to your repositories

$ helm repo list
---
NAME	URL                                 
argo	https://argoproj.github.io/argo-helm

$ helm repo update

 

3. ArgoCd가 제공하는 템플릿 소스 Install

$ helm fetch argo/argo-cd
---
argo-cd-3.29.4.tgz

 

4. argo-cd-3.29.4.tgz 파일 압축 해제

$ tar -xvzf argo-cd-3.29.4.tgz

 

5. 압축 해제 후 argo-cd 폴더 내부 values.yaml 편집

  ## Server service configuration
  service:
    # -- Server service annotations
    annotations:
      service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
      service.beta.kubernetes.io/aws-load-balancer-subnets: subnet-0b0b22ec4efdxxxx, subnet-025c8eb524217xxxx, subnet-019014e891baexxxx
    # -- Server service labels
    labels: {}
    # -- Server service type
    type: LoadBalancer

- annotation:

  service.beta.kubernetes.io/aws-load-balancer-type: "nlb"
  service.beta.kubernetes.io/aws-load-balancer-subnets: [eks-cluster-public-subnet]

- type: ClusterIP -> LoadBalancer로 변경

 

6. 수정한 values.yaml 파일을 helm을 이용하여 ArgoCD Install

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

$ helm list -n argo
---
NAME	NAMESPACE	REVISION	UPDATED                                	STATUS  	CHART         	APP VERSION
argo	argo     	1       	2021-12-22 12:38:56.751705851 +0000 UTC	deployed	argo-cd-3.29.4	v2.2.1

 

7. Pod, Service 조회

$ kubectl get po, svc -n argo

정상 배포한 것을 확인

조회한 Service에서 Type: LoadBalancer의 External-IP로 접속하여 ArgoCD Ui에 접속

 

8. ArgoCD ID, PW

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

ID : admin

PW : 위 명령어를 입력 후 나온 값