From 68c0a320ed6becffcb34eb2bdf273bbe7f702d7f Mon Sep 17 00:00:00 2001 From: maogeigei Date: Tue, 15 Sep 2026 06:51:48 +0800 Subject: [PATCH] =?UTF-8?q?refactor(k8s):=20=E5=88=A0=E9=99=A4=20K8s=20?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E7=9A=84=E6=AD=BB=E6=8E=A5=E5=8F=A3=20LivePo?= =?UTF-8?q?d=EF=BC=9B=E4=BF=AE=E6=AD=A3=20K8s=20=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=A8=AA=E5=B9=85=E9=87=8D=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1) src/supervisor/spawner.ts:LivePod —— 注释此前已中性化,但**类型名来自 K8s 的 Pod**;全仓只有声明那一处出现(0 引用 = 死代码)⇒ 整块删除。属 cf8b7b1 的漏项。 2) docs/k8s-deploy.md · docs/k8s-deployment.md:cf8b7b1 里那行状态横幅被**重复 插入 2 次并挤在同一行**(生成脚本当时不幂等,每跑一次多插一条)⇒ 收敛为 1 条。 脚本已补「H1 后已有横幅就不再插」的负向断言 + 一条把重复收敛成 1 条的自愈规则。 验证:tsc --noEmit exit 0;npm test 36 测试 / 35 通过 / 0 失败 / 1 跳过; LivePod 全仓(含 lib/)0 命中;两份文档横幅各 1 条。 --- docs/k8s-deploy.md | 2 +- docs/k8s-deployment.md | 2 +- src/supervisor/spawner.ts | 8 -------- 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/docs/k8s-deploy.md b/docs/k8s-deploy.md index 669a170..55620c4 100644 --- a/docs/k8s-deploy.md +++ b/docs/k8s-deploy.md @@ -1,5 +1,5 @@ # K8s 踩坑记录(模式 B)— 部署流程 + 根因排查 -> ⚠️ **2026-09-15:模式 B 的 K8s 后端代码已从本仓下线**(`k8s-spawner` / `leader` / `reconcile` / `k8s-user-fs` / `tcp-bridge` / `web/file-service` 六个模块 + 2 个测试 + 1 个脚本)。备份:`D:\github\_dsh_shenxian_K8s后端备份_20260915\`。本文按「**历史设计稿 + 未来可选路线**」保留;文中的 `dshs file-service` / `dshs tcp-bridge` 两条子命令**现已不存在**,照着敲会 `command not found`。> ⚠️ **2026-09-15:模式 B 的 K8s 后端代码已从本仓下线**(`k8s-spawner` / `leader` / `reconcile` / `k8s-user-fs` / `tcp-bridge` / `web/file-service` 六个模块 + 2 个测试 + 1 个脚本)。备份:`D:\github\_dsh_shenxian_K8s后端备份_20260915\`。本文按「**历史设计稿 + 未来可选路线**」保留;文中的 `dshs file-service` / `dshs tcp-bridge` 两条子命令**现已不存在**,照着敲会 `command not found`。 +> ⚠️ **2026-09-15:模式 B 的 K8s 后端代码已从本仓下线**(`k8s-spawner` / `leader` / `reconcile` / `k8s-user-fs` / `tcp-bridge` / `web/file-service` 六个模块 + 2 个测试 + 1 个脚本)。备份:`D:\github\_dsh_shenxian_K8s后端备份_20260915\`。本文按「**历史设计稿 + 未来可选路线**」保留;文中的 `dshs file-service` / `dshs tcp-bridge` 两条子命令**现已不存在**,照着敲会 `command not found`。 > 🧭 [← 返回 README](../README.md) · 分步教程:[K8s 部署教程](k8s-deployment.md) > 记录模式 B 实机部署踩到的坑与根因:先在**阿里云 2C2G 单机 k3s** 上 PoC 验证,后在 **ACK 智能托管**上完整落地(§5–§8 含部署流程实录)。 diff --git a/docs/k8s-deployment.md b/docs/k8s-deployment.md index 79d3eae..23802a3 100644 --- a/docs/k8s-deployment.md +++ b/docs/k8s-deployment.md @@ -1,5 +1,5 @@ # K8s 部署教程(模式 B)— DSH 服务端登录插件 -> ⚠️ **2026-09-15:模式 B 的 K8s 后端代码已从本仓下线**(`k8s-spawner` / `leader` / `reconcile` / `k8s-user-fs` / `tcp-bridge` / `web/file-service` 六个模块 + 2 个测试 + 1 个脚本)。备份:`D:\github\_dsh_shenxian_K8s后端备份_20260915\`。本文按「**历史设计稿 + 未来可选路线**」保留;文中的 `dshs file-service` / `dshs tcp-bridge` 两条子命令**现已不存在**,照着敲会 `command not found`。> ⚠️ **2026-09-15:模式 B 的 K8s 后端代码已从本仓下线**(`k8s-spawner` / `leader` / `reconcile` / `k8s-user-fs` / `tcp-bridge` / `web/file-service` 六个模块 + 2 个测试 + 1 个脚本)。备份:`D:\github\_dsh_shenxian_K8s后端备份_20260915\`。本文按「**历史设计稿 + 未来可选路线**」保留;文中的 `dshs file-service` / `dshs tcp-bridge` 两条子命令**现已不存在**,照着敲会 `command not found`。 +> ⚠️ **2026-09-15:模式 B 的 K8s 后端代码已从本仓下线**(`k8s-spawner` / `leader` / `reconcile` / `k8s-user-fs` / `tcp-bridge` / `web/file-service` 六个模块 + 2 个测试 + 1 个脚本)。备份:`D:\github\_dsh_shenxian_K8s后端备份_20260915\`。本文按「**历史设计稿 + 未来可选路线**」保留;文中的 `dshs file-service` / `dshs tcp-bridge` 两条子命令**现已不存在**,照着敲会 `command not found`。 > 🧭 [← 返回 README](../README.md) · 卡住了:[踩坑记录](k8s-deploy.md) · 模式 A 教程:[deployment](deployment.md) > 把 `dshs` 部署成**多机 HA、每用户独立 Pod** 的形态。本文是**可复制的分步部署教程**; diff --git a/src/supervisor/spawner.ts b/src/supervisor/spawner.ts index e9dc60f..2d71775 100644 --- a/src/supervisor/spawner.ts +++ b/src/supervisor/spawner.ts @@ -82,14 +82,6 @@ export interface Endpoint { port: number } -/** A main DSH Pod as observed by the k8s backend (for reconcile + the watch). */ -export interface LivePod { - name: string - userId: string - running: boolean - crashed: boolean -} - /** * The lifecycle seam the route layer delegates to. *