# 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%) | **最關鍵的雙審計交集鐵證(須立刻動手)**: 1. **awoooi_prod RLS 未落地** — V3 路 14 SSH 實測「pg_policy 0 rows」+ K3s §7 提供完整驗證 SQL → 連 EU AI Act 8/2 倒數 86 天 2. **AwoooP migration 無 rollback** — V3 「50 中 35 個無 rollback」+ K3s 「Phase 1-7 七份 _ROLLBACK.sql 檔案不存在 = 詐欺」 3. **CronJob 鏈路雙重病灶** — V3「drift-cronjob 不在 kustomization」+ K3s「13/14/15/16 缺 NP label」(**兩個獨立問題,不是同一件事,必須兩邊都修**) 4. **NEMOTRON env 矛盾** — K3s §2 #5 揭露 `06-deployment-api.yaml:64` 直接寫死 `true` 覆蓋 ConfigMap 的 `false` 5. **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-dev` RBAC `update` 應降為 `patch` - Velero `Schedule` CRD 找不到證據(可能根本沒在做定期 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 大未來爆點預測**: 1. 110 主機掛 → Ollama proxy/Harbor/Gitea runner 全斷 2. 下一個 NP 漏孔事故(增量加孔模式) 3. CronJob 自修報表斷鏈再現(無 last_success_timestamp) 4. IMAGE_TAG_PLACEHOLDER 再次蓋掉(apply -f 與 GitOps 混用) 5. **EU AI Act 8/2 倒數 86 天 + RLS 未驗 → cross-tenant leak** 6. SignOz/Sentry CH pool 改動再次崩潰(三門檻無 lint) 7. 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.py` 11 個 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 |