diff --git a/README.md b/README.md index 1a47d9b..0d3aad5 100644 --- a/README.md +++ b/README.md @@ -33,21 +33,48 @@ Site11은 다국어 뉴스 콘텐츠를 자동으로 수집, 번역, 생성하 - **OS**: Linux, macOS, Windows with WSL2 ### 포트 사용 + +#### 하이브리드 배포 포트 구성 (현재 구성) +``` +[ Docker Compose - 인프라 서비스 ] +- 27017: MongoDB (내부) +- 6379: Redis (내부) +- 9092: Kafka (내부) +- 2181: Zookeeper (내부) +- 5555: Docker Registry (내부) +- 8099: Pipeline Scheduler +- 8100: Pipeline Monitor + +[ Kubernetes - 마이크로서비스 (NodePort) ] +- 30080: Console Frontend (→ 8080) +- 30800: Console Backend API Gateway (→ 8000) +- 30801-30802: Images Service (→ 8001-8002) +- 30803-30804: OAuth Service (→ 8003-8004) +- 30805-30806: Applications Service (→ 8005-8006) +- 30807-30808: Users Service (→ 8007-8008) +- 30809-30810: Data Service (→ 8009-8010) +- 30811-30812: Statistics Service (→ 8011-8012) + +[ Pipeline Workers (K8s 내부) ] +- RSS Collector +- Google Search +- Translator +- AI Article Generator +- Image Generator +``` + +#### 표준 Docker Compose 포트 구성 (전체 Docker 모드) ``` - 3000: Console Frontend -- 8011: Console Backend (API Gateway) -- 8012: Users Backend -- 8013: Notifications Backend -- 8014: OAuth Backend -- 8015: Images Backend -- 8016: Google Search Backend -- 8017: RSS Feed Backend -- 8018: News Aggregator Backend -- 8019: AI Writer Backend +- 8000: Console Backend (API Gateway) +- 8001-8002: Images Service +- 8003-8004: OAuth Service +- 8005-8006: Applications Service +- 8007-8008: Users Service +- 8009-8010: Data Service +- 8011-8012: Statistics Service +- 8099: Pipeline Scheduler - 8100: Pipeline Monitor -- 8983: Solr Search Engine -- 9000: MinIO Object Storage -- 9001: MinIO Console - 27017: MongoDB (내부) - 6379: Redis (내부) - 9092: Kafka (내부) @@ -92,18 +119,40 @@ docker-compose logs -f ``` ### 4. 서비스 확인 + +#### 하이브리드 배포 확인 (현재 구성) ```bash +# Console Frontend 접속 (K8s NodePort) +open http://localhost:30080 + +# Console API 헬스 체크 (K8s NodePort) +curl http://localhost:30800/health +curl http://localhost:30800/api/health + +# Pipeline 모니터 확인 (Docker) +curl http://localhost:8100/health + +# MongoDB 연결 확인 (Docker) +docker exec -it site11_mongodb mongosh --eval "db.serverStatus()" + +# K8s Pod 상태 확인 +kubectl -n site11-pipeline get pods +kubectl -n site11-pipeline get services +``` + +#### 표준 Docker 확인 +```bash +# Console Frontend 접속 +open http://localhost:3000 + # Console API 헬스 체크 -curl http://localhost:8011/health +curl http://localhost:8000/health # MongoDB 연결 확인 docker exec -it site11_mongodb mongosh --eval "db.serverStatus()" # Pipeline 모니터 확인 curl http://localhost:8100/health - -# Console UI 접속 -open http://localhost:3000 ``` ## 상세 설치 가이드 (Detailed Installation) @@ -464,12 +513,14 @@ Site11은 Docker Compose와 Kubernetes를 함께 사용하는 하이브리드 ### 배포 아키텍처 -#### Docker Compose (인프라 및 중앙 제어) +#### Docker Compose (인프라 서비스) - **인프라**: MongoDB, Redis, Kafka, Zookeeper - **중앙 제어**: Pipeline Scheduler, Pipeline Monitor, Language Sync -- **관리 콘솔**: Console Backend/Frontend +- **레지스트리**: Docker Registry (port 5555) -#### Kubernetes (무상태 워커) +#### Kubernetes (애플리케이션 및 파이프라인) +- **관리 콘솔**: Console Backend/Frontend +- **마이크로서비스**: Images, OAuth, Applications, Users, Data, Statistics - **데이터 수집**: RSS Collector, Google Search - **처리 워커**: Translator, AI Article Generator, Image Generator - **자동 스케일링**: HPA(Horizontal Pod Autoscaler) 적용 @@ -488,15 +539,40 @@ docker-compose -f docker-compose-hybrid.yml ps docker-compose -f docker-compose-hybrid.yml logs -f pipeline-scheduler ``` -#### 2. K8s 워커 배포 +#### 2. Docker Hub를 사용한 K8s 배포 (권장) ```bash -# K8s 매니페스트 디렉토리로 이동 +# Docker Hub에 이미지 푸시 +./deploy-dockerhub.sh + +# K8s 네임스페이스 및 설정 생성 +kubectl create namespace site11-pipeline +kubectl -n site11-pipeline apply -f k8s/pipeline/configmap.yaml +kubectl -n site11-pipeline apply -f k8s/pipeline/secrets.yaml + +# Docker Hub 이미지로 배포 cd k8s/pipeline +for service in console-backend console-frontend \ + ai-article-generator translator image-generator \ + rss-collector google-search; do + kubectl apply -f ${service}-dockerhub.yaml +done -# API 키 설정 (configmap.yaml 편집) -vim configmap.yaml +# 배포 상태 확인 +kubectl -n site11-pipeline get pods +kubectl -n site11-pipeline get services +kubectl -n site11-pipeline get hpa +``` -# 배포 실행 +#### 3. 로컬 레지스트리를 사용한 K8s 배포 (대안) +```bash +# 로컬 레지스트리 시작 (Docker Compose) +docker-compose -f docker-compose-hybrid.yml up -d registry + +# 이미지 빌드 및 푸시 +./deploy-local.sh + +# K8s 배포 +cd k8s/pipeline ./deploy.sh # 배포 상태 확인