feat(deploy): 增加三节点 K3s 高可用迁移能力

新增 WireGuard 全互联、三 server embedded-etcd K3s、CloudNativePG 双实例、Barman OSS 备份、双 NGINX、Kubernetes Secret/RBAC 与本地旧文件按严格 24 小时清理。

新增维护窗口数据迁移、digest 固定滚动发布、应用回滚、跨节点文件 E2E、节点和数据库故障演练、CNPG 恢复与 etcd 快照验收脚本;洛杉矶仅作为带 NoSchedule 污点的仲裁节点。

所有生产 Secret 只在执行时从 0600 本地环境和旧生产容器导入,仓库不保存凭据;公网入口保持人工 DNS 故障切换边界。

验证:bash -n、ShellCheck、kubectl kustomize、Node 语法检查、Secret 扫描、OSS put/head/delete 实测。
This commit is contained in:
2026-07-28 04:37:31 +08:00
parent edf7e66941
commit 971540a2a4
38 changed files with 3386 additions and 3 deletions
@@ -0,0 +1,16 @@
[Unit]
Description=Prune EasyAI Gateway legacy local files older than 24 hours
After=docker.service
[Service]
Type=oneshot
ExecStart=/usr/local/sbin/easyai-prune-legacy-generated --apply
User=root
Group=root
Nice=10
IOSchedulingClass=idle
NoNewPrivileges=true
PrivateTmp=true
ProtectHome=true
ProtectSystem=strict
ReadWritePaths=/var/lib/docker/volumes/easyai-ai-gateway_api_data/_data/static
@@ -0,0 +1,11 @@
[Unit]
Description=Run EasyAI Gateway legacy local file cleanup hourly
[Timer]
OnCalendar=hourly
Persistent=true
RandomizedDelaySec=120
Unit=easyai-legacy-generated-cleanup.service
[Install]
WantedBy=timers.target