这比一个特定的技术问题更多的是建议。
我做了一些搜索,但很难找到完全相同的问题。如果您认为这是另一个问题的重复,请给我一些链接! :-)
正如许多开发人员(我猜),我有一个“阿里巴巴的洞穴”服务器托管我的博客和多项服务:GitLab,Minio,我的自由职业账户的计费系统等...
根据我的可能性,所有服务都在Ubuntu服务器上使用不同的方式设置:apt-get install
,tar抽取或Capistrano部署用于个人项目。
这是有效的,但对我来说这是一个难以维护的地狱。某些项目无法升级,因为系统依赖项与另一个项目相互冲突或者在我的操作系统上根本不可用,或者更新可能会对某些项目产生副作用。例如,我的个人项目所需的PHP升级完全破坏了手动安装的PHP服务,因为不支持新版本。
我正在学习Kubernetes和Helm排行榜。目标是设置一个新的CoreOS服务器和一个Kubernetes生态系统,其中包含我的所有应用程序和项目。
有了它,我将能够:
我做了一个测试,创建了一个基本的图表与helm create my-network
,创建一个基本的nginx应用程序,完美的添加我的网络主页!
但现在我想添加并连接一些应用程序,让我们从Gitlab开始。
我找到了两种方法来添加它:
helm upgrade --install gitlab gitalb/gitlab
命令进行配置。两者都有效,给我几乎相同的结果。
第一个解决方案似乎更“独立”,但我真的不知道如何在CI下构建/测试它(我希望升级自动化)。
第二个允许我使用单个values.yaml
文件配置所有文件,但我不知道在升级期间它是做什么的(gitlab的升级过程是在我的图表升级过程中运行的吗?)并且所有这些都合并到一个“项目”中。
GitLab就是一个例子,但我希望以这种方式添加更多“即用型”应用程序。
你有什么建议给我的?解决方案1还是2?我应该为这两种解决方案真正做些什么,尤其是升级/备份?
如果你有一个完全不同的第三个解决方案来建议使用Helm,请随意! :-)
谢谢
我的经验一般是为每件/服务使用单独的helm install
更好。如果这些服务具有依赖性(“微服务X需要Redis缓存”),那么这些都是放在requirements.yaml
文件中的好东西。
一个大的“图表图表”遇到了几个问题:
helm install -f
两次来提供两个单独的值文件,但在图表图表中,更难获得一组真正的全局设置以及一组每个组件设置而不会重复所有内容。helm install --name
和特定的组件名称。这看起来很正常,如果它是service-x-redis
,如果它是service-x-service-x
有点奇怪,如果你有一个全球发布名称the-world-service-x
有点奇怪。对于您的用例,您还可以考虑非Docker系统管理工具(Ansible,Chef,Salt Stack)是否可以重现您现有的手部署,而无需完全重建您的系统架构; Kubernetes非常令人兴奋,但旧方法也很有效。