Argo CD 설치 및 기본 설정

Argo CD 설치 및 기본 설정

1️⃣ Argo CD 설치 방법 (Helm, Kustomize, YAML 배포)


Argo CD는 여러 가지 방법으로 설치할 수 있습니다. 대표적으로 YAML 배포, Helm Chart, Kustomize 방식이 있으며, 각 방식별 설치 방법을 살펴보겠습니다.

1. YAML을 이용한 설치

Argo CD 공식 배포 YAML을 사용하여 설치할 수 있습니다.

kubectl create namespace argocd
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

설치 확인

kubectl get pods -n argocd

2. Helm을 이용한 설치

helm repo add argo https://argoproj.github.io/argo-helm
helm repo update
helm install argocd argo/argo-cd -n argocd --create-namespace

설치 확인

kubectl get svc -n argocd

3. Kustomize를 이용한 설치

git clone https://github.com/argoproj/argo-cd.git
cd argo-cd/manifests
kubectl apply -k overlays/standalone

설치 확인

kubectl get pods -n argocd

2️⃣ Argo CD CLI 및 UI 사용법

Argo CD는 CLI(Command Line Interface)웹 UI를 제공합니다.

1. CLI 설치 및 로그인

curl -sSL -o argocd https://github.com/argoproj/argo-cd/releases/latest/download/argocd-linux-amd64
chmod +x argocd
sudo mv argocd /usr/local/bin/

로그인:

argocd login <ARGOCD_SERVER> --username admin --password <PASSWORD>

2. 웹 UI 접속

Argo CD 웹 UI에 접근하려면 다음 명령을 실행하세요:

kubectl port-forward svc/argocd-server -n argocd 8080:443

➡ 브라우저에서 https://localhost:8080 접속 후 로그인합니다.


3️⃣ Argo CD RBAC (Role-Based Access Control) 설정

RBAC을 사용하면 특정 사용자 및 그룹에게 권한을 부여할 수 있습니다.

1. RBAC 설정 파일 (argocd-rbac-cm.yaml)

다음은 예제 설정입니다.

apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-rbac-cm
  namespace: argocd
data:
  policy.csv: |
    p, admin, *, *, allow
    p, dev, applications, get, allow
  policy.default: 'role:readonly'

적용:

kubectl apply -f argocd-rbac-cm.yaml

4️⃣ HTTPS 및 인증서 설정

Argo CD는 기본적으로 HTTP를 사용하지만, 보안을 위해 HTTPS 설정을 권장합니다.

1. Let’s Encrypt 인증서 적용 (예제)

kubectl create secret tls argocd-tls --cert=cert.pem --key=key.pem -n argocd

2. Ingress 설정을 통한 HTTPS 적용 (예제)

apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
  name: argocd-ingress
  namespace: argocd
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  tls:
  - hosts:
      - argocd.example.com
    secretName: argocd-tls
  rules:
  - host: argocd.example.com
    http:
      paths:
      - path: /
        pathType: Prefix
        backend:
          service:
            name: argocd-server
            port:
              number: 443

적용:

kubectl apply -f ingress.yaml

5️⃣ Argo CD 기본 설정값 (argocd-cm, argocd-rbac-cm)

Argo CD의 주요 설정은 ConfigMap을 통해 관리됩니다.

1. argocd-cm.yaml (설정 예제)

apiVersion: v1
kind: ConfigMap
metadata:
  name: argocd-cm
  namespace: argocd
data:
  application.instanceLabelKey: argocd.argoproj.io/instance
  server.rbac.log.enforce.enable: "true"
  dex.config: |
    connectors:
      - type: github
        id: github
        name: GitHub

2. 설정 적용 방법

kubectl apply -f argocd-cm.yaml
kubectl rollout restart deployment argocd-server -n argocd
RSS Feed
마지막 수정일자