假设我正在开发基于微服务的应用程序。它们将使用Helm包管理器部署到Kubernetes上。有些微服务在YAML文件配置方面非常相似,而其他一些则可能不同。对此,有什么最佳实践吗?我有几个选择:
- 使用通用图表,并为每个微服务使用values.env.yaml传递不同的配置,然后使用不同的发布名称部署。
- 为每个单独的微服务创建一个图表,无论它们的配置是否相似?
假设我正在开发基于微服务的应用程序。它们将使用Helm包管理器部署到Kubernetes上。有些微服务在YAML文件配置方面非常相似,而其他一些则可能不同。对此,有什么最佳实践吗?我有几个选择:
_helpers.tpl
文件将更加困难。该文件将迅速增长,并且可能会让创建微服务的人感到困惑。像 @Rico 提到的那样,这是一个观点问题。以下是我的观点:
我认为从一个适用于所有情况的图表开始是个好主意。但当你必须为只有少数服务具有特殊要求的特定内容添加时,你应该创建另一个图表。这个想法与 Monolith first 相当相似,涉及到微服务。
在我们公司中,我们有一个图表用于大约 30 个服务。它们的需求非常相似,因此模板文件并不太复杂,_helpers 文件只有大约 50 行。我们对这个解决方案非常满意,因为你只需要几行 values.yaml 就可以为你的服务做好操作准备。