# Site11 KIND Kubernetes 개발 환경 Docker Compose를 통한 간편한 로컬 Kubernetes 개발 환경 ## 빠른 시작 ```bash # 1. 관리 컨테이너 시작 (한 번만 실행) docker-compose -f docker-compose.kubernetes.yml up -d # 2. KIND 클러스터 생성 및 Console 배포 docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh setup # 3. 상태 확인 docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh status ``` 완료! 이제 브라우저에서 접속 가능합니다: - **Frontend**: http://localhost:3000 - **Backend**: http://localhost:8000 ## 실시간 모니터링 ```bash docker-compose -f docker-compose.kubernetes.yml logs -f monitor ``` ## 일상적인 작업 ### 클러스터 상태 확인 ```bash docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh status ``` ### kubectl 사용 ```bash # Pod 목록 docker-compose -f docker-compose.kubernetes.yml exec kind-cli kubectl get pods -n site11-console # 로그 확인 docker-compose -f docker-compose.kubernetes.yml exec kind-cli kubectl logs -n site11-console # Shell 접속 docker-compose -f docker-compose.kubernetes.yml exec kind-cli kubectl exec -it -n site11-console -- /bin/bash ``` ### 서비스 재배포 ```bash # 이미지 빌드 (로컬) docker build -t yakenator/site11-console-backend:latest \ -f services/console/backend/Dockerfile services/console/backend # 이미지 KIND에 로드 docker-compose -f docker-compose.kubernetes.yml exec kind-cli \ kind load docker-image yakenator/site11-console-backend:latest --name site11-dev # Pod 재시작 docker-compose -f docker-compose.kubernetes.yml exec kind-cli \ kubectl rollout restart deployment/console-backend -n site11-console ``` ## Shell 접속 ```bash docker-compose -f docker-compose.kubernetes.yml exec kind-cli bash ``` Shell 내에서는 `kind`, `kubectl`, `docker` 명령을 모두 사용할 수 있습니다. ## 클러스터 삭제 및 재생성 ```bash # 클러스터 삭제 docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh delete # 클러스터 재생성 docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh setup ``` ## 관리 컨테이너 중지 ```bash docker-compose -f docker-compose.kubernetes.yml down ``` **참고**: 이것은 관리 헬퍼 컨테이너만 중지합니다. KIND 클러스터 자체는 계속 실행됩니다. ## 별칭(Alias) 설정 (선택사항) `.bashrc` 또는 `.zshrc`에 추가: ```bash alias k8s='docker-compose -f docker-compose.kubernetes.yml' alias k8s-exec='docker-compose -f docker-compose.kubernetes.yml exec kind-cli' alias k8s-setup='docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh' alias k8s-kubectl='docker-compose -f docker-compose.kubernetes.yml exec kind-cli kubectl' ``` 사용 예: ```bash k8s up -d k8s-setup setup k8s-setup status k8s-kubectl get pods -A k8s logs -f monitor ``` ## 상세 문서 더 자세한 정보는 다음 문서를 참고하세요: - [KUBERNETES.md](./KUBERNETES.md) - 전체 가이드 - [docs/KIND_SETUP.md](./docs/KIND_SETUP.md) - KIND 상세 설정 ## 문제 해결 ### 클러스터가 시작되지 않는 경우 ```bash # Docker Desktop이 실행 중인지 확인 docker ps # KIND 클러스터 상태 확인 docker-compose -f docker-compose.kubernetes.yml exec kind-cli kind get clusters # 클러스터 재생성 docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh delete docker-compose -f docker-compose.kubernetes.yml exec kind-cli /scripts/kind-setup.sh setup ``` ### 이미지가 로드되지 않는 경우 ```bash # 로컬에 이미지가 있는지 확인 docker images | grep site11 # 이미지 빌드 후 다시 로드 docker build -t yakenator/site11-console-backend:latest \ -f services/console/backend/Dockerfile services/console/backend docker-compose -f docker-compose.kubernetes.yml exec kind-cli \ kind load docker-image yakenator/site11-console-backend:latest --name site11-dev ``` ### NodePort 접속이 안되는 경우 ```bash # 서비스 확인 docker-compose -f docker-compose.kubernetes.yml exec kind-cli \ kubectl get svc -n site11-console # NodePort 확인 (30080, 30081이어야 함) docker-compose -f docker-compose.kubernetes.yml exec kind-cli \ kubectl describe svc console-frontend -n site11-console ```