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
마지막 수정일자