feat: Integrate KIND cluster management with docker-compose
KIND 클러스터를 docker-compose로 관리할 수 있도록 개선했습니다. Changes: - docker-compose.kubernetes.yml: KIND CLI 통합 관리 서비스 - kind-cli: kind, kubectl, docker 모두 포함된 통합 CLI 컨테이너 - monitor: 실시간 클러스터 모니터링 서비스 - Alpine 기반으로 자동 도구 설치 - KUBERNETES.md: docker-compose 사용법 우선으로 재구성 - 방법 1 (권장): docker-compose 명령어 - 방법 2: 로컬 스크립트 - 방법 3: 수동 설정 - KIND_README.md: 빠른 시작 가이드 신규 작성 - docker-compose 기반 간편한 사용법 - 일상적인 작업 예시 - 별칭(alias) 설정 제안 - 문제 해결 가이드 Benefits: - 간편한 관리: docker-compose 한 줄로 환경 시작 - 통합 도구: kind, kubectl, docker 모두 한 컨테이너에서 사용 - 실시간 모니터링: docker-compose logs -f monitor - 일관된 환경: 로컬에 kind/kubectl 설치 불필요 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>
This commit is contained in:
152
KIND_README.md
Normal file
152
KIND_README.md
Normal file
@ -0,0 +1,152 @@
|
||||
# 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 <pod-name> -n site11-console
|
||||
|
||||
# Shell 접속
|
||||
docker-compose -f docker-compose.kubernetes.yml exec kind-cli kubectl exec -it <pod-name> -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
|
||||
```
|
||||
Reference in New Issue
Block a user