Infra/Kubernetes & EKS

[EKS] ArgoCD 설치 및 ingress 설정 방법

jimmy_AI 2023. 12. 9. 00:33
반응형

EKS 클러스터 내에서 helm을 통하여 ArgoCD를 셋업하고,

설치된 ArgoCD에 ingress를 설정하여 특정 웹사이트 주소로 호스팅 준비를 하는 방법을

간략하게 정리하여 다루어보도록 하겠습니다.

 

 

Prerequisite: helm 설치

ArgoCD 설치를 위해서는 helm이 쿠버네티스 환경 내에 설치되어 있어야 합니다.

 

helm 설치 및 기본적인 사용 방법에 대해서는 아래의 글에 정리해두었으니,

필요하신 분들은 참고해보세요.

 

helm 소개 및 기초 명령어 예시 정리

helm이란? 쿠버네티스 환경에서 패키지 관리자 역할로, 복잡한 쿠버네티스 yaml 파일을 세세히 작성하지 않아도 기본적인 세팅을 도와주고 애플리케이션 설치, 업그레이드, 관리가 매우 용이하게

jimmy-ai.tistory.com

 

 

ArgoCD 셋업 방법

1. ArgoCD repo를 다운로드 받습니다.

명령어의 예시는 다음과 같습니다.

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 repo를 추가해줍니다.

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

 

3. ArgoCD의 values.yaml 파일을 가져옵니다.

helm show values argo/argo-cd > values.yaml

 

4. 위에서 가져왔던 values.yaml에서 server.insecure 항목을 찾아 true로 바꿔줍니다.

server.insecure: true

 

5. ArgoCD에 배포할 네임스페이스를 생성합니다.

여기서는 argocd라는 이름의 네임스페이스를 사용한다고 가정해보도록 하겠습니다.

kubectl create namespace argocd

 

6. 이제 helm에서 ArgoCD 설치를 진행해줍니다.

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

 

7. 여기까지 진행되었으면, argocd 네임스페이스 내에 pod가 잘 떴는지를 확인해주시면 됩니다.

kubectl get po -n argocd

 

반응형

 

ArgoCD ingress 및 도메인 설정 방법

만일, ArgoCD를 Route 53 등에서 설정한 특정 도메인을 사용한 url로 주소로 사용하고 싶다면

그전에 ingress를 먼저 설정하는 과정이 필요합니다.

 

ingress를 설정하기 위한 ingress.yaml 파일은 아래와 같은 양식으로 작성해주시면 됩니다.

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  annotations:
    alb.ingress.kubernetes.io/scheme: internet-facing
    alb.ingress.kubernetes.io/target-type: ip
    alb.ingress.kubernetes.io/group.name: argo-group
    alb.ingress.kubernetes.io/group.order: '1'
    alb.ingress.kubernetes.io/listen-ports: '[{"HTTPS": 443}]'
    alb.ingress.kubernetes.io/security-groups: <your security-groups token>
    alb.ingress.kubernetes.io/manage-backend-security-group-rules: "true"
    alb.ingress.kubernetes.io/certificate-arn: <your ACM-certification-arn>
    nginx.ingress.kubernetes.io/backend-protocol: HTTP
  name: argocd-ingress
  namespace: argocd
spec:
  ingressClassName: alb
  rules:
   - http:
      paths:
      - backend:
          service:
            name: argocd-server
            port:
              number: 80
        path: /
        pathType: Prefix

 

이후, 작성된 ingress.yaml 파일을 배포해주시면 됩니다.

kubectl apply -f ingress.yaml

 

이제 load balancer가 생성되었는지를 확인하시고,

Route 53의 도메인에 해당 load balancer를 연결해주시면 접속 준비가 완료됩니다.

 

참고: 초기 ArgoCD 비밀번호는 다음과 같이 확인이 가능하며, id는 admin입니다.

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

 

상세한 ArgoCD 사이트의 사용 방법은 기회가 되면 추가로 포스팅해보도록 하겠습니다.

P.S. 이 글 작성에 도움을 주신 JuneKyu Park님께 감사의 말씀을 올립니다.