version: '3.8' # Site11 KIND Kubernetes 개발 환경 # # 빠른 시작: # docker-compose -f docker-compose.kubernetes.yml up -d # # 관리 명령어: # docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh setup # docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh status # docker-compose -f docker-compose.kubernetes.yml logs -f monitor services: # KIND CLI 관리 서비스 (kind, kubectl, docker 모두 포함) # Note: MongoDB와 Redis는 기존 docker-compose.yml에서 관리됩니다 kind-cli: image: alpine:latest container_name: site11-kind-cli volumes: - /var/run/docker.sock:/var/run/docker.sock - ~/.kube:/root/.kube - ./k8s:/k8s - ./scripts:/scripts networks: - kind working_dir: /scripts entrypoint: /bin/sh command: | -c " # Install required tools apk add --no-cache docker-cli curl bash # Install 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 && mv kubectl /usr/local/bin/ # Install kind curl -Lo ./kind https://kind.sigs.k8s.io/dl/latest/kind-linux-amd64 chmod +x kind && mv kind /usr/local/bin/ echo ''; echo '╔═══════════════════════════════════════╗'; echo '║ Site11 KIND Cluster Manager ║'; echo '╚═══════════════════════════════════════╝'; echo ''; echo '사용 가능한 명령어:'; echo ''; echo ' 전체 설정 (클러스터 생성 + 배포):'; echo ' docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh setup'; echo ''; echo ' 개별 명령어:'; echo ' docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh create'; echo ' docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh status'; echo ' docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh delete'; echo ''; echo ' kubectl 직접 사용:'; echo ' docker-compose -f docker-compose.kubernetes.yml exec kind-cli kubectl get pods -A'; echo ''; echo ' Shell 접속:'; echo ' docker-compose -f docker-compose.kubernetes.yml exec kind-cli bash'; echo ''; echo 'KIND CLI 준비 완료!'; tail -f /dev/null " restart: unless-stopped # 클러스터 실시간 모니터링 monitor: image: bitnami/kubectl:latest container_name: site11-kind-monitor volumes: - ~/.kube:/root/.kube:ro networks: - kind entrypoint: /bin/bash command: | -c " while true; do clear; echo '╔═══════════════════════════════════════════════════╗'; echo '║ Site11 KIND Cluster Monitor ║'; echo '║ Updated: $$(date +"%Y-%m-%d %H:%M:%S") ║'; echo '╚═══════════════════════════════════════════════════╝'; echo ''; if kubectl cluster-info --context kind-site11-dev &>/dev/null; then echo '✅ Cluster Status: Running'; echo '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'; echo ''; echo '📦 Nodes:'; kubectl get nodes --context kind-site11-dev 2>/dev/null | sed '1s/.*/ &/' | sed '1!s/.*/ &/' || echo ' No nodes'; echo ''; echo '🔧 Console Namespace (site11-console):'; kubectl get pods -n site11-console --context kind-site11-dev 2>/dev/null | sed '1s/.*/ &/' | sed '1!s/.*/ &/' || echo ' No pods'; echo ''; echo '📊 Services:'; kubectl get svc -n site11-console --context kind-site11-dev 2>/dev/null | sed '1s/.*/ &/' | sed '1!s/.*/ &/' || echo ' No services'; echo ''; echo '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'; echo '🌐 Access URLs:'; echo ' Frontend: http://localhost:3000'; echo ' Backend: http://localhost:8000'; else echo '❌ Cluster Status: Not Running'; echo '━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'; echo ''; echo '시작 방법:'; echo ' docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh setup'; fi; echo ''; echo 'Next update in 30 seconds... (Press Ctrl+C to stop)'; sleep 30; done " restart: unless-stopped networks: kind: name: kind external: true # 참고: # 1. KIND 클러스터 자체는 docker-compose로 직접 제어되지 않습니다 # 2. 이 파일은 KIND 클러스터 관리를 위한 헬퍼 컨테이너들을 제공합니다 # 3. 실제 클러스터 생성/삭제는 kind CLI를 사용해야 합니다 # # KIND 클러스터 라이프사이클: # 생성: kind create cluster --config k8s/kind-dev-cluster.yaml # 삭제: kind delete cluster --name site11-dev # 목록: kind get clusters # # docker-compose 명령어: # 헬퍼 시작: docker-compose -f docker-compose.kubernetes.yml up -d # 헬퍼 중지: docker-compose -f docker-compose.kubernetes.yml down # 로그 확인: docker-compose -f docker-compose.kubernetes.yml logs -f kind-monitor