vault-mcp-server 실 아키텍처 정정 (중복 아님, jp1 단일 인스턴스)
- infra/vault.md MCP 서버 섹션 전체 재작성: K3s Deployment 아니라 Pod 없는 리버스 프록시 파사드, 세 접근 경로 모두 jp1 Incus vault 컨테이너(10.253.101.58)로 수렴 - 과거 오류 정정 callout 추가: vault-active.vault.svc.cluster.local 경로 실존 안 함, hcv/mcp URL은 Vault UI로 307 (올바른 MCP 경로는 vault-mcp.inouter.com/mcp) - history/2026-04-15-vault-mcp-duplicate-investigation.md 인시던트 기록 근거: Heimdall 조사 (Outline 5b6ddffa) + kappa 로컬 확인 (jp1 systemd active + 활성 트래픽)
This commit is contained in:
@@ -76,7 +76,35 @@ CA 등록 완료 서버:
|
||||
|
||||
## MCP 서버
|
||||
|
||||
vault-mcp-server v0.2.0 (hashicorp/vault-mcp-server:0.2.0 Docker 이미지). K3s vault namespace에 Deployment로 배포. streamable-http 모드, 엔드포인트: https://hcv.inouter.com/mcp. 내부 통신: vault-active.vault.svc.cluster.local:8200. token은 Secret vault-mcp-token에 저장. Claude Code MCP 설정: type http, url https://hcv.inouter.com/mcp. K3s Ingress vault-mcp가 /mcp 경로를 vault-mcp-server Service(8080)로 라우팅. 로컬 바이너리도 /usr/local/bin/vault-mcp-server에 설치됨.
|
||||
### 실 배포 (2026-04-15 정정)
|
||||
|
||||
vault-mcp-server v0.2.0 은 **jp1 Incus `vault` 컨테이너 (10.253.101.58) 단일 인스턴스**. systemd 유닛 `vault-mcp-server.service`로 streamable-http 모드 가동 (`--transport-host=0.0.0.0 --transport-port=8080 --mcp-endpoint=/mcp`). 같은 컨테이너에 HashiCorp Vault 본체(포트 8200)도 동일 프로세스 공간에 존재 → vault 백엔드는 `http://127.0.0.1:8200`.
|
||||
|
||||
> [!warning] 과거 문서 오류 정정 (2026-04-15)
|
||||
> 이전 기록에 "K3s vault namespace Deployment 배포", "vault-active.vault.svc.cluster.local:8200" 이라 적혀 있었으나 실제와 다름. K3s 안에는 vault 파드/Deployment 없음. 상세: `history/2026-04-15-vault-mcp-duplicate-investigation.md`
|
||||
|
||||
### 접근 경로 (3가지, 모두 같은 jp1 프로세스로 수렴)
|
||||
|
||||
```
|
||||
hcv.inouter.com → Traefik@K3s:443 → 10.253.101.58:8200 (Vault UI/API)
|
||||
vault-mcp.inouter.com → Traefik@K3s:443 → 10.253.101.58:8080 (MCP)
|
||||
http://10.253.101.58:8080/mcp (Tailscale 직결, kappa Claude 현행)
|
||||
```
|
||||
|
||||
K3s `tools` 네임스페이스의 `vault-mcp` 는 **Pod 없는 리버스 프록시 파사드**: Service(selector 비움) + 수동 EndpointSlice가 10.253.101.58 로 고정 + IngressRoute 2개(hcv, vault-mcp). ArgoCD 앱 `argocd/vault-mcp`, Helm chart `kaffa/helm-charts charts/app` + `values/vault-mcp.yaml` (deployment 없는 ingress-only 렌더링).
|
||||
|
||||
### 주의
|
||||
|
||||
- **`hcv.inouter.com/mcp` 는 MCP 엔드포인트 아님** — Vault가 /mcp 경로를 UI(/ui/)로 307 리다이렉트. 외부 MCP hostname 필요하면 `vault-mcp.inouter.com/mcp` 사용.
|
||||
- 외부 공개 경로는 BunnyCDN/Cloudflare 비경유 (Traefik wildcard cert 직접 TLS 종단). 내부 LAN/Tailscale 전용.
|
||||
- kappa Claude MCP는 현재 `http://10.253.101.58:8080/mcp` (Tailscale 암호화 의존). 장기적으로 `https://vault-mcp.inouter.com/mcp` 로 이전 검토 가능 (Traefik TLS + wildcard cert 혜택).
|
||||
|
||||
### 재배포 자료
|
||||
|
||||
- Helm chart: `gitea.inouter.com/kaffa/helm-charts.git charts/app`
|
||||
- values: `kaffa/helm-charts values/vault-mcp.yaml`
|
||||
- jp1 컨테이너 내부 바이너리: `/usr/local/bin/vault-mcp-server`
|
||||
- systemd: `/etc/systemd/system/vault-mcp-server.service`
|
||||
|
||||
## 관련 서비스
|
||||
|
||||
|
||||
Reference in New Issue
Block a user