gitops-demo

GitOps 학습 가이드

이 repository는 GitOps에 대한 체계적인 학습을 위한 자료를 제공합니다.

📚 학습 경로

1️⃣ GitOps Cookbook

GitOps의 기본 개념과 원칙을 학습합니다.

주요 내용:

2️⃣ Kubernetes 실습 환경

GitOps 실습을 위한 Kubernetes 클러스터를 구성합니다.

주요 내용:

3️⃣ ArgoCD

선언적 GitOps CD 도구인 ArgoCD를 학습합니다.

주요 내용:

4️⃣ Jenkins

CI/CD 파이프라인을 구축합니다.

주요 내용:

5️⃣ HashiCorp Vault

시크릿 관리 및 보안을 강화합니다.

주요 내용:

🎯 추천 학습 순서

처음 시작하시는 분들을 위한 추천 학습 경로:

1. GitOps 이론 학습
   └─> GitOps Cookbook 읽기
   
2. 실습 환경 구축
   ├─> Kubernetes 클러스터 구성 (Kind)
   ├─> Ingress Nginx 설치
   └─> TLS 인증서 생성

3. CD 도구 학습
   ├─> ArgoCD 설치
   ├─> Repository 연동
   └─> Application 배포 실습

4. CI 도구 학습
   ├─> Jenkins 설치
   ├─> Pipeline 작성
   └─> 이미지 빌드 자동화

5. 보안 강화
   └─> Vault로 시크릿 관리

💡 GitOps 워크플로우

이 학습 자료를 완료하면 다음과 같은 완전한 GitOps 워크플로우를 구현할 수 있습니다:

┌─────────────────────────────────────────────────────────────┐
│                   GitOps Workflow                            │
└─────────────────────────────────────────────────────────────┘

1. Developer
   └─> Git Push (소스 코드)

2. Jenkins (CI) ← 학습 항목
   ├─> 자동 빌드 트리거
   ├─> 테스트 실행
   ├─> Docker 이미지 빌드
   ├─> Container Registry에 푸시
   └─> Manifest Repository 업데이트

3. ArgoCD (CD) ← 학습 항목
   ├─> Manifest 변경 감지
   ├─> Kubernetes와 비교
   └─> 자동 배포

4. Vault (Secrets) ← 학습 항목
   ├─> Dynamic Secrets 생성
   └─> Jenkins/Application에 주입

5. Kubernetes Cluster ← 학습 항목
   └─> Application 실행

📖 참고 도서

이 학습 자료는 다음 도서들을 참고하여 작성되었습니다:

🛠️ 사전 요구사항

시스템 요구사항

필수 도구

macOS

# Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Docker Desktop
brew install --cask docker

# Kind
brew install kind

# kubectl
brew install kubectl

# Helm
brew install helm

# Git
brew install git

Linux (Ubuntu/Debian)

# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh

# Kind
curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64
chmod +x ./kind
sudo mv ./kind /usr/local/bin/kind

# kubectl
curl -LO "https://dl.k8s.io/release/$(curl -L -s https://dl.k8s.io/release/stable.txt)/bin/linux/amd64/kubectl"
chmod +x kubectl
sudo mv kubectl /usr/local/bin/

# Helm
curl https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3 | bash

📁 Repository 구조

gitops-demo/
├── docs/                          # 모든 학습 문서
│   ├── 01-gitops-cookbook/        # GitOps 이론
│   ├── 02-kubernetes/             # Kubernetes 실습
│   ├── 03-argocd/                 # ArgoCD 학습
│   ├── 04-jenkins/                # Jenkins 학습
│   ├── 05-vault/                  # Vault 학습
│   └── 99-references/             # 참고 자료
│
├── examples/                      # 실습 예제 (선택)
│   ├── kubernetes/
│   ├── argocd/
│   ├── jenkins/
│   └── vault/
│
└── README.md                      # 이 파일

💻 이 Repository 사용 방법

1. Clone

git clone <repository-url>
cd gitops-demo

2. 순차적 학습

각 주제별 디렉토리에는 README.md가 있어 전체 목차와 학습 가이드를 제공합니다. 문서는 순서대로 번호가 매겨져 있어 단계적으로 학습할 수 있습니다.

3. 실습

🌐 GitHub Pages

이 repository는 GitHub Pages와 연동되어 있습니다.

웹에서 보기: https://<username>.github.io/<repository-name>/

모든 문서가 웹에서도 보기 좋게 렌더링됩니다.

🤝 기여

이 학습 자료에 기여하고 싶으시다면:

  1. Fork this repository
  2. Create a feature branch
  3. Make your changes
  4. Submit a pull request

📝 라이선스

This repository is for educational purposes.

🙋 질문 및 피드백

🔗 유용한 링크

공식 문서

커뮤니티


Happy Learning! 🚀

GitOps를 통해 현대적인 클라우드 네이티브 애플리케이션 배포를 마스터하세요!