ArgoCD 퀴즈
이 퀴즈는 ArgoCD와 GitOps에 대한 이해도를 테스트합니다.
문제 1: GitOps 기본 원칙
GitOps의 4가지 핵심 원칙은 무엇인가요?
답변:
- 선언적 구성: 시스템의 원하는 상태를 코드로 정의
- 버전 제어: 모든 변경 사항을 Git에서 추적
- 자동화된 동기화: 저장소와 실행 환경 간의 차이를 자동으로 조정
- 자체 치유: 시스템이 원하는 상태로 자동 복구
이러한 원칙들은 GitOps가 단순한 배포 도구를 넘어서 전체 운영 모델로 작동할 수 있게 합니다.
문제 2: ArgoCD 아키텍처
ArgoCD의 주요 구성 요소와 각각의 역할은?
답변:
- API Server: REST API 및 웹 UI 제공, 인증 및 권한 관리
- Repository Server: Git 저장소 연결 및 매니페스트 생성
- Application Controller: 애플리케이션 상태 모니터링 및 동기화 수행
- Redis: 캐싱 및 세션 저장소
- Dex: OIDC 인증 서버 (선택사항)
각 구성 요소는 독립적으로 확장 가능하며, 고가용성 구성을 지원합니다.
문제 3: Application 리소스
ArgoCD Application 리소스의 필수 구성 요소는?
답변:
yaml
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
name: my-app
namespace: argocd
spec:
project: default
source:
repoURL: https://github.com/example/app-config
targetRevision: HEAD
path: k8s
destination:
server: https://kubernetes.default.svc
namespace: default
syncPolicy:
automated:
prune: true
selfHeal: true필수 요소:
source: Git 저장소 정보destination: 배포 대상 클러스터 및 네임스페이스project: ArgoCD 프로젝트 (권한 관리)
문제 4: 동기화 정책
ArgoCD의 자동 동기화와 수동 동기화의 차이점은?
답변:자동 동기화 (Automated Sync):
yaml
syncPolicy:
automated:
prune: true # 불필요한 리소스 자동 삭제
selfHeal: true # 드리프트 자동 복구- Git 변경 시 자동으로 클러스터에 적용
- 드리프트 감지 시 자동 복구
- 프로덕션 환경에서는 신중하게 사용
수동 동기화 (Manual Sync):
- 사용자가 명시적으로 동기화 실행
- 변경 사항을 검토한 후 적용
- 더 안전하지만 운영 오버헤드 증가
문제 5: ApplicationSet
ArgoCD ApplicationSet의 용도와 주요 생성기(Generator) 유형은?
답변:용도:
- 다중 클러스터 배포 자동화
- 템플릿 기반 Application 생성
- 환경별 구성 관리
주요 생성기:
- List Generator: 정적 값 목록 기반
- Cluster Generator: 등록된 클러스터 기반
- Git Generator: Git 저장소 구조 기반
- Matrix Generator: 여러 생성기 조합
- Pull Request Generator: PR 기반 임시 환경
yaml
apiVersion: argoproj.io/v1alpha1
kind: ApplicationSet
metadata:
name: cluster-apps
spec:
generators:
- clusters: {}
template:
metadata:
name: '{{name}}-app'
spec:
source:
repoURL: https://github.com/example/apps
path: '{{name}}'
destination:
server: '{{server}}'문제 6: 보안 모범 사례
ArgoCD 보안을 강화하기 위한 주요 방법들은?
답변:
RBAC 구성:
yamlpolicy.default: role:readonly policy.csv: | p, role:admin, applications, *, */*, allow p, role:dev, applications, get, dev/*, allow g, dev-team, role:devSSO 통합:
- OIDC, SAML, LDAP 연동
- 중앙 집중식 인증 관리
네트워크 보안:
- Ingress TLS 설정
- 네트워크 정책 적용
- 프라이빗 Git 저장소 사용
시크릿 관리:
- External Secrets Operator 사용
- Sealed Secrets 또는 Helm Secrets
- 민감한 정보의 Git 저장소 분리
감사 로깅:
- 모든 변경 사항 추적
- 액세스 로그 모니터링
문제 7: 멀티 클러스터 관리
ArgoCD에서 여러 클러스터를 관리하는 방법은?
답변:
클러스터 등록:
bashargocd cluster add my-cluster-context클러스터별 Application 배포:
yamldestination: server: https://my-cluster-api-server namespace: productionApplicationSet을 통한 자동화:
yamlgenerators: - clusters: selector: matchLabels: environment: production클러스터 권한 관리:
- 클러스터별 서비스 계정 구성
- 최소 권한 원칙 적용
- 네임스페이스 기반 격리
모니터링 및 알림:
- 클러스터별 상태 대시보드
- 동기화 실패 알림
- 리소스 사용량 모니터링
문제 8: 문제 해결
ArgoCD 애플리케이션이 "OutOfSync" 상태일 때 확인해야 할 사항은?
답변:
Git 저장소 상태 확인:
bash# 저장소 접근 권한 확인 argocd repo list argocd repo get <repo-url>매니페스트 유효성 검증:
bash# 로컬에서 매니페스트 검증 kubectl apply --dry-run=client -f manifests/동기화 정책 확인:
- 자동 동기화 설정 여부
- Prune 및 SelfHeal 옵션
- 동기화 조건 (Sync Windows)
리소스 상태 분석:
bash# 애플리케이션 상세 정보 확인 argocd app get <app-name> argocd app diff <app-name>로그 확인:
bash# ArgoCD 컨트롤러 로그 kubectl logs -n argocd -l app.kubernetes.io/name=argocd-application-controller수동 동기화 시도:
bashargocd app sync <app-name> --prune
문제 9: 최신 GitOps 트렌드
2025년 GitOps 영역의 주요 트렌드는?
답변:
멀티 클러스터 GitOps:
- ApplicationSets를 통한 다중 클러스터 배포 자동화
- 클러스터 간 구성 동기화 및 정책 적용
하이브리드 및 멀티 클라우드 GitOps:
- 온프레미스와 클라우드 환경의 일관된 배포 전략
- 다양한 클라우드 제공업체 간 워크로드 이식성
GitOps와 정책 관리 통합:
- OPA(Open Policy Agent)와 Kyverno 통합
- 규정 준수 및 거버넌스 자동화
- 보안 정책의 코드화 및 버전 관리
Progressive Delivery:
- Canary 및 Blue-Green 배포 자동화
- Argo Rollouts와의 통합
- 메트릭 기반 자동 롤백
문제 10: Amazon EKS 통합
ArgoCD를 Amazon EKS와 통합할 때 고려사항은?
답변:
IAM 권한 설정:
yaml# IRSA (IAM Roles for Service Accounts) 구성 serviceAccount: annotations: eks.amazonaws.com/role-arn: arn:aws:iam::ACCOUNT:role/argocd-roleALB Ingress 구성:
yamlannotations: kubernetes.io/ingress.class: alb alb.ingress.kubernetes.io/scheme: internet-facing alb.ingress.kubernetes.io/target-type: ipEKS 클러스터 등록:
bash# EKS 클러스터를 ArgoCD에 등록 argocd cluster add arn:aws:eks:region:account:cluster/cluster-nameECR 통합:
- ECR 이미지 자동 업데이트
- Image Updater 구성
AWS Load Balancer Controller:
- 서비스 로드 밸런싱 최적화
- Target Group Binding 활용
보안 고려사항:
- VPC 엔드포인트 사용
- 보안 그룹 구성
- 네트워크 정책 적용
점수 계산:
- 8-10개 정답: 우수 (ArgoCD 전문가 수준)
- 6-7개 정답: 양호 (추가 학습 권장)
- 4-5개 정답: 보통 (기본 개념 복습 필요)
- 0-3개 정답: 미흡 (전체 내용 재학습 필요)