如何使用Kubernetes和Gitlab CI / CD在Google Cloud Platform中部署多个环境?

问题描述 投票:0回答:2

我想用gitlab-ci,Kubernetes和Google Kubernetes Engine在几个环境(dev,staging和production)中部署我的项目(api rest,webapp,backoffice等...)。

所有项目都在gitlab存储库中分开

我在gitlab上有2个分支:master和develop。 Master必须在升级和生产环境中部署开发必须在开发环境中部署

我从2天开始阅读了多个教程和博客,但我没有找到使用kubernetes管理多个环境的最佳方法。

我必须在GKE中创建3个集群(dev,staging,production)?或者我必须只创建一个集群并使用命名空间来管理我的环境?或其他解决方案?

1 /创建3个集群在gitlab-ci(免费帐户)中,如何在开发集群/生产集群上的dev集群,主分支上部署dev分支?这样做的配置是什么?我可以在gitlab-ci.yml中设置一个特定的集群吗?怎么样 ? (kubectl配置使用上下文?

2 /创建1个集群和3个名称空间(dev,staging,production)我认为这不是出于安全性和性能原因的最佳方法,对吧?

谢谢

kubernetes google-cloud-platform gitlab-ci google-kubernetes-engine
2个回答
1
投票

我想用gitlab-ci,Kubernetes和Google Kubernetes Engine在几个环境(dev,staging和production)中部署我的项目(api rest,webapp,backoffice等...)。

对于每个项目,我会将它们作为单独的git存储库托管,以便能够单独部署它们。

我在gitlab上有2个分支:master和develop。 Master必须在升级和生产环境中部署开发必须在开发环境中部署

在Kubernetes中,您将使用命名空间来隔离不同的环境,每个api都会从同一命名空间调用其他api。在Jenkins中,您可以创建多分支项目以相应地部署每个分支。你也可以注入某种环境变量,这样每个api都知道它属于哪个环境,例如,你可以使用像Datastore这样的资源,例如Foo.Production.Kind1 vs 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个集群(3个项目),或者您可以仅使用一个集群遵循上述方法,并根据命名空间和环境变量区分它们。

这里有更多细节:https://cloud.google.com/solutions/continuous-delivery-jenkins-kubernetes-engine


1
投票

问:我必须在GKE中创建3个集群(dev,staging,production)?或者我必须只创建一个集群并使用命名空间来管理我的环境?或其他解决方案?

并且:使用一个集群并将命名空间命名为dev,staging,production,它将很容易管理。

© www.soinside.com 2019 - 2024. All rights reserved.