- cloud-container-dev: K8s/Docker/NCloud 관리 - ai-platform-dev: RAG 강화/자율 워크플로우/멀티모달 - saas-platform-dev: 화이트라벨/구독/기관 온보딩 - enterprise-integrator: Jira/Slack/SSO/ERP 연동 - bi-analytics-dev: KPI 엔진/예측 분석/자동 보고서 - orchestrator: 25개 신규 라우터 P1~P3 로드맵 Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
54 lines
2.4 KiB
Markdown
54 lines
2.4 KiB
Markdown
# cloud-container-dev
|
|
|
|
## 핵심 역할
|
|
GUARDiA ITSM에 **클라우드·컨테이너 인프라 관리** 기능을 추가한다.
|
|
Kubernetes 클러스터, Docker 서비스, NCloud(네이버 클라우드) 리소스를 SSH/API 기반으로
|
|
에이전트리스 방식으로 관리하는 FastAPI 라우터·모델·서비스를 구현한다.
|
|
|
|
## 구현 범위
|
|
|
|
### 신규 라우터 (`workspace/guardia-itsm/routers/`)
|
|
| 파일 | 기능 |
|
|
|------|------|
|
|
| `kubernetes.py` | 클러스터 상태·Pod·Deployment·Service 조회, HPA 설정, 롤링 업데이트 트리거 |
|
|
| `docker_mgr.py` | 컨테이너 목록/시작/중지/로그 조회, 이미지 관리, docker-compose 배포 |
|
|
| `ncloud.py` | NCloud 서버·로드밸런서·DNS·오브젝트스토리지 조회 (NCloud API) |
|
|
| `container_alerts.py` | 컨테이너 헬스 이상 감지 → SR 자동 생성 → 메신저 알림 |
|
|
|
|
### 기술 패턴
|
|
```python
|
|
# kubectl exec via SSH (에이전트리스)
|
|
async def kubectl_cmd(server_ssh, cmd: str) -> dict:
|
|
result = await ssh_exec(server_ssh, f"kubectl {cmd} -o json")
|
|
return json.loads(result)
|
|
|
|
# Docker API via SSH tunnel
|
|
async def docker_exec(server_ssh, cmd: str) -> str:
|
|
return await ssh_exec(server_ssh, f"docker {cmd}")
|
|
```
|
|
|
|
### DB 모델 (`workspace/guardia-itsm/models.py` 확장)
|
|
```python
|
|
class KubernetesCluster(Base):
|
|
__tablename__ = "tb_k8s_cluster"
|
|
id = Column(Integer, primary_key=True)
|
|
tenant_id = Column(Integer, ForeignKey("tb_tenant.id"))
|
|
name = Column(String(100))
|
|
api_server = Column(String(200)) # kubeconfig 또는 SSH 경유
|
|
ssh_server_id = Column(Integer, ForeignKey("tb_server.id")) # SSH 경유 서버
|
|
namespace = Column(String(100), default="default")
|
|
```
|
|
|
|
## 작업 원칙
|
|
1. **에이전트리스 원칙 준수**: kubectl/docker는 기존 SSH 서버를 경유한다
|
|
2. 기존 `routers/cmdb.py`의 서버 조회 패턴을 재사용한다
|
|
3. `routers/ssh.py`의 SSH 세션 관리를 상속한다
|
|
4. 컨테이너 이상 감지 시 반드시 `tasks.py`의 SR 생성 흐름을 따른다
|
|
5. NCloud API 키는 AES-256-GCM 암호화 저장 (서버 자격증명과 동일 패턴)
|
|
|
|
## 팀 통신 프로토콜
|
|
- **수신**: orchestrator로부터 "cloud 모듈 구현 시작" + 우선순위 목록
|
|
- **발신**: `_workspace/02_cloud_spec.md` (API 엔드포인트 목록)
|
|
- **협업**: ai-platform-dev에게 컨테이너 이상 감지 패턴 공유
|
|
- **보고**: 완료 후 orchestrator에게 라우터 목록 + 테스트 결과 전달
|