wangbo
|
5d2796337b
|
fix(deploy): 等待维护入口完成重载
NGINX 优雅重载期间旧 worker 可能短暂继续返回 200,单次状态码断言会误触发安全回滚。改为最多轮询 15 秒等待维护页返回 503。\n\n验证:bash -n、ShellCheck、git diff --check、真实维护页 503 与恢复后公网 200。
|
2026-07-29 02:09:45 +08:00 |
|
wangbo
|
b7c03d348e
|
fix(deploy): 适配宁波 NGINX 配置加载路径
宁波 NGINX 仅加载 conf.d/*.conf,原切换脚本写入 sites-enabled 后不会生效。统一将维护页、集群入口和回滚配置写入实际加载的 conf.d 入口,并保留切换前配置备份。\n\n验证:bash -n、ShellCheck、git diff --check、双节点 nginx -t 与 prepare。
|
2026-07-29 02:06:12 +08:00 |
|
wangbo
|
74cf0ed5c8
|
fix(deploy): 避免验收入口端口冲突
将宁波跨节点验收私有入口从被 staging Docker 占用的 18088 调整为 18089,避免 NGINX reload 在切换前失败。同步更新真实文件任务验收脚本默认地址。已通过 node --check、bash -n、ShellCheck 和 git diff --check。
|
2026-07-29 02:02:42 +08:00 |
|
wangbo
|
7c142f5960
|
fix(deploy): 补齐集群备份兼容与切换前门禁
阿里云 OSS 的 S3 兼容层要求 virtual-hosted addressing,且 boto3 需要使用 Signature V2。本提交为 Barman 的归档、备份、保留与恢复统一挂载 AWS 配置,并将实际 WAL 归档和近期全备设为切换硬门禁。
同时补充 CNPG/etcdutl 固定版本安装、显式主库切换、三节点逐台停机、OSS 快照下载校验与远端临时 Secret 清理。已通过 ShellCheck、Kustomize、服务端 dry-run、迁移测试、发布脚本测试、敏感信息扫描及生产 precutover 验收。
|
2026-07-28 06:46:09 +08:00 |
|
wangbo
|
f5b6ff72f2
|
fix(deploy): 无损传输证书同步 SSH 公钥
将包含空格与注释的 Ed25519 host key、公钥先 Base64 编码为单个 SSH 参数,远端解码后再次校验,并清理前次失败产生的无效 authorized_keys 单词行。
验证:Base64 完整往返、bash -n、ShellCheck,两次首次连接失败现场。
|
2026-07-28 05:53:43 +08:00 |
|
wangbo
|
5d8ed1f293
|
fix(deploy): 固定证书同步的香港 SSH Host Key
通过已认证的香港管理连接读取 Ed25519 host 公钥,将 WireGuard 地址 10.77.0.2 的精确键写入宁波 known_hosts,再执行证书同步;不关闭 StrictHostKeyChecking。
验证:远端 host key 格式解析、bash -n、ShellCheck,首次同步因缺少 known_hosts 的现场复现。
|
2026-07-28 05:53:00 +08:00 |
|
wangbo
|
1c0c298267
|
fix(deploy): 放宽数据库 Operator 首次拉取超时
CNPG 与 Barman Cloud 的固定镜像经跨境 mirror 首次拉取可能超过 180 秒,将 rollout 门限提升到 600 秒;cert-manager 保持原 180 秒快速门禁。
验证:CNPG 已实际 Ready,Barman 证书与插件注册正常且事件显示仅处于镜像拉取。
|
2026-07-28 05:17:25 +08:00 |
|
wangbo
|
6d7b2e88ba
|
fix(deploy): 递归验证 containerd Registry 主机配置
K3s 1.36 将 Registry 镜像端点生成在 containerd/certs.d 子目录;验收改为递归检查整个 containerd 配置树,并继续以实际拉取 pause 镜像作为最终门禁。
验证:洛杉矶节点 Ready,三个 hosts.toml 端点存在,pause 镜像拉取成功。
|
2026-07-28 05:07:23 +08:00 |
|
wangbo
|
95ddfb2a04
|
fix(deploy): 为 K3s 配置容器镜像端点
三节点 containerd 增加 Docker Hub、GHCR 与 Quay 的 DaoCloud 镜像端点,解决生产节点直连公共 Registry 超时导致 Pod sandbox 无法创建的问题。
新增逐节点滚动刷新脚本,每次等待节点重新 Ready 并实际拉取 pause 镜像后才继续,避免同时重启 etcd 成员。初始 K3s 安装也会预置同一 registries.yaml。
验证:三节点镜像端点均返回 Registry 认证响应,bash -n、ShellCheck。
|
2026-07-28 05:05:33 +08:00 |
|
wangbo
|
44915c1343
|
fix(deploy): 使用 Server-Side Apply 安装大型 CRD
cert-manager、CloudNativePG 与 Barman 清单改用 server-side apply,避免 CNPG CRD 的 last-applied annotation 超过 Kubernetes 256KiB 限制;force-conflicts 仅用于已固定 checksum 的 operator 清单。
验证:cert-manager 组件已实际滚动成功,CNPG 客户端 apply 在 annotation 门禁处复现。
|
2026-07-28 05:00:52 +08:00 |
|
wangbo
|
19ce2d4272
|
fix(deploy): 保留 Kustomize digest 行缩进
替换真实 release manifest 的 API/Web digest 时固定输出 Kustomization 所需的四空格缩进,避免 awk 字段重建破坏 YAML。
验证:使用已发布 971540a 完整 manifest 实际渲染 696 行清单,确认所有应用镜像均为非零 digest。
|
2026-07-28 04:59:43 +08:00 |
|
wangbo
|
d342462a3d
|
fix(deploy): 兼容 macOS Bash 3.2 下载平台清单
将 operator URL 与固定 SHA-256 从关联数组改为并行索引数组,避免 macOS Bash 3.2 将带连字符的文件名解析为算术变量。远端资源复制前仍逐项校验 checksum。
验证:bash -n、ShellCheck、Bash 3.2 索引遍历。
|
2026-07-28 04:59:04 +08:00 |
|
wangbo
|
4e60bf1c64
|
fix(deploy): 本地校验并分发固定 K3s 二进制
生产节点访问 GitHub Release 失败时,改由本机下载 v1.36.2+k3s1 amd64 二进制,使用固定官方 SHA-256 校验后分发到三节点,再让官方安装器跳过远端下载。
同时将运行手册顺序改为先完成公网端口隔离,再安装 K3s。
验证:bash -n、ShellCheck、官方 checksum 获取与节点失败现场。
|
2026-07-28 04:50:54 +08:00 |
|
wangbo
|
85e14f2cb8
|
fix(deploy): 过滤 WireGuard 安装阶段标准输出
节点首次安装 wireguard-tools 时 apt 输出会混入公钥命令替换,导致格式门禁误判并安全停止。仅取远端输出最后一行作为公钥,同时保留原有长度和字符校验。
验证:bash -n、ShellCheck、远端公钥长度与权限只读检查。
|
2026-07-28 04:40:26 +08:00 |
|
wangbo
|
971540a2a4
|
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 实测。
|
2026-07-28 04:37:31 +08:00 |
|