2017-04-09 63 views
6

我的公司已经运行Kuberenetes一年多了,GitLab已经运行了大约6个月。我们最近升级到GitLab 9.x,并且在尝试找出Kube的CI +应用程序配置决定时会遇到什么问题。这个功能非常棒,并且很想让它在我们的环境中工作。GitLab 9.x Kubernetes集成

看起来好像GitLab期望您只有一个群集设置,并且该群集中的所有环境都由名称空间分解,这将等于您的服务/应用程序和应用程序,这将与您的环境相等。这是什么样子GitLab希望我Kuberenetes环境的样子,你的服务的单个集群分成命名空间:

namespace = hello-world 
app = development 
app = qa 
app = production 

其中,在现实世界的例子,我们宁愿这将很好地工作相反有一个群集以及

DEVELOPMENT CLUSTER 
namespace = development 
app = hello-world 

QA CLUSTER 
namespace = qa 
app = hello-world 

PRODUCTION CLUSTER 
namespace = production 
app = hello-world 

具有命名空间是应用程序和应用程序是环境,我们就不会升级到KUBE的最新版本,无需升级所有的能力。也许我错过了一些东西,但是基于我正在阅读的内容,并且在测试完成后,看起来好像这是它的设计方式。

仅供参考这是我的CI貌似现在做出部署板+终端快乐

development: 
    <<: *deploy_definition 
    stage: development 
    environment: hello-world 
    script: 
     deploy.sh -a "hello-world" 

,但它应该是这样的

development: 
    <<: *deploy_definition 
    stage: development 
    environment: development 
    script: 
     deploy.sh -a "hello-world" 

要添加到这种混乱,他们只给您一个Kubernetes主机连接到集成选项卡。

这是正确的,还是我错过了什么?

+0

嘿嘿,既然你是我很少能找到谁得到部署工作,你可以扩大一下这个貌似有点主板之一?具体来说,每个阶段需要什么样的环境?现在我们正在运行'review/*'环境和'prod',但在您的示例中,它看起来像只能部署到具有

+0

@ north.mister的环境,这是正确的。一旦你用kubernetes集成设置了所有的东西,那么你需要像上面那样配置你的ci。唯一可以实现它的方法是让我的gitlab-ci文件中的环境名称与部署kubernetes模板中的应用程序名称相同,对于https://kubernetes.io/docs/concepts/workloads/控制器/部署/。这可能对您有用,因为您只有一个kubernetes环境,但每个环境都有一个群集,所以对我而言失败了。希望这可以帮助你。 –

回答

5

你是对的。我也觉得很沮丧。

但是你可以使用环境,即使没有自己的kubernetes整合 development: <<: *deploy_definition stage: development environment: name: development url: https://development.yourdomain.com script: deploy.sh -a "hello-world"

退房我最近写了一篇关于汽车的配置后部署到从gitlab kubernetes。

http://blog.lwolf.org/post/how-to-create-ci-cd-pipeline-with-autodeploy-k8s-gitlab-helm/

+0

此方法是否支持部署板?这是我在这里唯一的目标。 –