GitLab Kubernetes / OpenShift集成
警告:警告:Kubernetes服务集成在GitLab 10.3中已弃用。如果服务是活动的,集群信息仍然是可编辑的,但是我们建议禁用集群并使用new集群页面。如果服务处于非活动状态,则字段将不可编辑。读GitLab 10.3发布后了解更多信息。
GitLab可以配置为与Kubernetes或其他使用Kubernetes API的系统(如OpenShift)交互。
每个项目都可以配置为连接到不同的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。
金丝雀的部署
可以在GitLab溢价。
利用Kubernetes的Canary部署并在Deploy Board中可视化您的金丝雀部署,而无需离开GitLab。
Kubernetes监控
自动检测和监控Kubernetes指标。自动监控NGINX入口也支持。
汽车DevOps
Auto DevOps自动检测、构建、测试、部署和监视您的应用程序。
为了充分利用Auto DevOps(自动部署,自动审查应用程序和自动监控),你需要启用Kubernetes项目集成。
网络终端
注意:注意:在GitLab 8.15中引入。您必须是项目所有者或拥有主
终端使用权限。支持仅限于环境的第一个pod中的第一个容器。
启用后,Kubernetes服务添加网络终端对你的支持环境。这是基于执行
在Docker和Kubernetes中找到的功能,因此您可以在现有容器中获得新的shell会话。要使用这种集成,您应该使用上面的部署变量部署到Kubernetes,确保您创建的任何pod都标有应用= $ CI_ENVIRONMENT_SLUG
。剩下的由GitLab来完成!