GitLab 9.x Kubernetes 集成
GitLab 9.x Kubernetes Integration
我的公司已经 运行 Kuberenetes 一年多了,GitLab 大约 6 个月了。我们最近升级到 GitLab 9.x 并且在试图弄清楚围绕 CI + Kube 应用程序配置的决定时遇到了问题。这个功能很棒,很想让它在我们的环境中工作。
似乎 GitLab 希望您只有一个集群设置,该集群内的所有环境都按命名空间划分,这等于您的 service/application 和应用程序,这等于您的环境。这就是 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 master 连接。
这是正确的,还是我遗漏了什么?
你是对的。我也觉得很沮丧。
但即使没有 kubernetes 集成,您也可以使用环境
development:
<<: *deploy_definition
stage: development
environment:
name: development
url: https://development.yourdomain.com
script:
deploy.sh -a "hello-world"
查看我最近写的 post 关于从 gitlab 自动部署到 kubernetes 的配置。
http://blog.lwolf.org/post/how-to-create-ci-cd-pipeline-with-autodeploy-k8s-gitlab-helm/
我的公司已经 运行 Kuberenetes 一年多了,GitLab 大约 6 个月了。我们最近升级到 GitLab 9.x 并且在试图弄清楚围绕 CI + Kube 应用程序配置的决定时遇到了问题。这个功能很棒,很想让它在我们的环境中工作。
似乎 GitLab 希望您只有一个集群设置,该集群内的所有环境都按命名空间划分,这等于您的 service/application 和应用程序,这等于您的环境。这就是 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 master 连接。
这是正确的,还是我遗漏了什么?
你是对的。我也觉得很沮丧。
但即使没有 kubernetes 集成,您也可以使用环境
development:
<<: *deploy_definition
stage: development
environment:
name: development
url: https://development.yourdomain.com
script:
deploy.sh -a "hello-world"
查看我最近写的 post 关于从 gitlab 自动部署到 kubernetes 的配置。
http://blog.lwolf.org/post/how-to-create-ci-cd-pipeline-with-autodeploy-k8s-gitlab-helm/