跳转至

BASELINE — Harbor 部署工程(稳定层)

稳定层:环境事实 / 机制性陷阱 / 命令速查 / 文档地图。不随轮次变化,不注入、不随 HANDOFF 重写。 现状与待办见 HANDOFF.md;历次过程见各主题 SOP.md。

1. 环境事实

  • Harbor v2.15.2,部署于 192.168.31.31;接入 4 台 k8s 节点。
  • 上游出网走默认路由(旁路由 Clash):harbor.upstream_proxy.enabled: false;原香港跳板 SOCKS5 隧道已下线(systemd 单元删除、1080/tcp 放行撤销;工程在禁用时自动清理,幂等)。
  • 凭据:Harbor admin 口令与 DB 口令在 192.168.31.31:/root/.secrets/(目录 700 / 文件 600);API 凭据走 harbor.netrc。
  • 缓存水位:存量镜像 58 条、入库 57 条(唯一缺口见 HANDOFF §3)。

2. 机制性陷阱

  • hosts.toml 的 override_path 在 containerd 2.x 是 bool(不是字符串):写成字符串会让整份文件解析失败并被 containerd 静默忽略 → 节点悄悄回退直连(表象是「文件在、containerd active、校验全过」)。前缀 /v2/<registry> 须写进 host 的 URL。
  • 判定接入是否生效的唯一证据是 Harbor 入口日志(docker logs nginx)出现来自节点的 /v2/<registry>/... 请求;节点侧「文件在 + containerd active」不算数。
  • 经 build_probe_shell 批量的探测命令必须以换行结尾,否则 @@rc_ 标记会粘进取值(2026-10-08 实测踩到)。
  • 重跑 deploy-harbor 会重建 Harbor 容器(install.sh 行为):服务短暂中断约 1~2 分钟,节点侧失败一次后自动重试。
  • 预热前先确认远端 registry 状态为 healthy:容器重建后 Harbor 会短暂把 5 个 registry 标记 unhealthy,此时 proxy cache 直接 404,warmup 会连报失败触发阈值停止;健康检查每 5 分钟一轮自动恢复。
  • 改远端文件不要手工编辑——幂等判定会覆盖回去;改 config/ 或 utils/templates/ 后重跑。
  • 改 upstream_proxy 相关模板后必须同步 probe.sh:_step_states 依据探测结果判 pending/done,探测项缺失会被判 unknown 而中止。
  • 离线包来源锁定无开关:sha256 不符即中止;gh-proxy.com 只是传输通道。

3. 命令速查

动作 入口(工程根下)
部署 / 重建 Harbor deploy-harbor(会重建容器,中断 1~2 min)
节点侧接入 deploy-nodes
镜像预热 warmup
只读预检查 precheck.run_all(2026-10-08 起每台一条 shell)
查看 Harbor 入口日志 docker logs nginx(判接入生效的唯一证据)

4. 文档地图

文档 管什么
../../k8s_ins/ghcr-slow-20261001/HARBOR-RESULT.md 结果回填与遗留项(环境事实见其 §1)
../../k8s_ins/ghcr-slow-20261001/RUNBOOK.md 日常运行与排障
../../k8s_ins/ghcr-slow-20261001/SOP.md 首轮变更实施 / 验证 / 回滚 / 全部踩坑
../../k8s_ins/ghcr-slow-20261001/HARBOR-HANDOFF.md 原始需求规格书
upstream-direct-20261001/SOP.md 「切回默认路由」变更档案
probe_batch_20261008/SOP.md 「只读探测批量化」变更档案
../../k8s_ins/docs/HANDOFF.md 项目级状态快照

来源:/home/rain/Documents/services/harbor/docs/BASELINE.md | 最后更新:2026-10-08 13:28(由 build/sync.py 同步,请勿在站点侧修改)