GitLab Kubernetes / OpenShift集成

警告:警告:Kubernetes服务集成在GitLab 10.3中已弃用。如果服务是活动的,集群信息仍然是可编辑的,但是我们建议禁用集群并使用new集群页面。如果服务处于非活动状态,则字段将不可编辑。读GitLab 10.3发布后了解更多信息。

GitLab可以配置为与Kubernetes或其他使用Kubernetes API的系统(如OpenShift)交互。

每个项目都可以配置为连接到不同的Kubernetes集群,参见配置部分。

配置

导航到集成的页面的选项,并选择Kubernetes服务配置它。填写所有需要的参数,勾选“活动”复选框并点击保存更改使更改生效。

Kubernetes配置设置

Kubernetes服务包含以下参数:

  • API的URL-这是GitLab用来访问Kubernetes API的URL。Kubernetes公开了几个api,我们希望“基础”URL对所有这些api都是通用的,例如:https://kubernetes.example.com而不是https://kubernetes.example.com/api/v1
  • CA证书(可选)-如果API使用自签名TLS证书,您还需要包含ca.crt内容在这里。
  • 项目名称空间(可选)-以下适用:
    • 默认情况下你不需要填写;将其保留为空,GitLab将为您创建一个。
    • 每个项目都应该有一个唯一的名称空间。
    • 项目名称空间不一定是秘密的名称空间,如果您正在使用具有更广泛权限的秘密,例如from的秘密默认的
    • 你应该使用默认的作为项目名称空间。
    • 如果您或某人专门为项目创建了一个秘密,通常具有有限的权限,那么秘密的名称空间和项目名称空间可能是相同的。
  • 令牌GitLab使用服务令牌对Kubernetes进行身份验证,服务令牌的作用域是特定的名称空间。如果您还没有服务令牌,可以按照Kubernetes文档去创造一个。控件中查看或创建服务令牌Kubernetes仪表板(在配置>秘密).

提示:提示:如果您希望将单个集群用于所有项目,则可以使用默认模板预先填充设置页面。模板配置方法请参见服务模板

部署变量

Kubernetes服务公开了以下内容部署变量在GitLab CI/CD构建环境中:

  • KUBE_URL—等于API的URL。
  • KUBE_TOKEN- Kubernetes令牌。
  • KUBE_NAMESPACE—如果没有指定,Kubernetes命名空间是自动生成的。默认值为< project_name > - < project_id >。如果需要,您可以覆盖它以使用不同的KUBE_NAMESPACE变量将接收默认值。
  • KUBE_CA_PEM_FILE-仅在指定自定义CA bundle时出现。包含PEM数据的文件路径。
  • KUBE_CA_PEM(已弃用)-仅当指定了自定义CA bundle时。原始电源数据。
  • KUBECONFIG—包含kubeconfig对于这个部署。如果指定,将嵌入CA包。

你可以通过Kubernetes集成得到什么

如果你启用了Kubernetes集成,下面是你可以用GitLab做的事情。

部署董事会

可以在GitLab溢价

GitLab的部署板提供了每个CI当前运行状况和状态的统一视图环境在Kubernetes上运行,显示部署中pod的状态。开发人员和其他团队成员可以在他们已经使用的工作流中一个pod一个pod地查看部署的进度和状态,而无需访问Kubernetes。

>阅读更多关于Deploy Boards的信息

金丝雀的部署

可以在GitLab溢价

利用Kubernetes的Canary部署并在Deploy Board中可视化您的金丝雀部署,而无需离开GitLab。

>阅读更多关于金丝雀部署的信息

Kubernetes监控

自动检测和监控Kubernetes指标。自动监控NGINX入口也支持。

>阅读更多关于Kubernetes监控的信息

汽车DevOps

Auto DevOps自动检测、构建、测试、部署和监视您的应用程序。

为了充分利用Auto DevOps(自动部署,自动审查应用程序和自动监控),你需要启用Kubernetes项目集成。

>阅读更多关于Auto DevOps的信息

网络终端

注意:注意:在GitLab 8.15中引入。您必须是项目所有者或拥有终端使用权限。支持仅限于环境的第一个pod中的第一个容器。

启用后,Kubernetes服务添加网络终端对你的支持环境。这是基于执行在Docker和Kubernetes中找到的功能,因此您可以在现有容器中获得新的shell会话。要使用这种集成,您应该使用上面的部署变量部署到Kubernetes,确保您创建的任何pod都标有应用= $ CI_ENVIRONMENT_SLUG。剩下的由GitLab来完成!

Baidu
map