我想部署我的项目(api rest、webapp、backoffice等)在使用gitlab-ci、Kubernetes和Google Kubernetes Engine的多个环境中(开发、试运行和生产)。
所有项目在gitlab存储库中是分开的
我在gitlab上有两个分支:掌握和开发。主服务器必须部署在暂存和生产环境中,开发人员必须部署在开发环境中
两天以来,我阅读了很多教程和博客,但我没有找到使用kubernetes管理多个环境的最佳方法。
我必须在GKE中创建3个集群(开发、试运行、生产)?或者我必须只创建一个群集并使用命名空间来管理我的环境?或者其他解决方案?
1/在gitlab-ci (免费账号)中创建3个集群,如何在dev集群上部署dev分支,在staging/production集群上部署master分支?执行此操作所需的配置是什么?可以在gitlab-ci.yml中设置特定的集群吗?怎么做到的?(kubectl config use-context?
2/创建1个集群和3个命名空间(开发、升级、生产)出于安全性和性能考虑,我认为这不是最好的方法,对吧?
谢谢
发布于 2019-02-05 01:31:29
问:我必须在GKE中创建3个集群(开发、试运行、生产)?或者我必须只创建一个群集并使用命名空间来管理我的环境?或者其他解决方案?
Ans:使用一个集群并将其命名为dev、staging、production等名称空间,这样就很容易管理。
发布于 2018-08-21 08:37:49
我想部署我的项目(api rest、webapp、backoffice等)在使用gitlab-ci、Kubernetes和Google Kubernetes Engine的多个环境中(开发、试运行和生产)。
对于这些项目中的每一个,我都会将它们作为单独的git存储库托管,以便能够单独部署它们。
我在gitlab上有两个分支:掌握和开发。主服务器必须部署在暂存和生产环境中,开发人员必须部署在开发环境中
在Kubernetes中,您将使用名称空间来隔离不同的环境,每个api将从相同的名称空间调用其他api。在Jenkins中,您可以创建多分支项目来相应地部署每个分支。YOu还可以注入某种环境变量,以便每个api知道它属于哪个环境,例如,您可以相应地使用数据存储区等资源。例如,Foo.Production.Kind1与Foo.Development.Kind1
1 / Create 3 clusters In gitlab-ci (free account), how can I deploy dev branch on dev cluster, master branch on staging/production cluster ? what will be the config to do it ?
2 / Create 1 cluster and 3 namespace (dev,staging, production) I don't think that is the best approach for security and performance reason, right ?
如果成本没有问题,你可以选择3个gcp项目,每个项目对应于特定的环境(保持相同的脚本),或者你可以只使用一个集群,并根据命名空间和环境变量来区分它们。
在这里有更多详细信息:https://cloud.google.com/solutions/continuous-delivery-jenkins-kubernetes-engine
https://stackoverflow.com/questions/51937118
复制相似问题