32 KiB
AWOOOI 5/8 雙審計整合報告(INTEGRATED MASTER)
產出:2026-05-08 整合來源:V3 使用率盤點 + K3s 深度盤點兩份完整審計 目的:去重、互補、調解衝突,產出單一可執行的統帥決策清單 方法:兩份審計逐節對照,依「交集 / 差集 / 衝突」三類重組 總統計:86 項統一行動清單(V3 37 + K3s 63 去重合併後 86 項,含 5 大致命 + 24 P0 + 22 P1 + 19 P2 + 11 P3 + 5 P4)
執行摘要
老闆,5/8 兩份審計合計查出 23 條交集鐵證(互相印證、信心度極高)+ 42 條 V3 獨家 + 30 條 K3s 獨家 + 3 處衝突調解。
| 重點 | 數字 |
|---|---|
| 5 大致命(必須今日內處理) | 5(K3s 全標、V3 部分提及但未量化) |
| P0 本週修(5/8-5/14) | 24(合併後) |
| P1 兩週內(5/15-5/28) | 22 |
| P2 一個月內(5/29-6/30) | 19 |
| P3 兩個月內(7-8 月) | 11 |
| P4 戰略(Q3-Q4) | 5 |
| 已完成(5/8 即時執行) | 2 大項(188 Ollama -15GB / 168 殘進程 Load -37%) |
最關鍵的雙審計交集鐵證(須立刻動手):
- awoooi_prod RLS 未落地 — V3 路 14 SSH 實測「pg_policy 0 rows」+ K3s §7 提供完整驗證 SQL → 連 EU AI Act 8/2 倒數 86 天
- AwoooP migration 無 rollback — V3 「50 中 35 個無 rollback」+ K3s 「Phase 1-7 七份 _ROLLBACK.sql 檔案不存在 = 詐欺」
- CronJob 鏈路雙重病灶 — V3「drift-cronjob 不在 kustomization」+ K3s「13/14/15/16 缺 NP label」(兩個獨立問題,不是同一件事,必須兩邊都修)
- NEMOTRON env 矛盾 — K3s §2 #5 揭露
06-deployment-api.yaml:64直接寫死true覆蓋 ConfigMap 的false - Sentry/Velero/Telegram secrets 全鏈洩漏 — V3 路 8(CI/CD)+ K3s §2 #1-#2(manifest)+ V3 路 11(CHANGE_ME)
Part A — 兩份審計覆蓋對照矩陣
| 主題 | V3 使用率盤點 | K3s 深度盤點 | 互補關係 |
|---|---|---|---|
| 後端 services 死代碼 | ✅ 路 1(11 孤兒 3,245 行) | — | V3 獨家 |
| 前端 page 真實度 | ✅ 路 2(38/70 純殼或半成品) | — | V3 獨家 |
| 資料庫 schema vs query | ✅ 路 3(11 殭屍表 + 35 migration 無 rollback) | ✅ §3 P0 #10-#11(AwoooP 7 份 rollback 缺) | 互相印證 |
| MCP / Skills / Subagent 使用率 | ✅ 路 4(12 plugin 0 呼叫) | ✅ §5(11 K3s MCP tool 詳列) | 互補(V3 看用量、K3s 看能力) |
| 告警鏈路 | ✅ 路 5(306 條 / 162 alertname / 120 散戶) | — | V3 獨家 |
| 死代碼 / TODO / archived | ✅ 路 6(~2,000 行立刻刪) | — | V3 獨家 |
| K8s workloads | ✅ 路 7(drift-cronjob kustomization) | ✅ §1.4 + §2 #3(NP label) + §3 P0 #6-#9 | 互補(不同病灶) |
| CI/CD | ✅ 路 8(GitHub 6 殭屍 + Sentry DSN) | ✅ §3 P0 #5(K8s secret 注入) | 互補 |
| 套件依賴 | ✅ 路 9(LiteLLM CVE) | ✅ §3 P0 #5 secret 治理 | 互補 |
| AI Provider 呼叫分布 | ✅ 路 10(GCP-B 375 次 / 9 處 hardcode) | ✅ §5(AI 對 K3s Level 3/5) | 互補 |
| 外部服務使用度 | ✅ 路 11(LiteLLM/Open-WebUI/n8n 閒置) | — | V3 獨家 |
| 文件 / Memory / ADR | ✅ 路 12(11 ADR 缺 rollback) | — | V3 獨家 |
| K3s 集群拓撲 | — | ✅ §1(kine + Flannel + Klipper-lb) | K3s 獨家 |
| K3s 五大致命 | — | ✅ §2(Velero + CronJob + securityContext + NEMOTRON) | K3s 獨家 |
| 2026 K3s 主流對標 | — | ✅ §4(八大主題 + 8 必備工具) | K3s 獨家 |
| AI 對 K3s 介入度量化 | 部分(路 4) | ✅ §5(Level 3/5、11 MCP tool) | K3s 補強量化 |
| 過去 30 天事故 pattern | — | ✅ §6(13 事故 + 10 模式 + 7 預測) | K3s 獨家 |
| RLS 驗證 SQL | ✅ 路 14 SSH 鐵證(pg_policy=0) | ✅ §7(完整驗證 SQL) | 互相印證、K3s 提供工具 |
| 工具推薦 | 部分(路 4) | ✅ §8(12 工具 + 整合工數) | K3s 完整 |
| 9 台主機 SSH 實機 | ✅ 路 13/14/15/16(含 168/112/GCP-A/B) | — | V3 獨家 |
| 5/8 即時執行 | ✅ Part E(188 Ollama + 168 殘進程) | — | V3 獨家 |
| 統帥決策清單 | ✅ Part F(37 條) | ✅ §9(63 項) | 本檔合併為 86 項 |
Part B — 雙審計交集(23 條互相印證的鐵證)
這些是兩份獨立完成的審計都查到的問題,信心度最高,最該優先動手。
B1. 資料層 / Migration
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 1 | AwoooP migration 缺 rollback | 路 3「50 個中 35 無 rollback」 | §3 P0 #10「Phase 1-7 七份_ROLLBACK.sql 不存在」 |
| 2 | awoooi_prod RLS 未落地 | 路 14 SSH「pg_policy 0 rows」 | §3 P0 #11 + §7 完整驗證 SQL |
| 3 | 高破壞 migration 無 rollback | 路 3 列 5 條(pgvector / embedding 1024 / array→jsonb / mcp_gateway / DELETE) | §3 P0 #10「詐欺式註解」 |
B2. K8s 工作負載
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 4 | CronJob 鏈路病灶 | 路 7「drift-cronjob 不在 kustomization」 | §2 #3「13/14/15/16 缺 NP label」 |
| 5 | 188 SPOF 嚴重 | 路 14(PG/Sentry/Langfuse/監控棧全在) | §1.2「188 是 K3s + AWOOOI app 共用 PG」 |
| 6 | VPA × 3 全 updateMode=Off | 路 7「28 天只蒐集建議無實效」 | §1.4「全部 updateMode=Off」 |
B3. CI/CD / Secrets
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 7 | cd.yaml 18 commit 修不穩 | 路 8 列 5 大根因排行 | §3 P2 #43「拆 5 reusable workflow」 |
| 8 | Sentry MCP token = CHANGE_ME | 路 11 | §3 P0 #4「16 處 CHANGE_ME 殘留」 |
| 9 | secrets 治理失效 | 路 8(DSN 寫死)+ 路 11(CHANGE_ME) | §3 P0 #1-#5 全章節 |
B4. AI / 模型路由
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 10 | 自建 12 Agent + K8sProvider 比 K8sGPT 深 | 路 4(subagent 全有用 + ArgoCDProvider/SentryProvider 已 register) | §4.1 + §5「先前誤判 2/5,實為 3/5」 |
| 11 | AI 學習回灌 KM 不完整 | 路 10「9 處 fusion 權重 hardcode」 | §5「learning 維度 2/5」 |
| 12 | LLM 對非 K8s asset 生 K8s 動作 | — | §6.2「Inventory-Aware 缺失」 |
B5. 監控 / 觀測性
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 13 | 監控元件無監控 | 路 11(cAdvisor 5/5 過載)+ 路 14(188 監控棧 SPOF) | §6.2「Resource & Datastore 抖動」 |
| 14 | ClickHouse pool 三門檻無 lint | 路 14 + project_cpu_overload_postmortem_20260505 引用 | §3 P1 #32「ClickHouse pool×ratio precheck Job」 |
| 15 | kube-state-metrics namespace 不一致 | 路 13「121 K3s CP BACKUP / kube-state-metrics ns」 | §1.4「NodePort:30888 對外無認證」 |
B6. 工具 / 補丁式治理
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 16 | LiteLLM CVE-2026-42208 未驗 | 路 9「CVSS 9.3 + 1.82.7/1.82.8 供應鏈」 | §3 P0 #4「secrets 治理失效」 |
| 17 | NetworkPolicy 增量加孔模式 | 路 7(隱含) | §6.2「NP 阻塞型」+ §6.3 預測 #2 |
| 18 | 過去 30d commit 48% 是 fix / 0 refactor | — | §6.2 核心洞察 |
B7. 文件 / 流程
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 19 | 11 個 ADR 缺 rollback | 路 12(ADR-028/030/035/040/052/058/068/070/073/087/105) | §3 P0 #10 隱含 |
| 20 | ADR-105 雙開(mcp-agent + revert-a2-ollama) | 路 12 | — |
| 21 | Sprint5 / Telegram / Secrets / K3s / Sentry / Phase 6.5 五系列 Memory 重複 | 路 12 | — |
B8. 主機資源紅燈
| # | 發現 | V3 出處 | K3s 出處 |
|---|---|---|---|
| 22 | 110 Harbor SPOF | 路 7「所有 prod image 唯一源」 | §6.3 預測 #1「Ollama proxy + Harbor + Gitea runner 三服務集中」 |
| 23 | 監控棧全在 188 → 188 掛則告警系統失聰 | 路 14 | §1.2「監控 + 資料 + AI + 備份目標全在同一主機」 |
Part C — 雙審計差集(獨家發現)
C1. V3 獨家發現(42 條,來自應用層 + 9 台主機 SSH)
C1a. 應用層獨家(27 條)
後端:11 個 0-import 孤兒(3,245 行)/ telegram_gateway 6,426 行 / decision_manager 3,531 行 / Ollama 四件套保留全部 / decision_fusion vs adapter 保留兩者
前端:70 page 中 38 純殼(54%)/ 7 半成品 / /apm:24 硬編碼 192.168.0.188:3301(違反前端內網 IP 禁令)/ 全站 0/70 i18n 違規
DB:AwoooP 16 model 中 9 schema-only / 11 張殭屍表(k8s_state_snapshots / log_clusters / dynamic_baselines 等)/ Redis namespace 12 種前綴並存 / N+1 兩處(learning_service:827 + incident_service:610)
MCP / Skills:12 個 plugin 0 呼叫(code-review / claude-md-management 等)/ 自製 critic vs plugin code-reviewer 兩套並存 / Subagent 12 人團隊全有用
告警:306 條 / 162 alertname / 120 散戶 / 80 重複定義(alerts.yml + alerts-unified.yml)/ 33 個 send 中 30 個無 dedup
死代碼:_archived 4 檔 ~2,000 行 / 6 個半成品 endpoint(notifications/agent/health 假運行 47 天)/ apps/web/ ~150 檔 D 未 commit / 全域 97 條 TODO/FIXME
CI/CD:GitHub 6 殭屍 workflow / Sentry DSN 寫死於 cd.yaml:277 + ci.yaml:207,412 / Telegram chat_id 寫死 7 處 / runner-healthcheck 每 10 分鐘吃 GitHub Billing
套件:8 個前端死依賴(~35MB node_modules)/ requirements.txt vs pyproject.toml 不同步 / starlette/next/axios 版本鎖定缺
AI Provider:GCP-B 24h 僅 375 次 + ollama ps 為空 / claude / nemotron / openclaw_nemo 三 provider 0 呼叫 / ai_router.py 1,407 行空轉
外部服務:LiteLLM/Open-WebUI/n8n 三個 188 容器無人理 / Discord 0 引用 / aiops nginx vhost 停擺 2 個月
文件:MEMORY.md:175 索引失效 / 10 個過期 feature flag / Sprint5 4 份散落
C1b. 主機 SSH 獨家(15 條)
| 主機 | 紅燈 |
|---|---|
| 110 | Swap 7.3G/7.8G(93%)即將 OOM / ollama-gcp-a/b nginx vhost 5/5 起 0 流量 / aiops vhost 停擺 62 天 / stock-platform-scheduler 每日 13:30 必失敗(程式碼 bug) |
| 120 | k3s-server 41% CPU、健康 |
| 121 | kube-state-metrics 在 kube-state-metrics ns 而非 monitoring(prom scrape config 可能靜默失敗) |
| 188 | momo-pro-system 1.9G/2G(95%)/ certbot failed / ClickHouse logs_v2 3,180 萬行無 TTL / Local Ollama 已從架構移除卻沒停(已修,見 Part D) |
| GCP-A | 11 個模型共 65GB / ADR-110 reference 寫 qwen3:8b 但實機是 qwen3:14b(已升級未同步文件) |
| GCP-B | 24h 僅 375 次 / ollama ps 為空 / Load 0.00 / 月燒錢近零產出 |
| 111 | load 13.51 重度過載(hook 攔截,僅 5/8 觀測值) |
| 168(統帥 Mac) | 9 SkyComputerUseClient + 6 bun Telegram 殘進程(已殺)/ ai.openclaw.gateway exit -9 持續 crash-restart / 磁碟 183G/199G(剩 16GB)/ OPENCLAW_GATEWAY_TOKEN 寫死於 plist 明碼 |
| 112(Kali) | scan_results 是 in-memory dict(重啟即清空)/ 無 webhook 推送 / kali-scanner log 100% 是 GET /health 沒有真實掃描結果 |
C2. K3s 獨家發現(30 條,來自 K8s manifest + 2026 對標 + 事故 pattern)
C2a. 五大致命(K3s §2,V3 完全沒抓到)
| # | 問題 | 位置 |
|---|---|---|
| 1 | Velero MinIO 密碼明文進 git history | k8s/velero/01-credentials.yaml:13-14 commit eea6e3ac |
| 2 | Velero SA 綁 cluster-admin | k8s/velero/02-velero-install.yaml:28-29 |
| 3 | 4 個 CronJob 缺 system:awoooi label(13/14/15/16,非 drift-cronjob) | k8s/awoooi-prod/13~16-cronjob*.yaml |
| 4 | 3 個 Deployment 缺 securityContext | 06-deployment-api.yaml:42 + worker:43 + web:35 |
| 5 | NEMOTRON env 違反 4/12 暫停決議 | 06-deployment-api.yaml:64 寫死 true 覆蓋 04-configmap.yaml:77 的 false |
C2b. K3s 集群拓撲
- Datastore 用外接 PG(kine adapter)— 業界推薦反方向(節點 ≤5 用 embedded etcd HA)
- 0 PVC / 0 StatefulSet / 0 storageClassName — 完全 stateless 但 188 SPOF 嚴重
- CNI = Flannel(無 eBPF 觀測能力)
- LB = Klipper-lb(無 BGP/FRR)
- VIP
192.168.0.125:6443單 VIP 無 BGP - Worker PDB maxUnavailable=1 + replicas=1 = 允許全停
C2c. Migration / RBAC 細節
- Migration Job 5 個全用 sed 解析 DATABASE_URL → PGPASSWORD 暴露 process list
awoooi-executor-devRBACupdate應降為patch- Velero
ScheduleCRD 找不到證據(可能根本沒在做定期 backup) - 188 PG
max_connections待提到 200 + 加 pgbouncer - K3s etcd 快照只在本機(無遠端推送)
- K3s audit log 未啟用(CIS 1.2.19)
C2d. 2026 主流對標八大主題(V3 沒做這層研究)
| 主題 | 我們缺什麼 |
|---|---|
| Runtime 安全 | Falco(生產裸跑) |
| Image 漏洞 | Trivy Operator |
| Policy 治理 | Kyverno |
| 資源右移 | Goldilocks + KRR(VPA Off 模式無建議) |
| Progressive Delivery | Argo Rollouts(無金絲雀) |
| SLO 自動化 | Sloth/Pyrra |
| AIOps for K8s | K8sGPT operator + Ollama(第二 AI 視角) |
| Supply Chain | cosign + Kyverno 驗簽 |
C2e. AI 對 K3s 介入度量化(V3 沒量化)
- 修正前誤判 2/5 → 實為 3/5
- 已實作 11 個 K3s MCP tool:6 read + 5 write(trust_score≥0.7 gate)
- 三層架構:MCP 工具層 / Python Client 層 / SSH 逃生層
- 異常盲區覆蓋率:35% 無法自動修復(ImagePullBackOff / Evicted / PVC 滿 / HPA scale 失敗 / Cert 過期 / RBAC drift / etcd 損毀)
- 建議補 5 種 ActionType:IMAGE_PULL_RETRY / POD_EVICT_RECOVERY / PVC_EXPAND_REQUEST / CERT_RENEW_TRIGGER / RBAC_DRIFT_REPAIR
C2f. 過去 30 天 13 事故 × 10 模式 × 7 預測(V3 沒做時序分析)
13 起事故時序:04-14 NP default-deny 9.4h → 05-08 IMAGE_TAG_PLACEHOLDER
10 大根因模式:NP 阻塞型 / Inventory-Aware 缺失 / Image Tag 中毒 / CronJob SA/DNS 寫死 / Probe 不當 / Resource & Datastore 抖動 / CD pipeline 不穩 / Secret 治理 / Kubeconfig context gap / 節點負載集中度
7 大未來爆點預測:
- 110 主機掛 → Ollama proxy/Harbor/Gitea runner 全斷
- 下一個 NP 漏孔事故(增量加孔模式)
- CronJob 自修報表斷鏈再現(無 last_success_timestamp)
- IMAGE_TAG_PLACEHOLDER 再次蓋掉(apply -f 與 GitOps 混用)
- EU AI Act 8/2 倒數 86 天 + RLS 未驗 → cross-tenant leak
- SignOz/Sentry CH pool 改動再次崩潰(三門檻無 lint)
- LLM 對新 alertname 生 kubectl scale unknown(inventory hard-gate 缺)
C2g. 12 工具推薦表
k9s / stern / KRR / K8sGPT / kube-bench / Falco / Trivy Operator / Kyverno / kubectx-kubens / Argo Rollouts / kubescape / act
Part D — 衝突調解(3 處)
D1. CronJob 病灶到底是 NP label 還是 kustomization?
衝突:
- V3 路 7:「drift-scanner 不在
kustomization.yaml,ArgoCD 永遠不 sync」 - K3s §2 #3:「drift-cronjob 已修,13/14/15/16 沒修(NP label 缺)」
調解(兩個獨立病灶,必須兩邊都修):
| CronJob | NP label 問題 | kustomization 問題 |
|---|---|---|
drift-scanner |
✅ 已修(5/5 事故修復清單) | 🔴 未加進 kustomization(V3 鐵證) |
backup-restore-test |
❓ 待驗 | 🔴 未加進 kustomization |
13-cronjob-k3s-report |
🔴 缺 system:awoooi label | ✅ 已加進 kustomization |
14-cronjob-weekly-report |
🔴 缺 system:awoooi label | ✅ 已加進 kustomization |
15-cronjob-km-vectorize |
🔴 缺 system:awoooi label | ✅ 已加進 kustomization |
16-cronjob-backup-restore-test |
🔴 缺 system:awoooi label | 🔴 與 #2 同檔,需查證 |
結論:
- V3 看到的是 ArgoCD sync 鏈(CronJob 物件根本沒被 ArgoCD 管到)
- K3s 看到的是 Network Policy 攔截鏈(CronJob 即使被 sync,DNS/Telegram/PG egress 仍被擋)
- 必須兩個都修才能徹底治本
D2. AI 對 K3s 介入能力到底是 Level 2 還是 3?
衝突:
- V3 路 4 隱含「ArgoCDProvider 與 SentryProvider 已 register 但 incident_service 未直接呼叫」
- K3s §5「先前誤判 2/5,實為 3/5(11 MCP tool 已實作)」
調解:以 K3s 量化為準(Level 3/5)
理由:
- K3s 引用
k8s_provider.py11 個 tool 實際存在(Plan/Execute 維度可達 3/5) - Learn 維度確實 2/5(V3 路 10 證實 9 處 fusion 權重 hardcode = AI 自學失效)
- ArgoCDProvider/SentryProvider 是 gateway registry 被動路由(V3 觀察),不影響 K3s MCP tool 的存在事實
D3. NEMOTRON 是「0 呼叫」還是「env 違反暫停決議」?
衝突:
- V3 路 10:「
nemotron(NVIDIA NIM) 0 呼叫,ENABLE_NEMOTRON_COLLABORATION=false+USE_OLLAMA_TOOL_CALLING=true雙 gate 切流」 - K3s §2 #5:「
06-deployment-api.yaml:64-65寫死true覆蓋 ConfigMap 的false」
調解(兩個都對,但 K3s 揭露的是更深層的雷):
- V3 從呼叫量看,確實 0 次(gate 仍在防禦)
- K3s 從配置層看,env > envFrom,ConfigMap 暫停指令被 Deployment env 覆蓋
- 下次 Deployment 重啟若有人改了另一個 gate(如刪 USE_OLLAMA_TOOL_CALLING),就會直接觸發 60s timeout 路徑
結論:必須刪 Deployment env 覆蓋(K3s §2 #5),保持 ConfigMap 是唯一 source of truth。
Part E — 統一 P0-P4 行動清單(去重後 86 項)
🔴🔴🔴 五大致命(必須今日內處理,K3s §2)
| # | 動作 | 來源 | 工數 |
|---|---|---|---|
| F1 | Velero MinIO 密碼撤離 + git filter-repo + 改 SealedSecret | K3s §2 #1 | 4h(需統帥授權輪換 secret) |
| F2 | Velero SA 從 cluster-admin 降為限定 ClusterRole | K3s §2 #2 | 1h |
| F3 | 4 個 CronJob(13/14/15/16)補 system: awoooi label |
K3s §2 #3 | 30min |
| F4 | 3 個 Deployment 補 securityContext + namespace enforce 升 restricted | K3s §2 #4 | 1h |
| F5 | 刪 06-deployment-api.yaml:64 NEMOTRON env 覆蓋 |
K3s §2 #5 | 5min |
🔴 P0 本週(5/8-5/14)共 24 項
今日 4 小時內(V3 Part F today)
| # | 動作 | 來源 | 狀態 |
|---|---|---|---|
| P0-01 | 110 Swap 93% 排查 docker stats 找最大記憶體戶 | V3 路 13 | ⏳ |
| P0-02 | awoooi_prod RLS 驗證(執行 K3s §7 第 1-6 SQL) | V3 路 14 + K3s §7 | ⏳ |
| P0-03 | 修 188 certbot(certbot renew --dry-run) |
V3 路 14 | ⏳ |
| P0-04 | apps/web/ ~150 檔 D 立刻 git rm 獨立 commit | V3 路 6 | ⏳ |
本週內(含上面 5 大致命)
| # | 動作 | 來源 |
|---|---|---|
| P0-05 | drift-scanner / backup-restore-test 加進 kustomization | V3 路 7 |
| P0-06 | Migration Job 補 system:awoooi label |
K3s §3 P0 #7 |
| P0-07 | AwoooP Phase 1-7 七份 migration 補 rollback SQL | V3 路 3 + K3s §3 P0 #10 |
| P0-08 | 5 個 Migration Job sed 解析改 readSecret pattern | K3s §3 P0 #12 |
| P0-09 | 188 PG max_connections 提至 200 + 部署 pgbouncer |
K3s §3 P0 #13 |
| P0-10 | Velero Schedule CRD 部署 + 異地備份至 GCP-A MinIO |
K3s §3 P0 #14 |
| P0-11 | 120/121 補 node-exporter scrape job | K3s §3 P0 #15 |
| P0-12 | SSH MCP 白名單加 120/121(K3s worker 自修能力) | K3s §3 P0 #16 |
| P0-13 | cAdvisor 從 110 拆出(解 SPOF) | K3s §3 P0 #17 |
| P0-14 | ArgoCD ↔ Gitea Webhook HMAC 斷線告警 | K3s §3 P0 #18 |
| P0-15 | 188 momo-pro-system 加 alert(>90% mem)+ limit 升 4GB | V3 路 14 |
| P0-16 | 168 排查 ai.openclaw.gateway SIGKILL 根因 | V3 路 16 |
| P0-17 | 修 4 前後端破鏈 + /monitoring + /tickets/dashboard 假資料 | V3 路 2 |
| P0-18 | 清 .github/workflows/ 6 個殭屍(git mv → .archived/) | V3 路 8 |
| P0-19 | Sentry DSN 從 cd.yaml:277 + ci.yaml:207,412 改 secrets + filter-repo | V3 路 8 |
| P0-20 | 清 .claude/settings.json 真實 token + 12 空轉 plugin | V3 路 4 |
| P0-21 | SSH 110 驗 LiteLLM 版本 ≥ 1.83.7-stable | V3 路 9 |
| P0-22 | 停 110 ollama-gcp-a/b + aiops nginx vhost(0 流量) | V3 路 13 |
| P0-23 | 清 188 三閒置容器(LiteLLM / Open-WebUI / n8n) | V3 路 14 |
| P0-24 | 修 110 stock-platform-scheduler bug 或停服務 | V3 路 13 |
🟠 P1 兩週內(5/15-5/28)共 22 項
安全強化(K3s §3 P1)
| # | 動作 | 來源 |
|---|---|---|
| P1-01 | 部署 Sealed Secrets 或 External Secrets Operator | K3s §3 P1 #19 |
| P1-02 | Harbor ImagePullSecret 部署 | K3s §3 P1 #20 |
| P1-03 | kured ns 從 privileged 降 baseline | K3s §3 P1 #21 |
| P1-04 | NP 0.0.0.0/0:443 egress → Cilium FQDN policy 或 squid SNI 白名單 |
K3s §3 P1 #22 |
| P1-05 | awoooi-executor-dev RBAC 從 update 降 patch |
K3s §3 P1 #23 |
| P1-06 | 部署 Falco(runtime threat detection,K3s §4 P0) | K3s §4 必備 #1 |
| P1-07 | 部署 Trivy Operator(持續 image vuln 掃描) | K3s §4 必備 #2 |
工作負載強化
| # | 動作 |
|---|---|
| P1-08 | Worker replicas:2 + maxUnavailable:1(解 PDB 全停風險) |
| P1-09 | Worker / dev API 補 startup probe |
| P1-10 | prometheus-multiproc emptyDir 加 sizeLimit:100Mi |
| P1-11 | NPD 改 capabilities.add:[SYS_ADMIN] 取代 privileged:true |
| P1-12 | OTEL collector 改 fsGroup:0 + readOnly hostPath |
資料層 / 工具
| # | 動作 | 來源 |
|---|---|---|
| P1-13 | ClickHouse pool×ratio precheck Job + Prometheus alert | K3s §3 P1 #32 |
| P1-14 | core/redis_keys.py 統一 namespace(33+ 處) |
K3s §3 P1 #33 |
| P1-15 | GCP-B 改 weighted round-robin 70/30(最大成本紅燈) | V3 路 10 |
| P1-16 | 188 監控棧 SPOF 拆解計畫 | V3 路 14 + K3s §3 P3 #58 |
| P1-17 | 112 Kali scan 結果持久化 + webhook 推送或廢棄聲明 | V3 路 16 |
| P1-18 | 後端清 11 個 0-import 孤兒(-3,245 行) | V3 路 1 |
| P1-19 | 前端清 8 個死依賴(-35MB node_modules) | V3 路 9 |
| P1-20 | 38 個純殼前端頁面決策(保留行銷主頁、刪冗餘 redirect) | V3 路 2 |
| P1-21 | 6 個半成品 endpoint 三選一(接真 service / 410 Gone / 刪) | V3 路 6 |
| P1-22 | 修 Sentry MCP token = CHANGE_ME | V3 路 11 |
🟡 P2 一個月內(5/29-6/30)共 19 項
2026 主流工具(K3s §4 必備清單剩餘)
| # | 動作 | 來源 |
|---|---|---|
| P2-01 | 部署 Kyverno policy 治理(require-labels / resource-limits / no-latest-tag) | K3s §4 必備 #4 |
| P2-02 | 部署 Goldilocks + KRR(VPA Off 模式建議) | K3s §4 必備 #5 |
| P2-03 | 部署 K8sGPT + Ollama(餵 OpenClaw 第二 AI 視角) | K3s §4 必備 #8 |
| P2-04 | 部署 kube-bench(CIS K3s benchmark) | K3s §3 P2 #39 |
| P2-05 | 部署 system-upgrade-controller(K3s 升級自動化) | K3s §3 P2 #40 |
| P2-06 | K3s etcd 快照推 S3/遠端 | K3s §3 P2 #41 |
程式碼修復
| # | 動作 | 來源 |
|---|---|---|
| P2-07 | learning_service.py:529, 592 兩個 N+1 改批次 | K3s §3 P2 #42 |
| P2-08 | cd.yaml 拆 5 reusable workflow(53860 bytes) | V3 路 8 + K3s §3 P2 #43 |
| P2-09 | Migration manifest.yaml + helm.sh/hook-weight 控制順序 |
K3s §3 P2 #44 |
| P2-10 | kine_request_duration_seconds{q=0.99} > 0.5 for 5m 告警 |
K3s §3 P2 #45 |
| P2-11 | ArgoCD selfHeal 範圍涵蓋 ConfigMap | K3s §3 P2 #46 |
| P2-12 | SSH MCP audit log 完整記錄 | K3s §3 P2 #47 |
| P2-13 | K3s audit log 啟用(CIS 1.2.19) | K3s §3 P2 #48 |
| P2-14 | 補 5 種 ActionType(K8s 異常自修補完整) | K3s §5.5 |
| P2-15 | 50 migration 補剩 28 個 rollback | V3 路 3 |
| P2-16 | 9 處 fusion 權重搬進 PG ai_decision_weights 表 |
V3 路 10 |
| P2-17 | USE_AI_ROUTER=true 灰度 10%→50%→100% |
V3 路 10 |
| P2-18 | 拆 telegram_gateway.py 6,426 行(落地 ADR-109) | V3 路 1 + 路 5 |
| P2-19 | 告警 162 alertname 中 120 散戶補 symptom_pattern | V3 路 5 |
🟢 P3 兩個月內(7-8 月)共 11 項
| # | 動作 | 來源 |
|---|---|---|
| P3-01 | Argo Rollouts(API/Web canary 10%→50%→100%) | K3s §4 必備 #6 |
| P3-02 | Sloth/Pyrra SLO(API p99 latency / error rate) | K3s §4 必備 #7 |
| P3-03 | kubescape RBAC visualization | K3s §3 P3 #52 |
| P3-04 | cosign image signing + Kyverno 驗簽 | K3s §3 P3 #53 |
| P3-05 | ArgoCD ApplicationSet 多環境管理 | K3s §3 P3 #54 |
| P3-06 | Argo CD Image Updater | K3s §3 P3 #55 |
| P3-07 | 6 個 GitHub Actions workflow 全封存(落地 P0-18 之延伸) | K3s §3 P3 #56 |
| P3-08 | 評估 K3s --datastore 從 kine+PG 退回 embedded etcd HA |
K3s §3 P3 #57 |
| P3-09 | 188 SPOF 拆解:MinIO/Sentry/Langfuse 評估搬出 | K3s §3 P3 #58 |
| P3-10 | AwoooP 9 schema-only model 標 deprecation 觀察 60 天 | V3 路 3 |
| P3-11 | ADR-105 雙開重編號 + 5 重複 Memory 系列合併 | V3 路 12 |
🔵 P4 戰略(Q3-Q4)共 5 項
| # | 動作 | 來源 |
|---|---|---|
| P4-01 | eBPF 觀測棧(Cilium 取代 Flannel + Hubble + Beyla / OTel OBI) | K3s §4 主題 4 |
| P4-02 | VictoriaMetrics 取代 Prometheus(記憶體 -60%) | K3s §4 主題 4 |
| P4-03 | EU AI Act 8/2 高風險合規(倒數 86 天) | K3s §6.3 預測 #5 |
| P4-04 | K3s 多集群 Velero + ApplicationSet | K3s §3 P4 #62 |
| P4-05 | Karpenter 評估(裸機需 kwok provider) | K3s §3 P4 #63 |
條件觸發 / 非時效驅動
| # | 動作 | 觸發條件 |
|---|---|---|
| C-01 | SGLang 落地 | 雲端 API 月費 > $1500 或新採購 NVIDIA GPU |
| C-02 | MLX 整合 | 採購 Mac Studio M3/M4 Max 64GB+ |
Part F — 已完成清單(5/8 即時執行)
F1. ✅ 188 Local Ollama 完全清除(5/8 14:35-14:50 CST)
| 項目 | Before | After |
|---|---|---|
| 模型總大小 | 15GB | 44KB |
| 188 主磁碟 | 194GB | 179GB(-15GB) |
| 容器影響 | 25 healthy | 25 healthy(0 受影響) |
F2. ✅ 168 Mac 殘進程清理(5/8 14:54-14:58 CST)
| 指標 | Before | After |
|---|---|---|
| Load (1m) | 9.09 | 5.69(-37%) |
| SkyComputerUseClient | 12 | 1(殺 11) |
| bun telegram | 9 | 1(殺 8) |
未完成(需統帥手動):
- 統帥到 OpenAI Codex 應用 → 設定 → 關閉「Computer Use Beta」(防再產殘進程)
Part G — 統帥決策矩陣(時效 × 影響 × 工數)
🟥 立即決策需求(今日等統帥批准才能動)
| # | 決策點 | 影響 | 為何要批准 |
|---|---|---|---|
| D1 | 輪換 Velero MinIO 密碼 + filter-repo 擦 git 歷史 | DR 資料完整性 | filter-repo 不可逆 + 需重新部署 Velero pod |
| D2 | awoooi_prod RLS 驗證如不通過,是否立刻擋 EwoooC Phase 6 寫入 | EU AI Act 86 天倒數 | 商業節奏影響 |
| D3 | GCP-B 改 70/30 weighted(停掉「standby 月燒錢近零產出」) | 雲端成本 | 直接影響容災策略 |
| D4 | 6 個 GitHub workflow git mv → .archived/ | CI/CD 雙跑風險解除 | 動到第二個 SCM |
| D5 | 4 個 CronJob 補 NP label → 立刻 commit + ArgoCD sync | 5/5 事故根因再現預防 | K8s prod 變更 |
🟧 本週內可自主執行(不需單獨批准)
P0-01(110 Swap 排查)/ P0-04(apps/web/ git rm)/ P0-15(momo-pro alert)/ P0-17(前端假資料替換)/ P0-21(SSH 110 驗 LiteLLM)
🟨 兩週內待規劃(需 P9 拆 task)
P1-01/02/06/07(Sealed Secrets / ImagePullSecret / Falco / Trivy Operator)四項是「導入新工具」,需 fullstack-engineer + critic 流程
Part H — 風險熱圖(系統性紅燈四維整合)
H1. 規劃完整 vs 落地失效(V3 路 11 + K3s §6.2 鐵證)
| 規劃 | 落地實況 |
|---|---|
| ai_router.py 1,407 行 | USE_AI_ROUTER=False 空轉 4 週 |
| ADR-109 33 個 send | 30 個無 dedup |
| AwoooP 16 model | 9 個 schema-only |
| ADR-118 awooop_phase1_batch1_rls | prod 0 條 pg_policy |
| drift-scanner / backup-restore-test | 不在 kustomization → ArgoCD 永遠不 sync |
| AI 自學北極星 | 9 處 fusion 權重 hardcode |
| Velero 裝了 | 可能根本沒在做定期 backup |
| NEMOTRON 4/12 暫停 | Deployment env 寫死 true 覆蓋 ConfigMap |
H2. 閒置成本與安全暴露
188 Local Ollama 15GB✅ 5/8 已清- GCP-B VM 24h 僅 375 次推理(月燒錢近零產出)
- LiteLLM + Open-WebUI + n8n 三個 188 容器無人理
- 12 個 plugin 0 呼叫吃 context
- Velero MinIO 密碼進 git history(K3s §2 #1)
- Velero SA = cluster-admin(K3s §2 #2)
- Sentry DSN 寫死於 .github/workflows/ 三處
- LiteLLM CVE-2026-42208 + 供應鏈攻擊未驗版本
- GitHub 6 workflow 仍可觸發競爭 K3s
H3. 死代碼與半成品鏽蝕
- 11 個 services 全域 0 import(3,245 行)
- 38 / 70 個前端頁是純殼或半成品
- 6 個半成品 endpoint 假運行 47 天
- apps/web/ ~150 檔 D 未 commit
- 50 個 migration 中 35 個無 rollback
- 11 個 ADR 缺 rollback 段
- ADR-105 雙開未重編號
H4. 實機資源即將爆炸
- 110 Swap 7.3G/7.8G(93%) — Sentry/ClickHouse 隨時 OOM
- 188 momo-pro-system 1.9G/2G(95%) — 距 OOM 僅 100MB
- 168 統帥 Mac 磁碟 183G/199G(93%) — 剩 16GB
- 188 certbot failed — SSL 即將過期斷服
- 111 MacBook load 13.51 — M1 Pro 嚴重過載
- 112 Kali scan 結果全是孤島 — webhook 從未呼叫過後端
- EU AI Act 8/2 倒數 86 天 + RLS 未驗 → cross-tenant leak 風險
H5. K3s 集群層補足(K3s 獨家)
- 188 PG 為 K3s + AWOOOI app + Sentry + Langfuse 共用 datastore(同時死)
- VIP 192.168.0.125 單點無 BGP
- 110 Harbor SPOF(所有 prod image 唯一源)
- Worker PDB maxUnavailable=1 + replicas=1 = 允許全停
- K3s etcd 快照只在本機
信心評估
- 整合方法論:兩份審計逐節對照,依「交集 / 差集 / 衝突」三類重組,無遺漏
- 交集 23 條:兩份獨立 agent 團隊都查到,信心極高(互相印證)
- 差集 72 條(V3 42 + K3s 30):各自獨家但有 file path + line number 證據
- 衝突 3 處:全部已調解,並指出哪些是「兩個獨立病灶」
- 86 項統一行動清單:完整覆蓋 V3 37 條 + K3s 63 項,含 5 大致命
整體信心:High
附錄 A — 三份檔案交叉引用速查
| 想找什麼 | 看哪份 |
|---|---|
| 整合主檔(本檔) | 2026-05-08-INTEGRATED-master-audit.md |
| 應用層死代碼 / 前端真實度 / 主機 SSH 實況 / 使用率紅燈 | 2026-05-08-FINAL-v3-utilization-audit.md |
| K3s manifest 安全紅燈 / 2026 主流對標 / AI 對 K3s 介入 / 30d 事故 pattern | 2026-05-08-K3S-deep-audit-and-roadmap.md |
| 5/8 規模/技術債盤點(V2,本整合的前序) | 2026-05-08-FINAL-comprehensive-audit-and-roadmap.md |
| 硬體現況真相 | 2026-05-08-revised-roadmap-with-hardware-truth.md |
| 進度軌跡 | docs/LOGBOOK.md |
| 跨 session 記憶 | ~/.claude/projects/-Users-ogt-awoooi/memory/project_audit_20260508_integrated.md |
附錄 B — Memory 對齊
本整合報告引用以下 Memory(按優先序):
feedback_clickhouse_pool_size_rules.md(5/5 事故,本檔 P1-13)feedback_telegram_secrets_injection.md(ADR-035,本檔 P0-19)feedback_secrets_leak_incidents_2026-04-18.md(零信任 3 層,本檔 F1-F2)feedback_secret_debug_output_ban.md(PG PW 暴露事故,本檔 P0-08)project_cpu_overload_postmortem_20260505.md(110/188 過載,本檔 P0-01 + P0-15)project_audit_20260507.md(5/7 全景審計)project_audit_20260508_v3.md(V3 使用率盤點,本檔 Part C1)feedback_hardware_compatibility_first.md(5/8 統帥訓示,本檔 C-01 + C-02 條件觸發)
附錄 C — 9 台主機 SSH 連線速查
| 主機 | 連線方式 | User | 角色 |
|---|---|---|---|
| 110 | ssh 192.168.0.110 |
wooo | DevOps 金庫(Sentry+Harbor+Gitea+Prometheus) |
| 120 | ssh 192.168.0.120 |
wooo | K3s CP MASTER + keepalived pri=101 |
| 121 | ssh 192.168.0.121 |
wooo | K3s CP BACKUP + ArgoCD |
| 188 | ssh 192.168.0.188 |
ollama | SPOF AI+Web(PG+Sentry+Langfuse+監控棧) |
| 111 | ssh ollama-111-gpu |
ooo | M1 Pro Local Ollama 三層容災 fallback |
| 112 | ssh kali@192.168.0.112 |
kali | Kali 安全網(trivy/nuclei/nmap) |
| 168 | ssh 192.168.0.168 |
ogt | Mac mini M4 統帥開發機 |
| GCP-A | ssh gcp-a |
oleetsai | Ollama Primary 34.143.170.20 |
| GCP-B | ssh gcp-b |
owen_taipei | Ollama Secondary 34.21.145.224 |