Coolify的GitHub上有个issue挂了22个月,46个人点了赞,还有人悬赏250美元。问题是:什么时候支持Kubernetes?维护者的回答很干脆——我们要做自己的方案。但等等,他们从没说过K8s技术上不可行。

一位8年经验的DevOps工程师决定亲自验证。不是问"你们要不要我的代码",而是问"这事到底能不能成"。

打开网易新闻 查看精彩图片

一场持续22个月的拉锯战

时间回到2024年6月,Coolify的GitHub仓库里诞生了issue #2390。标题很直接:请求原生Kubernetes支持。

开源社区的反应说明了一切。46个reaction,这是社区用鼠标投票的结果。有人甚至掏出真金白银——250美元的bounty(赏金),挂在平台上等人认领。

但issue的状态始终是open。没有关闭,没有解决,就这么悬着。

2026年3月14日,一位叫writer-tech-9的开发者终于忍不住了。他在issue下留言,亮出底牌:8年DevOps经验,Kubernetes深度 specialization(专业化)。然后抛出问题:我能帮忙吗?

Discord上的对话更直接。他找到核心维护者Peak,把话挑明。

Peak的回复成了关键转折点:

「我们将在v5版本使用自己的定制方案,直接与Docker Compose集成,后台使用Docker。它更灵活,与Coolify结合更紧密,类似Swarm但更好。」

翻译一下:Kubernetes支持不在v5的计划里。不是"暂时不做",是明确选择了另一条路。

writer-tech-9把这段话读了好几遍。然后发现了一个被忽略的细节。

产品决策 vs 技术边界

Peak说的是"我们的方案更灵活、集成更紧密"。

他没说的是"Kubernetes技术上无法实现"。

这是两个完全不同的命题。前者是产品路线选择,后者是工程可行性判定。但22个月来,所有人似乎都默认了后者——既然官方不做,那一定是做不了。

writer-tech-9的疑问由此而生:社区想要K8s支持,维护者选了另一条路,但从来没人验证过第一条路到底能不能走通。

这个gap(缺口)里藏着太多未解之谜。K8s的生态系统成熟度、企业级部署的刚需、多云策略的灵活性——这些需求真实存在,却被一句"我们要做自己的方案"轻轻带过。

更微妙的是Coolify的定位。它把自己定义为"Heroku/Netlify/Vercel的开源替代品",主打自托管、无厂商锁定、成本可控。这个定位天然吸引两类人:想省钱的小团队,和想掌控基础设施的技术人。

第二类人往往已经在用K8s。他们想要Coolify的简洁,又不想放弃现有的集群投资。issue #2390的46个赞,大概率来自这个群体。

维护者的选择也有道理。Docker Compose的学习曲线更平缓,与Coolify的代码库耦合更紧,v5的架构可以围绕它深度优化。这是一条更可控的路。

但"更可控"不等于"唯一可行"。

一个工程师的验证计划

writer-tech-9没有接受现状。他宣布启动一项独立调查,目标只有一个:用技术证据回答"Coolify能否原生支持K8s"。

他的方法论很清晰。三种可能结局,每种都有价值:

第一,跑通K8s集成,证明架构可以容纳。维护者可以选择合并或拒绝,但社区终于有了一个working solution(可用方案),无论是主线还是fork。

第二,发现真正的技术blocker(阻塞点),详细记录。社区从"悬而未决"变成"确知不可为",issue可以堂堂正正关闭。

第三,技术上可行但代价高昂。把trade-off(权衡)摊开来讲,让社区和维护者基于信息做决策,而非基于假设。

这三种结局都比现状好。22个月的open issue,本质是信息真空。有人在等,有人在猜,没人去验证。

他的背景给了这个计划可信度。8年不是随便说的数字——设计集群、把K8s客户端集成进应用、调试生产故障,这些经历意味着他知道坑在哪里,也知道怎么绕过去。

风险他也清楚列出来了。时间投入可能打水漂,维护者可能始终不接纳,社区期待可能被抬高然后落空。但最后一句话很关键:

「这个问题值得一个答案。」

250美元赏金和46个赞是信号,不是噪音。开源社区里,持续的关注本身就是一种需求表达。有人愿意站出来验证,比永远在issue里+1更有建设性。

为什么这事值得技术人关注

Coolify的K8s之争,缩影了开源世界里一个反复出现的张力:维护者的产品判断,与社区的功能需求,怎么平衡?

维护者不是客服。他们有权决定项目往哪走,有权说"不"。但"不"有两种给法:一种是"我们不做这个",一种是"这个技术上不可行"。前者是选择,后者是断言。当社区把选择听成断言,信息就扭曲了。

writer-tech-9的介入,是在还原信息的本来面目。他不挑战维护者的决策权,只挑战决策的信息基础。如果K8s确实做不了,文档化blocker是对社区的尊重;如果能做,社区多了一个选项。

更深一层,这事关乎开源项目的治理透明度。当核心团队说"我们要做自己的方案",他们有没有义务解释为什么K8s被排除?技术上不排除,只是产品上不优先——这个区分,维护者没说,社区没问,就这么模糊地过了22个月。

不是每个开源项目都需要民主决策。但信息对称是健康社区的基础。writer-tech-9的调查,无论结果如何,都在填补这个信息gap。

对25-40岁的技术从业者来说,这个案例还有一层实用价值:K8s和Docker Compose的选型困境,正在无数团队里上演。

Compose简单,但锁定在单节点或Swarm模式。K8s复杂,但生态系统庞大、多云迁移灵活。Coolify的选择是Compose路线,但社区里有大量K8s存量投资。这个张力不是Coolify独有的。

writer-tech-9的验证过程——如果公开分享——可能成为一份鲜活的架构决策参考。他怎么评估集成点,怎么处理状态管理,怎么权衡控制平面与数据平面的分离,这些细节比任何文档都真实。

开源协作的另一种可能

最有趣的部分可能是writer-tech-9的姿态。他不是带着PR来求合并的,而是带着问题来求答案的。

这种"调查优先"的做法,在开源贡献里并不常见。更多人选择直接开干:fork、修改、提PR,然后等维护者反应。writer-tech-9反过来了:先声明意图,再公开过程,最后才谈代码。

这降低了对抗性。维护者不用担心突然冒出一个巨型PR要 review,社区可以围观学习,writer-tech-9自己也能在过程中调整方向。Building in public(公开构建)的价值就在这里——过程本身成为产出。

Peak的回应也值得关注。他会不会参与讨论?会不会开放某些内部架构文档?维护者与社区调查者的互动模式,往往比技术结论更能说明项目的健康度。

最坏的情况是沉默。writer-tech-9调查他的,维护者做他们的,两条平行线。但即便这样,社区仍能从调查产出中受益——一份关于Coolify架构边界的技术文档,目前还不存在。

更好的情况是协作。维护者可能不愿意主仓支持K8s,但愿意指点集成点;或者看到可行性后,重新评估产品路线。开源的妙处就在于,信息流动可以改变初始立场。

22个月的open issue,250美元悬赏,一位8年经验的工程师决定亲手验证。这个故事的戏剧性不在于冲突,而在于一个简单的问题被忽视了太久:当我们说"不做",我们是在说"不想"还是"不能"?

writer-tech-9的调查才刚刚开始。三种结局都在等待:技术可行、技术不可行、可行但有代价。无论哪一种,都比悬而未决强。

对于在K8s和Compose之间做选型的团队,对于关心开源治理模式的开发者,对于单纯好奇"这事到底能不能成"的技术人——这个案例值得跟踪。不是因为它一定有惊天动地的结论,而是因为它示范了一种处理分歧的方式:不是争论谁对谁错,而是用工程方法求一个确定的答案。

Peak说v5会用"类似Swarm但更好"的方案。writer-tech-9要去验证K8s的可能性。两条路线,一个目标:让部署基础设施这件事,对开发者更友好。

如果K8s集成最终被证明可行,Coolify会因此分裂成两个阵营,还是维护者会重新考虑产品路线?如果不可行,那些已经用K8s的团队,会放弃Coolify还是接受混合架构的复杂性?