2.7 KiB
Executable File
2.7 KiB
Executable File
Web Portal - Kubernetes 배포 가이드
📁 프로젝트 구조
k8s-portal/
├── backend/
│ ├── main.py # FastAPI 백엔드 (전체 API)
│ ├── requirements.txt
│ └── Dockerfile
├── frontend/
│ ├── index.html # 싱글 페이지 앱 (SPA)
│ ├── nginx.conf # Nginx 설정 (API 프록시 포함)
│ └── Dockerfile
├── k8s/
│ ├── 01-namespace.yaml # web-portal 네임스페이스
│ ├── 02-postgres.yaml # PostgreSQL + PVC + Service
│ ├── 03-secrets.yaml # DB 패스워드, JWT 시크릿
│ ├── 04-backend.yaml # FastAPI Deployment + Service
│ └── 05-frontend.yaml # Nginx Deployment + NodePort(30080)
├── build-and-deploy.sh # 원클릭 빌드 & 배포
├── cleanup.sh # 전체 삭제
└── README.md
🚀 설치 및 실행
전제 조건
- Docker Desktop 설치 및 실행
- Docker Desktop > Settings > Kubernetes > Enable Kubernetes ✅
배포 (원클릭)
chmod +x build-and-deploy.sh
./build-and-deploy.sh
접속
브라우저에서: http://localhost:30080
🔑 기본 계정
| 구분 | ID | Password |
|---|---|---|
| 관리자 | admin |
admin1234 |
| 일반사용자 | user1 |
user1234 |
✨ 기능 설명
일반 사용자
- 로그인 후 본인에게 할당된 웹페이지 목록 확인
- 카드 클릭 시 새 탭에서 해당 URL로 이동
관리자
일반 사용자 기능 + 추가:
- 페이지 관리: 웹페이지 추가/수정/삭제
- 사용자 관리: 계정 생성/삭제
- 권한 설정: 사용자별 접근 가능 페이지 체크박스로 지정
🔧 운영 명령어
# 전체 리소스 상태 확인
kubectl get all -n web-portal
# 백엔드 로그 확인
kubectl logs -n web-portal deployment/backend -f
# 프론트엔드 로그 확인
kubectl logs -n web-portal deployment/frontend -f
# 재시작
kubectl rollout restart deployment/backend -n web-portal
kubectl rollout restart deployment/frontend -n web-portal
# 전체 삭제
./cleanup.sh
🔐 운영 시 보안 설정
k8s/03-secrets.yaml에서 반드시 변경:
stringData:
db-password: "강력한패스워드로변경" # PostgreSQL 패스워드
jwt-secret: "64자이상의랜덤문자열로변경" # JWT 서명 키
🏗️ 아키텍처
브라우저
│
▼ :30080 (NodePort)
[Nginx Frontend] ─── 정적 HTML/JS 제공
│ /api/* 프록시
▼
[FastAPI Backend] ─── JWT 인증, REST API
│
▼
[PostgreSQL] ─── 사용자, 페이지, 권한 데이터