1 前言
GitLab 是一个用于仓库管理系统的开源项目。使用 Git作为代码管理工具,并在此基础上搭建起来的web服务。
rancher 提供持续集成能力,持续集成的第一步是关联代码库,这里将介绍 rancher 集成 gitlab。Rancher 做的事情主要有二。一是 Rancher 提供了简约版的操作系统 RancherOS,可用来单独运行 Docker。二是其 Rancher 平台可以将 Dockers 编排(Rancher 可同时支持 Kubernetes 和 Docker Swarm)进任何基础设施环境;Rancher 还有一个优势是云无关,可支持各种公有云、私有云以及数据中心的部署。Rancher 还是一个多租户的平台,客户可根据自身需求管理其集群。Rancher Labs 声称使用它的平台部署一个 Kubernetes 集群只需要 5 分钟的时间。再加上该管理平台还预先准备了丰富的应用目录,使得只需要几次点击即可完成相对复杂的容器化环境下的应用部署。
继续下面操作之前,首先要正确安装 rancher,并成功导入 k8s 集群。如果你还没有完成此操作, 请参考本人的其他两篇文章。此外,rancher 国际化为简体中文。设置如下:
2 操作
2.1 选择集群
2.2 选择项目
在 rancher 中有“项目”的概念,你可将其跟 k8s 命名空间做类比。默认情况下,k8s 有 2 个固定的命名空间,分别为 default 和 kube-system。rancher 会将 default 跟 k8s default 命名空间做关联,将 system 跟 k8s kube-system 命名空间做关联。本小节在 rancher default 项目下关联 gitlab。
2.3 选择流水线
2.4 选择 Gitlab
2.5 配置 Gitlab 应用
2.5.1 登录 Gitlab
如果你使用的不是私有 Gitlab 服务器,而是直接使用 Gitlab 官网,那么直接点击下图中“点击此处”链接,进行登录:
如果你使用的是私有 Gitlab 服务器,那么你需要打开私有 Gitlab 服务器网址,并进行登录。如果你还没有私有 Gitlab,可以参考本人的《helm 轻松完爆 gitlab》进行搭建,整个操作过程容易到爆。
2.5.2 设置 Gitlab
选择 “settings”:
再选择 “Applications”:
2.5.3 填写表单内容
表单内容参照 rancher 提示书写:
本人书写内容如下:
点击 “save” 按钮后,会生成 “application id” 和 "secret",如下图所示:
2.6 rancher 关联 gitlab
将上面生成的 appId 和 secret 写入 rancher 配置,如下图所示:
2.7 gitlab 授权 rancher 访问
在上面点击“授权”按钮后,会显示 gitlab 的授权确认页面:
2.8 关联成功
如果点击上图中“Authorize”按钮成功后,就会显示如下页面,自此 rancher 跟 gitlab 关联成功:
2.9 关联失败
如果关联失败,则可能会显示下图:
上图中出现的原因是:因为我本人使用的 jiuxi.gitlab.org 是自绑定的域名记录,即自己写入 hosts 文件的。而 rancher 容器在运行时,容器内部的 hosts 文件并没写入,所以需要将此域名解析记录写入到 rancher 容器的 hosts 文件。
执行如下语句进入 rancher 容器:
docker exec -it rancher /bin/bash
追加域名解析记录到 /etc/hosts 文件:
echo "10.110.101.100 jiuxi.gitlab.org" >> /etc/hosts
再次授权即可成功。