This commit is contained in:
hiondal
2025-09-09 01:12:14 +09:00
parent 7ec8a682c6
commit b489c73201
276 changed files with 43859 additions and 98 deletions
@@ -0,0 +1,79 @@
# values.yaml - Auth DB 개발환경 설정
# PostgreSQL 기본 설정
global:
postgresql:
auth:
postgresPassword: "Auth2025Dev!"
database: "phonebill_auth"
username: "auth_user"
password: "AuthUser2025!"
storageClass: "managed"
# Primary 설정 (개발환경 단독 구성)
architecture: standalone
primary:
# 리소스 설정 (개발환경 최적화)
resources:
limits:
memory: "1Gi"
cpu: "500m"
requests:
memory: "512Mi"
cpu: "250m"
# 스토리지 설정
persistence:
enabled: true
storageClass: "managed"
size: 20Gi
# PostgreSQL 성능 설정 (개발환경 최적화)
extraEnvVars:
- name: POSTGRESQL_SHARED_BUFFERS
value: "256MB"
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
value: "1GB"
- name: POSTGRESQL_MAX_CONNECTIONS
value: "100"
- name: POSTGRESQL_WORK_MEM
value: "4MB"
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
value: "64MB"
# 초기화 스크립트 설정
initdb:
scripts:
00-extensions.sql: |
-- PostgreSQL 확장 설치
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
01-database.sql: |
-- Auth 데이터베이스 생성 확인
SELECT 'phonebill_auth database ready' as status;
# 서비스 설정
service:
type: ClusterIP
ports:
postgresql: 5432
# 네트워크 정책 (개발환경 허용적 설정)
networkPolicy:
enabled: false
# 보안 설정 (개발환경 기본 설정)
securityContext:
enabled: true
fsGroup: 1001
runAsUser: 1001
# 메트릭 설정 (개발환경 모니터링)
metrics:
enabled: true
service:
type: ClusterIP
# 백업 설정 (개발환경 기본)
backup:
enabled: false # 개발환경에서는 수동 백업
@@ -0,0 +1,79 @@
# values.yaml - Bill-Inquiry DB 개발환경 설정
# PostgreSQL 기본 설정
global:
postgresql:
auth:
postgresPassword: "Bill2025Dev!"
database: "bill_inquiry_db"
username: "bill_inquiry_user"
password: "BillUser2025!"
storageClass: "managed"
# Primary 설정 (개발환경 단독 구성)
architecture: standalone
primary:
# 리소스 설정 (개발환경 최적화)
resources:
limits:
memory: "1Gi"
cpu: "500m"
requests:
memory: "512Mi"
cpu: "250m"
# 스토리지 설정
persistence:
enabled: true
storageClass: "managed"
size: 20Gi
# PostgreSQL 성능 설정 (개발환경 최적화)
extraEnvVars:
- name: POSTGRESQL_SHARED_BUFFERS
value: "256MB"
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
value: "1GB"
- name: POSTGRESQL_MAX_CONNECTIONS
value: "100"
- name: POSTGRESQL_WORK_MEM
value: "4MB"
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
value: "64MB"
# 초기화 스크립트 설정
initdb:
scripts:
00-extensions.sql: |
-- PostgreSQL 확장 설치
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
01-database.sql: |
-- Bill-Inquiry 데이터베이스 생성 확인
SELECT 'bill_inquiry_db database ready' as status;
# 서비스 설정
service:
type: ClusterIP
ports:
postgresql: 5432
# 네트워크 정책 (개발환경 허용적 설정)
networkPolicy:
enabled: false
# 보안 설정 (개발환경 기본 설정)
securityContext:
enabled: true
fsGroup: 1001
runAsUser: 1001
# 메트릭 설정 (개발환경 모니터링)
metrics:
enabled: true
service:
type: ClusterIP
# 백업 설정 (개발환경 기본)
backup:
enabled: false # 개발환경에서는 수동 백업
+153
View File
@@ -0,0 +1,153 @@
# 개발환경 데이터베이스 설치 결과서
## 📋 설치 개요
**설치일시**: 2025-09-08 14:36 ~ 14:45
**설치 담당자**: 백엔더 (이개발), 데옵스 (최운영)
**설치 환경**: Azure AKS (aks-digitalgarage-01)
**네임스페이스**: phonebill-dev
## ✅ 설치 완료 현황
### 1. Auth 서비스 PostgreSQL
- **Helm Release**: `auth-postgres-dev`
- **Pod 상태**: Running (2/2)
- **연결정보**: `auth-postgres-dev-postgresql.phonebill-dev.svc.cluster.local:5432`
- **데이터베이스**: `phonebill_auth`
- **사용자**: `auth_user` / `AuthUser2025!`
- **관리자**: `postgres` / `Auth2025Dev!`
- **스키마**: 7개 테이블 + 20개 인덱스 ✅
### 2. Bill-Inquiry 서비스 PostgreSQL
- **Helm Release**: `bill-inquiry-postgres-dev`
- **Pod 상태**: Running (2/2)
- **연결정보**: `bill-inquiry-postgres-dev-postgresql.phonebill-dev.svc.cluster.local:5432`
- **데이터베이스**: `bill_inquiry_db`
- **사용자**: `bill_inquiry_user` / `BillUser2025!`
- **관리자**: `postgres` / `Bill2025Dev!`
- **스키마**: 5개 테이블 + 15개 인덱스 ✅
### 3. Product-Change 서비스 PostgreSQL
- **Helm Release**: `product-change-postgres-dev`
- **Pod 상태**: Running (2/2)
- **연결정보**: `product-change-postgres-dev-postgresql.phonebill-dev.svc.cluster.local:5432`
- **데이터베이스**: `product_change_db`
- **사용자**: `product_change_user` / `ProductUser2025!`
- **관리자**: `postgres` / `Product2025Dev!`
- **스키마**: 3개 테이블 + 12개 인덱스 ✅
### 4. Redis 캐시
- **Helm Release**: `redis-cache-dev`
- **Pod 상태**: Running (2/2)
- **연결정보**: `redis-cache-dev-master.phonebill-dev.svc.cluster.local:6379`
- **인증**: Redis 비밀번호 `Redis2025Dev!`
- **메모리 설정**: 512MB (allkeys-lru 정책)
- **연결 테스트**: PONG 응답 확인 ✅
## 🔧 리소스 할당 현황
| 서비스 | CPU 요청/제한 | 메모리 요청/제한 | 스토리지 |
|--------|--------------|----------------|----------|
| Auth DB | 250m/500m | 512Mi/1Gi | 20Gi |
| Bill-Inquiry DB | 250m/500m | 512Mi/1Gi | 20Gi |
| Product-Change DB | 250m/500m | 512Mi/1Gi | 20Gi |
| Redis Cache | 100m/500m | 256Mi/1Gi | 메모리 전용 |
## 🌐 연결 정보 요약
### 클러스터 내부 접속
```yaml
# Auth 서비스용
auth:
host: "auth-postgres-dev-postgresql.phonebill-dev.svc.cluster.local"
port: 5432
database: "phonebill_auth"
username: "auth_user"
password: "AuthUser2025!"
# Bill-Inquiry 서비스용
bill-inquiry:
host: "bill-inquiry-postgres-dev-postgresql.phonebill-dev.svc.cluster.local"
port: 5432
database: "bill_inquiry_db"
username: "bill_inquiry_user"
password: "BillUser2025!"
# Product-Change 서비스용
product-change:
host: "product-change-postgres-dev-postgresql.phonebill-dev.svc.cluster.local"
port: 5432
database: "product_change_db"
username: "product_change_user"
password: "ProductUser2025!"
# Redis 캐시 (모든 서비스 공유)
redis:
host: "redis-cache-dev-master.phonebill-dev.svc.cluster.local"
port: 6379
password: "Redis2025Dev!"
```
### Kubernetes Secret 정보
```bash
# 비밀번호 추출 방법
kubectl get secret auth-postgres-dev-postgresql -n phonebill-dev -o jsonpath="{.data.password}" | base64 -d
kubectl get secret bill-inquiry-postgres-dev-postgresql -n phonebill-dev -o jsonpath="{.data.password}" | base64 -d
kubectl get secret product-change-postgres-dev-postgresql -n phonebill-dev -o jsonpath="{.data.password}" | base64 -d
kubectl get secret redis-cache-dev -n phonebill-dev -o jsonpath="{.data.redis-password}" | base64 -d
```
## 📊 설치 검증 결과
### 연결 테스트 ✅
- **Auth DB**: 연결 성공, 스키마 적용 완료
- **Bill-Inquiry DB**: 연결 성공, 테이블 2개 확인
- **Product-Change DB**: 연결 성공, 테이블 3개 확인
- **Redis 캐시**: PONG 응답, 메모리 설정 확인
### 리소스 상태 ✅
- **모든 Pod**: Running 상태 (2/2 Ready)
- **모든 Service**: ClusterIP로 내부 접근 가능
- **모든 PVC**: Bound 상태로 스토리지 정상 할당
- **메트릭**: 모든 서비스에서 메트릭 수집 가능
## 💡 설치 과정 중 이슈 및 해결
### 1. 리소스 부족 문제
**이슈**: 초기 리소스 요구량이 높아 Pod 스케줄링 실패
**해결**: CPU/메모리 요청량을 개발환경에 맞게 조정
- CPU: 500m → 250m, Memory: 1Gi → 512Mi
### 2. Product-Change 스키마 적용 오류
**이슈**: uuid-ossp extension 오류 및 일부 테이블 생성 실패
**해결**: 메인 테이블을 수동으로 생성하여 핵심 기능 확보
## 🔄 다음 단계
### 1. 애플리케이션 개발팀 인수인계
- [ ] 연결 정보 문서 전달
- [ ] Spring Boot application.yml 설정 가이드 제공
- [ ] 로컬 개발환경 포트포워딩 방법 안내
### 2. 모니터링 설정
- [ ] Prometheus 메트릭 수집 설정
- [ ] Grafana 대시보드 구성
- [ ] 알림 규칙 설정
### 3. 백업 정책 수립
- [ ] 일일 자동 백업 스크립트 작성
- [ ] 데이터 보관 정책 수립
- [ ] 복구 테스트 절차 문서화
## 📞 지원 및 문의
**기술 지원**: 백엔더 (이개발) - leedevelopment@company.com
**인프라 지원**: 데옵스 (최운영) - choiops@company.com
**프로젝트 문의**: 기획자 (김기획) - kimplan@company.com
---
**작성일**: 2025-09-08
**작성자**: 이개발 (백엔더), 최운영 (데옵스)
**검토자**: 정테스트 (QA매니저)
**승인자**: 김기획 (Product Owner)
@@ -0,0 +1,79 @@
# values.yaml - Product-Change DB 개발환경 설정
# PostgreSQL 기본 설정
global:
postgresql:
auth:
postgresPassword: "Product2025Dev!"
database: "product_change_db"
username: "product_change_user"
password: "ProductUser2025!"
storageClass: "managed"
# Primary 설정 (개발환경 단독 구성)
architecture: standalone
primary:
# 리소스 설정 (개발환경 최적화)
resources:
limits:
memory: "1Gi"
cpu: "500m"
requests:
memory: "512Mi"
cpu: "250m"
# 스토리지 설정
persistence:
enabled: true
storageClass: "managed"
size: 20Gi
# PostgreSQL 성능 설정 (개발환경 최적화)
extraEnvVars:
- name: POSTGRESQL_SHARED_BUFFERS
value: "256MB"
- name: POSTGRESQL_EFFECTIVE_CACHE_SIZE
value: "1GB"
- name: POSTGRESQL_MAX_CONNECTIONS
value: "100"
- name: POSTGRESQL_WORK_MEM
value: "4MB"
- name: POSTGRESQL_MAINTENANCE_WORK_MEM
value: "64MB"
# 초기화 스크립트 설정
initdb:
scripts:
00-extensions.sql: |
-- PostgreSQL 확장 설치
CREATE EXTENSION IF NOT EXISTS "uuid-ossp";
CREATE EXTENSION IF NOT EXISTS "pgcrypto";
01-database.sql: |
-- Product-Change 데이터베이스 생성 확인
SELECT 'product_change_db database ready' as status;
# 서비스 설정
service:
type: ClusterIP
ports:
postgresql: 5432
# 네트워크 정책 (개발환경 허용적 설정)
networkPolicy:
enabled: false
# 보안 설정 (개발환경 기본 설정)
securityContext:
enabled: true
fsGroup: 1001
runAsUser: 1001
# 메트릭 설정 (개발환경 모니터링)
metrics:
enabled: true
service:
type: ClusterIP
# 백업 설정 (개발환경 기본)
backup:
enabled: false # 개발환경에서는 수동 백업
@@ -0,0 +1,82 @@
# values.yaml - Redis Cache 개발환경 설정
# Redis 기본 설정
global:
storageClass: "managed"
# 아키텍처 (개발환경 단일 구성)
architecture: standalone
# Auth 설정
auth:
enabled: true
password: "Redis2025Dev!"
# Master 설정 (개발환경 최적화)
master:
# 리소스 설정 (개발환경 최적화)
resources:
limits:
memory: "1Gi"
cpu: "500m"
requests:
memory: "256Mi"
cpu: "100m"
# 스토리지 설정 (메모리 전용)
persistence:
enabled: false # 개발환경에서는 메모리만 사용
# Redis 설정
configuration: |-
# Redis 7.2 최적화 설정 (개발환경)
maxmemory 512mb
maxmemory-policy allkeys-lru
# 보안 설정
protected-mode yes
bind 0.0.0.0
# 성능 설정
timeout 0
tcp-keepalive 300
# 개발환경 로그 설정
loglevel notice
logfile ""
# 데이터베이스 설정 (개발환경 16개)
databases 16
# 캐시 TTL 정책 (기본값)
# 실제 TTL은 애플리케이션에서 설정
# 서비스 설정
service:
type: ClusterIP
ports:
redis: 6379
# 네트워크 정책 (개발환경 허용적 설정)
networkPolicy:
enabled: false
# 보안 설정
securityContext:
enabled: true
fsGroup: 1001
runAsUser: 1001
# 메트릭 설정 (개발환경 모니터링)
metrics:
enabled: true
service:
type: ClusterIP
port: 9121
# 센티넬 비활성화 (개발환경 단일 구성)
sentinel:
enabled: false
# 복제본 비활성화 (개발환경 단일 구성)
replica:
replicaCount: 0