기존 KIND 클러스터를 삭제하고 docker-compose로 관리하도록 재구성했습니다. Changes: - docker-compose.kubernetes.yml: external network 설정으로 변경 - kind network를 external: true로 설정하여 충돌 방지 - 기존 kind network 재사용 Deployment Process: 1. 기존 KIND 클러스터 삭제 (site11-dev) 2. docker-compose 관리 컨테이너 시작 3. docker-compose를 통해 KIND 클러스터 생성 4. 네임스페이스 생성 (site11-console, site11-pipeline) 5. Docker 이미지 KIND에 로드 6. Console 서비스 배포 (mongodb, redis, backend, frontend) 7. 모든 Pods Running 상태 확인 8. 브라우저 테스트 성공 Result: - 5-node KIND cluster running via docker-compose - All 4 console pods running (mongodb, redis, backend, frontend) - Frontend accessible at http://localhost:3000 - Backend accessible at http://localhost:8000 Usage: 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 logs -f monitor 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
140 lines
5.8 KiB
YAML
140 lines
5.8 KiB
YAML
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 모두 포함)
|
|
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
|