十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

私有化部署不是装个 Docker 就完事了——Harness 在内网落了三次才跑通

私有化部署不是装个 Docker 就完事了——Harness 在内网落了三次才跑通 说实话我帮人部署 Harness 到企业内网这件事第一次是栽在了一个我以为最不会出问题的地方上。客户那边电话里说环境都准备好了服务器 Docker 也装好了你过来搞就行。我一听这简单docker-compose up 就完事了撑死半小时收工。结果到了现场docker-compose up 一直卡在 pulling image 这一步。我问他们网络通不通IT 大哥特自信地说通的呀能上网。结果一查——能上百度但 Docker Hub 被防火墙策略拦截了。docker pull 任何镜像都超时连不上 registry。你别说我当时还觉得改个 mirror 镜像源就能解决。结果发现 Harness 有好几个镜像不是存在 Docker Hub 上而是存在 ghcr.ioGitHub 容器仓库上的这个在内网就更难通了。折腾了大半天最后还是老老实实找了一台能通外网的机器把所有镜像 docker pull 下来打成 tar 包用 U 盘拷进去。说到这个我想起来还有一次更离谱的——镜像拷进去了但 docker load 的时候发现 tag 对不上因为内网私有 registry 的命名规范跟外网不一样还得一个一个重新打 tag。这种事儿你不真的干一次看文档是永远想不到的。内网部署 Harness说到底是在跟预期做斗争。你在公网上一行命令跑通的事到了内网环境下每一步都可能是断点。我踩了一圈坑之后发现最核心的几个维度其实就三个网络策略、权限管理、审计日志——但每个维度下面都有你意想不到的细节。网络策略是最大的拦路虎没有之一。Harness 的架构里workflow 执行器需要跟控制面通信控制面需要拉镜像Agent 需要同步插件市场模型服务还需要额外的 API 调用。这三条链路只要有一条断了整个系统就转不起来。我见过最头疼的情况是——网络策略按 IP 白名单做的但 Harness 依赖的某些外部服务用的是动态 IP今天通的明天就断了。你查半天日志发现昨天还能用的今天突然连不上了结果是因为对方的 CDN 换了 IP 段。解决方案其实不复杂自建一个私有镜像仓库Harbor 或者 Nexus 都行把所有依赖的镜像提前 pull 好打上 tag 推到私有仓库里然后修改 Harness 的配置把镜像源指向内部地址。虽然前期准备麻烦但一劳永逸。插件市场的问题也一样——Harness 默认的插件源搭在公网上内网环境要么提前把需要的插件包下载好离线导入要么在内部搭一个插件源的 mirror。权限管理是第二个大坑。Harness 本身支持 RBAC基于角色的访问控制它可以精确控制每个 Agent 能访问哪些 namespace、能调哪些 tool、能执行什么级别的操作。但说实话我见过的大部分企业部署第一步就是先给个 admin token 跑起来再说——然后这个 token 就一直挂在那里没人管了。如果你的 Agent 跑在 Kubernetes 上还给了它 cluster-admin 的 ServiceAccount那一旦 Agent 被攻破整个集群都暴露了。有意思的是有一次客户跟我说我们权限控制得很严的每个 Agent 都有自己的 token结果我一查所有 token 都是从同一个 admin token 派生出来的——那跟没控制有什么区别我建议的做法是给每个环境建一个独立的 ServiceAccount权限只开到它需要的最小范围。比如一个只做代码审查的 Agent它根本不需要访问生产环境的 namespace。这个原则在 Kubernetes 里叫 least privilege在 Harness 的语境下就是每个 Agent 只管自己那摊事。审计日志是最后一个容易被忽略的点。企业内网落地合规是硬门槛。Harness 的执行日志默认是写在本地的pod 一重启就没了。你需要把日志通过 Fluentd 或者 Logstash 接入到 ELK 或者 Splunk 这样的集中日志平台。另外Harness 的 Audit Log 模块——它会记录谁在什么时间执行了什么操作——默认是关闭的得在 dsh 的配置里显式开启。我第一次部署的时候完全没注意到这个后来审计的时候被问住了才回去补的。这个功能其实就一行配置的事但如果你不知道它就是一颗定时炸弹。说实话Harness 的官方文档在私有化部署这块写得不算差但它是按理想情况写的。它假设你有一个干净的 Kubernetes 集群、网络全通、证书统一管理、DNS 解析正常。但企业内网的现实是——网络策略是别人管的你没法改镜像仓库是私有的你没法直接拉证书有效期一年过期了没人通知你甚至有时候你的服务器 DNS 只能解析内网域名外网的 registry 地址根本解析不了。所以我觉得做私有化部署最重要的不是技术能力而是预判能力。你得在动手之前就想清楚所有可能断掉的环节提前准备好方案。这不是看文档能学会的是真踩过坑才能积累的经验。你遇到过最离谱的内网部署问题是啥是网络策略切断了你所有的镜像源还是权限配置让 Agent 跑不起来还是跟我一样栽在了一个以为肯定没问题的小细节上评论区聊聊吧。
返回列表