“原来只要五个人就能维护的集群,换到K8s后得再招三个专家,结果上线还天天挂。”
这不是段子,是上周一家30人创业公司CTO在群里的原话。
Kubernetes把功能做得像瑞士军刀,可很多人只想削苹果。
把镜头拉近看细节。
K8s官方建议的最小高可用集群:三台master、三台etcd,再加worker节点。
光这几台机器的空闲开销,就能把一台8G内存的小主机吃干抹净。
Nomad呢?
一个40M的二进制,起起来就完事,内存占用直接少了一个数量级。
很多团队第一次踩坑是网络。
K8s的CNI插件菜单长得能当论文读,Calico、Cilium、Flannel……选错一个,延迟飙到毫秒级。
Nomad默认用host网络就能跑,想复杂再加CNI,选择权在你。
第二个坑是升级。
K8s一年三次大版本,API说废就废,去年写的YAML今年直接报错。
Nomad的版本节奏慢一拍,且保证向后兼容,老板再也不用担心半夜升级炸集群。
有人担心Nomad功能少。
其实它的调度器支持CPU、内存、GPU、甚至NUMA拓扑,还能混布Docker、Java、QEMU、RawExec。
互联网档案馆把两万多行K8s YAML改写成NomadHCL,只花了两周,部署时间从40分钟缩到15分钟,省下来的不是机器,是工程师的周末。
再看数据面。
Consul自带服务发现+健康检查,不用再搭一套Istio。
一个小团队用Nomad+Consul,十分钟就能把服务注册、负载均衡、健康检查全跑通,K8s里这三件事得学Ingress、Service、EndpointSlice,光概念就劝退一半人。
边缘场景更夸张。
某做野外采集器的公司,把K8s换成Nomad后,设备续航从半年变一年半,原因是省掉了etcd不停写盘的耗电。
对靠电池过日子的硬件来说,这就是生与死的差别。
当然,K8s并非一无是处。
需要CRD+Operator做复杂生命周期管理,或者要跑上千节点的大数据平台,K8s依旧是唯一答案。
关键是别被“大厂都在用”,先数清楚自己口袋里有多少人和钱。
如果决定换,迁移可以分四步走:先把无状态服务搬过去练手;再把有状态服务用hostvolume顶一顶;接着用ConsulTemplate替换ConfigMap;最后把监控链路切到Prometheus+Consul SD。
整套流程下来,最顺利的一家五人团队只花了三周。
技术圈流行一句话:最好的工具是让团队忘记它的存在。
Nomad+Consul做到了,它们把复杂度藏进简洁的接口,让工程师把注意力放在业务,而不是和YAML搏斗。
2025年的容器编排不再是单选题。
K8s像重甲坦克,Nomad像山地自行车,选哪个取决于你要翻山还是攻城。
记住,省下来的每一行配置、每一次升级、每一度电,最终都会变成产品上线的时间,和工程师按时下班的笑脸。