← 목차
Week 8 · Phase 4 DevOps 통합

DevOps 통합
Harbor · Jenkins · GitOps

레지스트리와 취약점 스캔, Jenkins CI, ArgoCD GitOps를 하나의 CI/CD 파이프라인으로
학습 자료 · harbor-registry · k8s-cicd
산출물 · CI/CD 파이프라인 구축 + 종합 프로젝트

학습 목표

"코드 → 이미지 → 클러스터"를 자동화한다
  • Harbor — 컨테이너 레지스트리의 필요성과 역할을 안다
  • Trivy — 이미지 취약점 스캔을 수행하고 결과를 해석한다
  • Jenkins — Master/Agent 구조와 Declarative Pipeline(Jenkinsfile)을 작성한다
  • GitOps + ArgoCD — 4대 원칙을 이해하고 Git → 클러스터 동기화를 구현한다
  • 하이브리드 파이프라인 — Jenkins(CI) + ArgoCD(CD)를 종합 프로젝트로 구축한다

CI/CD 파이프라인 전체 그림

CI는 이미지를, CD는 클러스터 상태를 책임진다
CI — Jenkins App Repogit push Jenkins빌드 · Trivy 스캔 Harborimage push CD — ArgoCD (GitOps) Manifest Repoimage tag commit ArgoCDwatch → 자동 sync Kubernetes Clusterdev / stage App push → Jenkins(빌드+스캔+Harbor push) → Manifest Repo tag 업데이트 → ArgoCD가 감지해 클러스터에 자동 반영

Harbor · Trivy & Jenkins CI

안전한 이미지 저장 + 자동 빌드
Registry

Harbor + Trivy

  • 사설 컨테이너 레지스트리 · RBAC·프로젝트 격리
  • Trivy 이미지 취약점 스캔(HIGH/CRITICAL)
  • 서명·복제·보존 정책 등 엔터프라이즈 기능
CI

Jenkins

  • Master/Agent — 빌드 분산 실행
  • Jenkinsfile(Declarative Pipeline)로 단계 정의
  • GitHub Webhook → 자동 빌드 + Harbor push

GitOps & ArgoCD

Git이 유일한 진실의 원천(Single Source of Truth)
  • 선언적 — 원하는 상태를 Git 매니페스트로 기술
  • 버전 관리 — 모든 변경이 Git 이력 · git revert = 롤백
  • 자동 동기화 — ArgoCD가 Git ↔ 클러스터 차이를 감지·조정
  • 지속 조정(Self-Heal) — 수동 변경(Drift)도 원래 상태로 복구
i
ArgoCD Application CR: source(Git repo/path) + destination(cluster/ns) + syncPolicy(automated: prune·selfHeal)

라이브 실습 — 파이프라인 구성요소

Harbor·Trivy → Jenkins → ArgoCD 순서로
# Part A: Harbor 자격증명 + Trivy 스캔 $ kubectl create secret docker-registry harbor-cred \ --docker-server=harbor.example.com --docker-username=admin --docker-password=<pw> $ trivy image --severity HIGH,CRITICAL nginx:1.24 # Part B: Jenkins 설치 (Helm) $ helm install jenkins jenkins/jenkins -n jenkins --create-namespace --set agent.enabled=true # Part C: ArgoCD 설치 + Application 등록 $ kubectl apply -n argocd -f https://.../argo-cd/stable/manifests/install.yaml $ kubectl apply -f application.yaml # syncPolicy: automated(prune,selfHeal)

종합 프로젝트 — GitOps Capstone

지금까지 배운 것을 하나의 파이프라인으로
  • 저장소 분리 — App Repo + Manifest Repo
  • CI(Jenkins) — 빌드 + Trivy 스캔 + Harbor push + Manifest Repo에 image tag commit
  • CD(ArgoCD) — Manifest Repo watch → 자동 sync (ApplicationSet로 dev/stage 분리)
  • RBAC — 개발자는 dev NS만, ArgoCD는 dev+stage
✓
산출물: 두 Repo 이력 · Jenkins 빌드 3회+ · ArgoCD Synced/Healthy · Harbor tag 3개+ · git revert 롤백 데모 · 발표 슬라이드

체크리스트 & 다음 주

이걸 할 수 있으면 Week 8 완료
  • Harbor에 이미지를 push하고 Trivy 스캔 결과를 해석할 수 있다
  • Jenkinsfile로 빌드→스캔→push 파이프라인을 작성할 수 있다
  • GitOps 4원칙을 설명하고 ArgoCD Application을 등록할 수 있다
  • git revert로 배포를 롤백할 수 있다
→
다음 주(Week 9) — VCF/VKS 실무: VCF Supervisor 아키텍처와 VPC 네트워킹으로 넘어갑니다.