본문으둜 κ±΄λ„ˆλ›°κΈ°

🏒 On-Premise ICT Project

🏒 On-Premise ICT Project

Kubernetes 및 Docker 기반의 μ˜¨ν”„λ ˆλ―ΈμŠ€ 인프라/μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ좕 ν”„λ‘œμ νŠΈ


λͺ©μ°¨β€‹

  1. 🎯 κ°œμš”
  2. πŸ“… Day별 ν•™μŠ΅ λ‚΄μš©
  3. πŸ—οΈ μ•„ν‚€ν…μ²˜ ꡬ성
  4. πŸ“š μ£Όμš” λ¬Έμ„œ λ°”λ‘œκ°€κΈ°
  5. ⚑ λΉ λ₯Έ μ‹œμž‘
  6. πŸ”— μ°Έκ³  링크

🎯 κ°œμš”β€‹

μ£Όμš” λͺ©ν‘œ:

λͺ©ν‘œμ„€λͺ…
πŸ›οΈ 2-Tier/3-Tier μ•„ν‚€ν…μ²˜λ©€ν‹° ν‹°μ–΄ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ ꡬ좕
🌐 Ingress-Nginxν΄λŸ¬μŠ€ν„° μ§„μž…μ  ꡬ성
πŸ”„ ν•˜μ΄λΈŒλ¦¬λ“œ CI/CDGitHub + GitLab νŒŒμ΄ν”„λΌμΈ
πŸ›‘οΈ μ»¨ν…Œμ΄λ„ˆ λ³΄μ•ˆTrivy μŠ€μΊ” μžλ™ν™”

πŸ“… Day별 ν•™μŠ΅ λ‚΄μš©β€‹

Dayμ£Όμ œν•΅μ‹¬ λ‚΄μš©λ§ν¬
Day 2-3πŸ”§ CI/CD νŒŒμ΄ν”„λΌμΈGitHub β†’ GitLab 미러링, 3-Tier λ°°ν¬πŸ“– λ°”λ‘œκ°€κΈ°
Day 3πŸ—οΈ Application Architecture2-Tier/3-Tier, GitLab RunnerπŸ“– λ°”λ‘œκ°€κΈ°
Day 4πŸšͺ Ingress-NginxNodePort, ν•˜μ΄λΈŒλ¦¬λ“œ CI/CD, TrivyπŸ“– λ°”λ‘œκ°€κΈ°
Day 5πŸ“‚ NFS + VirshNFS λ³Όλ₯¨, VM μŠ€λƒ…μƒ· κ΄€λ¦¬πŸ“– λ°”λ‘œκ°€κΈ°
Day 6⏸️ (μž‘μ—… μ—†μŒ)-πŸ“– λ°”λ‘œκ°€κΈ°
Day 7πŸ—„οΈ DB ReplicationMySQL Master-Slave λ³΅μ œπŸ“– λ°”λ‘œκ°€κΈ°
Day 8πŸ–₯️ 3-Tier VMwareBastion, NFS, MySQL, K8s ν΄λŸ¬μŠ€ν„°, GitLabπŸ“– λ°”λ‘œκ°€κΈ°

πŸ—οΈ μ•„ν‚€ν…μ²˜ ꡬ성​

πŸ”„ 전체 CI/CD 흐름​

πŸ›οΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ 계측​

계측ꡬ성 μš”μ†Œλ„€μž„μŠ€νŽ˜μ΄μŠ€μ„œλΉ„μŠ€ νƒ€μž…
πŸšͺ IngressNginxingressNodePort (30080)
3️⃣ 3-TierNginx, FastAPI, MySQL3tier-*ClusterIP
2️⃣ 2-TierWordPress, MySQL2tier-wordpressClusterIP
πŸ—„οΈ DB ReplicationMySQL (Master-Slave)db-replicationLoadBalancer

πŸ“š μ£Όμš” λ¬Έμ„œ λ°”λ‘œκ°€κΈ°β€‹

πŸ”„ CI/CD & νŒŒμ΄ν”„λΌμΈβ€‹

μ£Όμ œλ§ν¬μ„€λͺ…
GitHub Actionsμ›Œν¬ν”Œλ‘œμš° READMEGitleaks, Trivy, Build, Mirror
GitLab CI.gitlab-ci.ymlSelf-hosted Runner λΉŒλ“œ
GitLab Runner ꡬ좕Runner κ°€μ΄λ“œλ‘œμ»¬ Runner μ„€μ •

πŸ›οΈ μ• ν”Œλ¦¬μΌ€μ΄μ…˜ μ•„ν‚€ν…μ²˜β€‹

μ£Όμ œλ§ν¬μ„€λͺ…
2-Tier2-Tier READMEWordPress + MySQL
3-Tier3-Tier READMENginx + FastAPI + MySQL
Ingress-NginxIngress READMENodePort μ§„μž…μ 
DB ReplicationDay 7 READMEMySQL Master-Slave ꡬ성

πŸ›‘οΈ λ³΄μ•ˆ & ν•˜μ΄λΈŒλ¦¬λ“œβ€‹

μ£Όμ œλ§ν¬μ„€λͺ…
Trivy λ³΄μ•ˆ μŠ€μΊ”Trivy κ°€μ΄λ“œμ»¨ν…Œμ΄λ„ˆ 취약점 μŠ€μΊ”
GitHub + GitLabν•˜μ΄λΈŒλ¦¬λ“œ κ°€μ΄λ“œPublic + Private μ „λž΅

⚑ λΉ λ₯Έ μ‹œμž‘β€‹

πŸšͺ Ingress-Nginx 배포​

# 1. Docker 인증 정보 인코딩
export DOCKER_CONFIG_JSON_BASE64=$(cat ~/.docker/config.json | base64 -w 0)

# 2. 배포
cd on-premise-ict/day4-1218/ingress/nginx
envsubst < nginx.yaml | kubectl apply -f -

# 3. 접속 확인
kubectl get svc -n ingress
# λΈŒλΌμš°μ €μ—μ„œ http://<NodeIP>:30080 접속

3️⃣ 3-Tier 배포​

# MySQL
cd on-premise-ict/day3-1217/3-tier/mysql
envsubst < mysql.yaml | kubectl apply -f -

# FastAPI
cd ../fastapi
envsubst < fastapi.yaml | kubectl apply -f -

# Nginx
cd ../nginx
envsubst < nginx.yaml | kubectl apply -f -

πŸ—„οΈ DB Replication 배포​

# 1. Master 배포 (Docker Compose)
cd on-premise-ict/day7-1221/mysql
docker compose up -d

# 2. Slave 배포 (Kubernetes)
export $(grep -v '^#' .env | xargs)
envsubst < mysql-slave-statefullset.yaml | kubectl apply -f -

πŸ”— μ°Έκ³  링크​

λ¬Έμ„œλ§ν¬
ν”„λ‘œμ νŠΈ 메인 README../README.md
GitHub Actions λ¬Έμ„œdocs.github.com
GitLab CI/CD λ¬Έμ„œdocs.gitlab.com
Kubernetes 곡식 λ¬Έμ„œkubernetes.io

κ΄€λ ¨ λ¬Έμ„œβ€‹

κ·Έλž˜ν”„ λ·°

…
κ·Έλž˜ν”„ 데이터 λ‘œλ”© 쀑…
ν˜„μž¬: 🏒 On-Premise ICT Project
λ…Έλ“œ 클릭 β†’ 이동 Β· λ“œλž˜κ·Έ β†’ μœ„μΉ˜ μ‘°μ •