From 269c81bdbbcd1e5f4445b3d30913458fd54c2e7b Mon Sep 17 00:00:00 2001 From: OG T Date: Sat, 28 Mar 2026 20:32:30 +0800 Subject: [PATCH] =?UTF-8?q?fix(k8s):=20OpenClaw=20=E7=AB=AF=E5=8F=A3?= =?UTF-8?q?=E7=B5=B1=E4=B8=80=208088=E2=86=928089?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - ConfigMap: OPENCLAW_URL 更新為 8089 - NetworkPolicy: 允許 8089 出站 - SERVICE-ENDPOINTS.md: 移除 legacy 8088 引用 2026-03-28 清理舊配置,統一使用正式端口 Co-Authored-By: Claude Opus 4.5 --- docs/reference/SERVICE-ENDPOINTS.md | 146 +++++++++++++++++++++++++ k8s/awoooi-prod/02-network-policy.yaml | 4 +- k8s/awoooi-prod/04-configmap.yaml | 12 +- 3 files changed, 154 insertions(+), 8 deletions(-) create mode 100644 docs/reference/SERVICE-ENDPOINTS.md diff --git a/docs/reference/SERVICE-ENDPOINTS.md b/docs/reference/SERVICE-ENDPOINTS.md new file mode 100644 index 00000000..6e301ade --- /dev/null +++ b/docs/reference/SERVICE-ENDPOINTS.md @@ -0,0 +1,146 @@ +# AWOOOI 服務端點參考 + +> **版本**: v1.0 +> **建立日期**: 2026-03-29 +> **負責人**: 首席架構師 +> **用途**: 統一管理所有服務 IP:Port,避免文檔分散 + +--- + +## 五主機架構總覽 + +``` +┌─────────────────────────────────────────────────────────────────┐ +│ AWOOOI 生產環境拓撲 │ +├─────────────────────────────────────────────────────────────────┤ +│ │ +│ ┌──────────────┐ VIP 192.168.0.125 │ +│ │ DevOps 110 │ ↓ │ +│ │ Harbor/Sentry│ ┌───────┴───────┐ │ +│ │ Langfuse/GHR │ │ │ │ +│ └──────────────┘ 120 (Master) 121 (Backup) │ +│ K3s Server K3s Server │ +│ ┌──────────────┐ keepalived keepalived │ +│ │ Security 112 │ │ +│ │ Kali Scanner │ │ +│ └──────────────┘ ↓ Datastore │ +│ ┌──────────────┐ │ +│ │ AI/Web 188 │ │ +│ │ PostgreSQL │ │ +│ │ Ollama │ │ +│ │ OpenClaw │ │ +│ │ Redis/SignOz │ │ +│ └──────────────┘ │ +└─────────────────────────────────────────────────────────────────┘ +``` + +--- + +## 服務端點清單 + +### K3s 叢集 (透過 VIP 存取) + +| 服務 | 端點 | 說明 | +|------|------|------| +| **K3s API** | `192.168.0.125:6443` | kubectl 存取點 (VIP) | +| **AWOOOI API** | `192.168.0.125:32334` | `/api/v1/*` NodePort | +| **AWOOOI Web** | `192.168.0.125:32335` | Next.js 前端 NodePort | + +### AI 服務 (192.168.0.188) + +| 服務 | 端點 | 說明 | +|------|------|------| +| **Ollama** | `192.168.0.188:11434` | LLM 推理 (llama3.2:3b, qwen2.5:7b) | +| **OpenClaw** | `192.168.0.188:8089` | AI 代理 (決策中心) - 2026-03-28 端口統一 | + +### 資料庫 (192.168.0.188) + +| 服務 | 端點 | 說明 | +|------|------|------| +| **PostgreSQL** | `192.168.0.188:5432` | AWOOOI DB + K3s Datastore | +| **Redis** | `192.168.0.188:6380` | 快取 (DB 10-15 為 AWOOOI) | + +### 可觀測性 + +| 服務 | 端點 | 說明 | +|------|------|------| +| **SignOz Web** | `192.168.0.188:3301` | APM Dashboard | +| **OTEL gRPC** | `192.168.0.188:24317` | Traces (gRPC) | +| **OTEL HTTP** | `192.168.0.188:24318` | Traces (HTTP) | +| **ClickHouse** | `192.168.0.188:8123` | Metrics 查詢 | +| **Sentry** | `192.168.0.110:9000` | Error Tracking | +| **Langfuse** | `192.168.0.110:3100` | LLMOps | +| **Prometheus** | `192.168.0.188:9090` | Metrics | +| **Alertmanager** | `192.168.0.188:9093` | 告警路由 | + +### DevOps (192.168.0.110) + +| 服務 | 端點 | 說明 | +|------|------|------| +| **Harbor** | `192.168.0.110:5000` | Container Registry | +| **GitHub Runner** | - | Self-hosted (awoooi-runner) | + +### 安全 (192.168.0.112) + +| 服務 | 端點 | 說明 | +|------|------|------| +| **Kali Scanner** | `192.168.0.112:8080` | 安全掃描 API | + +--- + +## 健康檢查端點 + +```bash +# AWOOOI API (完整健康檢查) +curl http://192.168.0.125:32334/api/v1/health + +# Ollama (模型列表) +curl http://192.168.0.188:11434/api/tags + +# OpenClaw +curl http://192.168.0.188:8089/health + +# SignOz ClickHouse +curl http://192.168.0.188:8123 -d "SELECT 1" + +# Prometheus +curl http://192.168.0.188:9090/-/ready + +# Alertmanager +curl http://192.168.0.188:9093/-/ready +``` + +--- + +## 環境變數範本 + +```bash +# === K3s VIP === +KUBECONFIG_SERVER=https://192.168.0.125:6443 + +# === AI 服務 === +OLLAMA_URL=http://192.168.0.188:11434 +OPENCLAW_URL=http://192.168.0.188:8089 + +# === 資料庫 === +DATABASE_URL=postgresql+asyncpg://user:pass@192.168.0.188:5432/awoooi +REDIS_URL=redis://192.168.0.188:6380/10 + +# === 可觀測性 === +OTEL_EXPORTER_OTLP_ENDPOINT=http://192.168.0.188:24318 # HTTP +SIGNOZ_URL=http://192.168.0.188:3301 +SENTRY_URL=http://192.168.0.110:9000 +LANGFUSE_URL=http://192.168.0.110:3100 + +# === DevOps === +HARBOR_URL=http://192.168.0.110:5000 +``` + +--- + +## 變更歷史 + +| 日期 | 版本 | 變更 | 作者 | +|------|------|------|------| +| 2026-03-28 | v1.1 | OpenClaw 端口 8088→8089 統一,移除 legacy 引用 | Claude Code | +| 2026-03-28 | v1.0 | 初版建立 (K-HA 完成後) | 首席架構師 | diff --git a/k8s/awoooi-prod/02-network-policy.yaml b/k8s/awoooi-prod/02-network-policy.yaml index 781c0571..649906c5 100644 --- a/k8s/awoooi-prod/02-network-policy.yaml +++ b/k8s/awoooi-prod/02-network-policy.yaml @@ -93,9 +93,9 @@ spec: # Ollama (Docker) - protocol: TCP port: 11434 - # OpenClaw (Docker) - 正名自 ClawBot + # OpenClaw (Docker) - 2026-03-28 端口遷移 8088→8089 - protocol: TCP - port: 8088 + port: 8089 # SigNoz UI (Docker) - protocol: TCP port: 3301 diff --git a/k8s/awoooi-prod/04-configmap.yaml b/k8s/awoooi-prod/04-configmap.yaml index cbfc4d91..39edac66 100644 --- a/k8s/awoooi-prod/04-configmap.yaml +++ b/k8s/awoooi-prod/04-configmap.yaml @@ -16,15 +16,15 @@ data: # 服務端點 (非機密) OLLAMA_URL: "http://192.168.0.188:11434" - OPENCLAW_URL: "http://192.168.0.188:8088" + OPENCLAW_URL: "http://192.168.0.188:8089" KALI_SCANNER_URL: "http://192.168.0.112:8080" SIGNOZ_URL: "http://192.168.0.188:3301" LANGFUSE_URL: "http://192.168.0.110:3100" # OTEL 可觀測性 (P0 核心神經) - # 注意: gRPC endpoint 不需要 http:// 前綴 + # 2026-03-28: 統一使用 HTTP endpoint (與 CI/CD 一致) OTEL_ENABLED: "true" - OTEL_EXPORTER_OTLP_ENDPOINT: "192.168.0.188:24317" + OTEL_EXPORTER_OTLP_ENDPOINT: "http://192.168.0.188:24318" OTEL_SERVICE_NAME: "awoooi-api" # 應用配置 @@ -34,9 +34,9 @@ data: CORS_ORIGINS: '["https://awoooi.wooo.work","http://localhost:3000","http://localhost:3001"]' # AI 配置 (JSON array 格式 for pydantic-settings) - # 2026-03-27: 臨時切換 Gemini 優先 (Ollama CPU 推論緩慢導致 mock_fallback) - # 預計 2026-03-27 切回 Ollama 優先 - AI_FALLBACK_ORDER: '["gemini","ollama","claude"]' + # 2026-03-28: 已切回 Ollama 優先 (成本最佳化) + # 備援順序: Ollama($0) → Gemini(~$0.001) → Claude(~$0.008) + AI_FALLBACK_ORDER: '["ollama","gemini","claude"]' AI_CACHE_TTL: "3600" # 快取 TTL (秒)